Commit graph

183 commits

Author SHA1 Message Date
jenkins-bot
035095eb2f Merge "Cleanup Api phpunit Tests" 2013-10-24 18:29:35 +00:00
jenkins-bot
eb3317fadc Merge "Add more ApiFormat format tests" 2013-10-24 18:27:03 +00:00
addshore
dc18b813e8 Cleanup Api phpunit Tests
- Splits multiple classes into individual files
- Adds @covers tags
- Fixes scope

Change-Id: I7d2816d3574fa53a2aaa8e2a84b7a7ecdd245252
2013-10-24 19:17:01 +01:00
addshore
9577968280 Add more ApiFormat format tests
Adds tests for Json and wddx formats
Add @covers tags
Fixes some comments
Fixes scope

Change-Id: I5f22097ddcaeb917f856ba7aa0cb793caa17925e
2013-10-24 19:07:05 +01:00
addshore
d442e88e55 @covers for ApiQuery stuff
Change-Id: Id8a89abd545d8e2a95b1d246776049b9c888e53c
2013-10-24 11:04:00 +01:00
addshore
de7af7ac2c Fix scope on all /phpunit test methods
Change-Id: I3ce92463d485a0fb23e464e9a8059330f32d79af
2013-10-24 10:31:32 +02:00
Timo Tijhof
a8ed966ee4 Fix typo erronously -> erroneously
Follows-up 1aed5382d2.

Change-Id: I1e0cbc3dfa529816446c3aec6372eb2b821ee540
2013-10-21 19:29:16 +02:00
Kunal Mehta
95575cd301 Tests for API section editing
Change-Id: Ibc05c54cd2c9e1775f72dd969e7677b5238e12ad
2013-10-09 11:01:52 -07:00
Chad Horohoe
d42a417d6e Remove placeholder tests
They give a false sense of test coverage and nobody's shown any
interest in implementing them.

Change-Id: Id15ddb555e059bb6a76c69ca57d09c91e96e91ce
2013-10-04 12:35:51 -07:00
Brad Jorsch
43f3ab65cf SECURITY: Prevent tokens in jsonp mode
Add checks to token-returning functions to prevent returning tokens in
jsonp mode. This affects action=tokens, action=login,
action=createaccount, and action=query&list=deletedrevs.

Also, remove the "gettoken" parameter to action=block and
action=unblock, which has been deprecated since 1.20.

Bug: 49090
Change-Id: Ibeaa5c72d8084585092b15935a3f5709104bf7f7
2013-09-03 15:04:47 -07:00
MatmaRex
61b3f8ad58 No spaces within (casts)
Per the code conventions ([[mw:CC/PHP]]).

This file appears to be the only outlier.

Change-Id: I634d9927174737ffc99976a97a41ce04c842fc32
2013-08-31 18:17:28 +02:00
umherirrender
24bfde2710 Fix spacing and break some lines
Change-Id: Ia57685d8858e02e399ad5c75ce64d12609d340ac
2013-08-24 17:06:25 +02:00
Kunal Mehta
7be7fc64cf Add tests for API action=edit&section=new
Change-Id: I5fe8fc8297ce29ffafd69f62f427dc9353c090e6
2013-08-19 16:39:11 -07:00
addshore
41c0ab2857 Use action=tokens for api test tokens
Change-Id: I5d517eca7529dd57e14629a1ea5dd4d50110f39f
2013-08-05 20:08:21 +00:00
addshore
8f17e0dc2a Allow different users to login in Api tests
Change-Id: I6f79416e4580ed8bf57836b78aa7027ea8f0d280
2013-08-05 20:44:53 +02:00
Brad Jorsch
a860b9a5b5 Fix exception in ApiPageSet
ApiPageSet is calling $this->profileOut(), then calling a function that
calls $this->profileDBIn(). Move that function to after a new
$this->profileIn().

Also, add a unit test for this situation.

Bug: 51821
Change-Id: Ib4dbfb567faadcd5e3d7d058ca6bdf8b4c83f634
2013-07-22 14:12:38 -04:00
Brad Jorsch
08adf46b26 Add 'viewmyprivateinfo', 'editmyprivateinfo', and 'editmyoptions' rights
These are needed for OAuth grants.

Note that we don't bother with a 'viewmyoptions' right, since the
majority will be determinable from just observing the interface.

Note that the fact of having a confirmed email address cannot be
reliably hidden, and if the user has 'sendemail' they may be able to
determine the real name and email address by sending an email to another
account that they control.

Change-Id: I3f03dd010020e8d43cc2d3bca7b3ef7196d1c548
2013-07-03 13:40:04 -04:00
Timo Tijhof
beb1c4a0ec phpcs: More require/include is not a function
Follows-up I1343872de7, Ia533aedf63 and I2df2f80b81.

Also updated usage in text in documentation and the
installer LocalSettingsGenerator.

Most of them were handled by this regex:
- find: (require|include|require_once|include_once)\s*\(\s*(.+?)\s*\)\s*;$
- replace: $1 $2;

Change-Id: I6b38aad9a5149c9c43ce18bd8edbab14b8ce43fa
2013-05-21 23:26:28 +02:00
jenkins-bot
d5bd4f6e61 Merge "Change EXIF to Exif" 2013-05-10 12:55:45 +00:00
Siebrand Mazeland
59f6fd0199 Change EXIF to Exif
Per https://en.wikipedia.org/wiki/Exchangeable_image_file_format. Spotted
by Shirayuki and documented on
https://translatewiki.net/wiki/Thread:Support/About_MediaWiki:Sesp-property-exif-data/en

Change-Id: I92ba67ec60ccfe7a173d950593357b86792b8ed3
2013-05-10 13:51:06 +02:00
umherirrender
cbc4fd7a5b print is not a function
Removed parenthesis after print

Change-Id: I1343872de7aa7c64952a3d86a63aaa091e46bda3
2013-05-09 20:06:03 +02:00
Timo Tijhof
50e7985d4d phpcs: Fix WhiteSpace.LanguageConstructSpacing warnings
Squiz.WhiteSpace.LanguageConstructSpacing:
   Language constructs must be followed by a single space;
   expected "require_once expression" but found
   "require_once(expression)"

It is a keyword (e.g. like `new`, `return` and `print`). As
such the parentheses don't make sense.

Per our code conventions, we use a space after keywords like
these. We appeared to have an unwritten exception for `require`
that doesn't make sense. About 60% of require/include usage
was missing the space and/or had superfluous parentheses.

It is as silly as print("foo") or return("foo"), it works
because keywords have no significance for whitespace between
it and the expression that follows, and since experessions can
be wrapped in parentheses for clarity (e.g. when doing string
concatenation or mathematical operations) the parenthesis
before and after basiclaly just ignored.

Change-Id: I2df2f80b8123714bea7e0771bf94b51ad5bb4b87
2013-05-09 05:56:26 +02:00
Siebrand Mazeland
791d0b2a98 Update code formatting
Change-Id: I16a9b42651f1cfb1a70dffbb67b7b83dfeb90d03
2013-04-26 14:21:20 +00:00
Siebrand Mazeland
483e29277f Remove unused local variables in tests
Change-Id: I71318eb7d8c00bfc1ce6d2fc636b498f7a695f42
2013-04-26 09:48:46 +02:00
Siebrand Mazeland
6da93fc6f6 Update code formatting
Also update some previous inconsistencies pointed out by Krinkle in change IDs:
* Ide20743a2e84ff68549286120e6cff9d9f396f54
* I811ca957b6588085d67606ebc0cd4033a1e53839

Change-Id: Ife33b931870d0d7e04fcb40974997436d27f528f
2013-03-27 14:15:11 +01:00
umherirrender
7d8a184bac Tests: Fix case of some methods
Change-Id: Iab247f805410f2e9157d325edd80880538a3e54c
2013-03-22 17:44:34 +01:00
Timo Tijhof
b36d883017 Tests: Make phpunit providers "public static".
Follows-up I9d2b148e57 (including phpunit/languages this time).

Bug: 46434
Change-Id: I30e5efcd88c516121c454676bd7a18f9b7c8fca6
2013-03-22 03:12:37 +01:00
jenkins-bot
e439cfb1b1 Merge "Fix more UnitTests for databases that do not use integer timestamps" 2013-03-08 22:54:28 +00:00
Brent Garber
ba4b7bc35b Fix more UnitTests for databases that do not use integer timestamps
Change-Id: I6f8b19aa6e6a9efc3320bb18fa8c7ec8b72a0c17
2013-03-08 19:51:52 +00:00
Yuri Astrakhan
68820277af API continue param to streamline iteration of complex queries
Greatly simplifies query result iteration by the clients
by providing a mechanism to track sub-iterations (props in generated set)

Assuming the client has the param=>value dictionary with the original request
parameters, client will only need to perform this operation in their language
to get all results from the server regardless of what query they make.

  $request = array_merge( $request, $result['continue'] );

Related changes:
* Moved dieContinueUsageIf() from ApiQueryBase to ApiBase
* Internal calls will also return unused param warnings
* Reworked query unit tests for easier testing

Change-Id: Ieb45241fc6db2109f1d92fa3381165ec30701b63
2013-03-01 19:06:46 -05:00
Platonides
d962a0be64 testInvalidEmail() passes now without local config
ApiAccountCreationTest::testInvalidEmail() no longer
needs LocalSettings to have $wgEnableEmail = true;

Change-Id: I97803be116fda8194e46fe0021c7b32d7b703b1d
2013-03-01 22:50:59 +01:00
Hashar
757c29a254 Revert "(Bug 44192) Do not attempt to send a real e-mail in ApiAccountCreationTest"
This need to be made a global feature that will be applied to any test.

This reverts commit 2025a89d5b

Change-Id: Ia7165b78b4f80738ed9b769319e159cd86fc7bdf
2013-02-28 21:48:16 +00:00
Platonides
d01be611d0 Script calling cleanups
· Use env(1) in shebangs instead of hardcoding paths.
· $IP is already set in the constructor of Maintenance classes.
· Add sapi guard to some phpunit files.

Change-Id: I6c6fd6c61e2861b5992f2ccd67a4e3f62e2c445e
2013-02-25 23:11:51 +01:00
jenkins-bot
f3a4d36210 Merge "API Remove $wgAPIGeneratorModules - it's dynamic now" 2013-02-19 16:44:02 +00:00
Yuri Astrakhan
96a9603eea API Remove $wgAPIGeneratorModules - it's dynamic now
* $wgAPIGeneratorModules is now obsolete and will be ignored
* Removed generator tests - obsolete because there is no more list

Change-Id: I014260a42226854a2178345dc3cd0f50b41b3c08
2013-02-19 11:27:13 -05:00
jenkins-bot
fba656f986 Merge "(Bug 44192) Do not attempt to send a real e-mail in ApiAccountCreationTest" 2013-02-18 10:11:04 +00:00
Siebrand Mazeland
9f77245218 Update formatting
4 of n.

Change-Id: I23e2409ce9eff14c3434154d236de83c93a92440
2013-02-14 14:10:38 +01:00
Siebrand Mazeland
419b02b6df Update formatting
3 of n.

Change-Id: I62ad009018c54da6cf081c334e44eb98a3c72695
2013-02-14 12:56:23 +01:00
Platonides
2025a89d5b (Bug 44192) Do not attempt to send a real e-mail in ApiAccountCreationTest
Change-Id: I6e9f45a51a27bdaf2bf62722f840ddc4755931aa
2013-02-09 22:47:33 +01:00
Yuri Astrakhan
62216932c1 API PageSet allows generator for non-query modules
* PageSet can now be used in any action to process titles/pageids/revids
or any generator, redirects resolution, and converttitle functionality.
* action=purge proper usage of MustBePosted()
* Add supports for all pageset capabilities - generators, redirects, converttitles to
  action=purge and action=setnotificationtimestamp
* BREAKING CHANGE: ApiPageSet constructor now has two params instead of three, with only the
  first one keeping its meaning. ApiPageSet is now derived from ApiBase.
* BREAKING CHANGE: ApiQuery::newGenerator() and executeGeneratorModule() were deleted.

Change-Id: I7a3d7b6eb015d21ec1a9b9d9c6af9d97663f3f9a
2013-02-08 15:42:21 -05:00
umherirrender
2a29335af9 apitests leaks wgUser
1) ParserTests::testParserTest with data set #468 ('pre-save transform:
Signature expansion', '* ~~~
* <noinclude>~~~</noinclude>
* <includeonly>~~~</includeonly>
* <onlyinclude>~~~</onlyinclude>', '*
[[Special:Contributions/127.0.0.1|127.0.0.1]]
* <noinclude>[[Special:Contributions/127.0.0.1|127.0.0.1]]</noinclude>
*
<includeonly>[[Special:Contributions/127.0.0.1|127.0.0.1]]</includeonly>
*
<onlyinclude>[[Special:Contributions/127.0.0.1|127.0.0.1]]</onlyinclude>',
'pst', '')
pre-save transform: Signature expansion
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'* [[Special:Contributions/127.0.0.1|127.0.0.1]]
-* <noinclude>[[Special:Contributions/127.0.0.1|127.0.0.1]]</noinclude>
-*
<includeonly>[[Special:Contributions/127.0.0.1|127.0.0.1]]</includeonly>
-*
<onlyinclude>[[Special:Contributions/127.0.0.1|127.0.0.1]]</onlyinclude>'
+'* [[User:Apitestsysop|Apitestsysop]] ([[User talk:Apitestsysop|talk]])
+* <noinclude>[[User:Apitestsysop|Apitestsysop]] ([[User
talk:Apitestsysop|talk]])</noinclude>
+* <includeonly>[[User:Apitestsysop|Apitestsysop]] ([[User
talk:Apitestsysop|talk]])</includeonly>
+* <onlyinclude>[[User:Apitestsysop|Apitestsysop]] ([[User
talk:Apitestsysop|talk]])</onlyinclude>'

Change-Id: Ia72f9242deb5c6109d38b56dd46ef92fa6386278
2013-02-08 18:57:16 +01:00
Yuri Astrakhan
33979bd5bc API tests to verify basic query functionality (list & props)
* Several tests to verify query with prop=, list=, and generator
* Moved query related tests to query\ dir
* Added a generic ApiTestCase::editPage() to simplify page creation
* Fixed minor warnings complained by jenkins/phpcs

Change-Id: I5e3984d797178ae03f048792c7bac8e6a881aa41
2013-02-08 01:45:19 -05:00
Antoine Musso
0fd05285d7 pass codesniffer on tests/
Fix almost all occurences of the following sniffs:

Generic.CodeAnalysis.UselessOverridingMethod.Found
Generic.Formatting.NoSpaceAfterCast.SpaceFound
Generic.Functions.FunctionCallArgumentSpacing.SpaceBeforeComma
Generic.Functions.OpeningFunctionBraceKernighanRitchie.BraceOnNewLine
Generic.PHP.LowerCaseConstant.Found
PSR2.Classes.PropertyDeclaration.ScopeMissing
PSR2.Files.EndFileNewline.TooMany
PSR2.Methods.MethodDeclaration.StaticBeforeVisibility

Change-Id: I96aacef5bafe5a2bca659744fba1380999cfc37d
2013-01-28 12:14:26 +01:00
jenkins-bot
d5294eef8a Merge "Fix ApiCreateAccountTest for $wgEnableEmail = false;" 2013-01-21 20:36:33 +00:00
jenkins-bot
542c5bb1ab Merge "(bug 43762) Mark slow unit test as @group medium" 2013-01-18 19:15:30 +00:00
Brad Jorsch
252ae6268b (bug 43762) Mark slow unit test as @group medium
All tests based on APITestCase can be slow. I've also seen more than one
Jenkins failure due to GlobalTest::testMerge timing out.

Also, added a meta-test on APITestCase to make sure that all its
subclasses are marked with @group medium or @group large, to prevent new
tests from re-causing the bug.

Change-Id: I48630736a3d06574876fd1fa3d90899cfbc48012
2013-01-18 14:07:49 -05:00
Tyler Anthony Romeo
e521f0680e (bug 43959) Add ability to reset certain option kinds in API.
Added the "resetkinds" option to action=options, so that when the
"reset" option is set, the user can control which kinds of options
are reset, rather than having to do all or none.

Also added documentation to the "change" parameter, since passing
it option keys without any "=value" after it will result in resetting
that specific option to its default value.

Change-Id: Id5bc1fffa0d487c0f152b79115205d2722f380d3
2013-01-18 13:41:44 -05:00
MatmaRex
733d19d0d0 (bug 40124) allow arbitrary user preferences prefixed with 'userjs-'
Before change I98df55f2 it was possible to set arbitrary preferences (ie.
with anything as the key) using the action=options API. That change
removed this ability by enforcing full validation of the preferences, also
introducing several regressions which were fixed by follow-ups.

Per the discussion on bug 40124, this changeset aims to restore this
ability, but in a slightly restricted way: arbitrary preferences' names
must start with userjs- prefix, to avoid any possibility of conflicting
with new MediaWiki versions or extensions.

The contents of these preferences is not escaped, sanitized nor validated
in any way; script authors are expected to sanitize them themselves to
prevent XSS attacks and other security vulnerabilities.

This commit also adds the User::getOptionsKinds() method (to determine
whether given preference keys are used by MediaWiki itself or an extension,
intended to be used via the API, or entirely unknown) and enhances the
User::resetOptions() method to allow for resetting only preferences of
chosen kinds.

These changes allow for fixing of Special:Preferences not to clear those
additional fields when saving user settings.

Change-Id: I5f9ba5b0dfe7c2ea5458d836f03429cf6d93969d
2013-01-13 19:08:56 +01:00
umherirrender
b74fac899e Fix ApiCreateAccountTest for $wgEnableEmail = false;
1) ApiCreateAccountTest::testInvalidEmail
Failed asserting that exception of type "UsageException" is thrown.

Also explicit log out the user

Change-Id: I1d90c2b78bbcef494dc91822feeba37eebb8ca20
2013-01-13 11:10:55 +01:00
Antoine Musso
2a00da0f0f raise timeout for ApiCreateAccountTest::testValid
The ApiCreateAccountTest::testValid() test does multiple API request
which might end up being a bit slow.  That randomly cause random
failures when running the test suite which tends to confuse people.

Change-Id: I35a6670c61c7917522b2472a3a8e782e97e837f4
2013-01-11 10:46:18 +01:00