Commit graph

200 commits

Author SHA1 Message Date
Platonides
eb7e30ee42 I forgot to commit this in r85906 2011-04-12 20:48:19 +00:00
Paul Copperman
8ec3ce80d9 Follow-Up r85618:
* UploadFromUrlTest.php: Remove another instance of stray ini_set statements.
* Makefile: Also exclude group Stub from tests when running 'make noparser' etc.
2011-04-11 16:41:23 +00:00
Neil Kandalgaonkar
4ae2a98e13 followup to r85654, move global declarations 2011-04-10 22:27:52 +00:00
Platonides
028a4a8378 Follow up r85566. Add the helper classes to test autoloader. 2011-04-10 16:42:29 +00:00
Max Semenik
1275cc6df6 SQLite is picky about the position of AUTOINCREMENT in field definition, handle it when converting from MySQL syntax 2011-04-10 08:44:06 +00:00
Neil Kandalgaonkar
33d656ff88 also generate random SVG files 2011-04-07 23:32:36 +00:00
Paul Copperman
f7e6dfb4a3 Various fixes for PHPUnit tests:
* Block.php: Set mExpiry to the value we store in the database, so that Block::equals() returns true. Fixes BlockTest::testInitializerFunctionsReturnCorrectBlock.
* In Title::checkUserBlock(): Convert message parameters to plain strings to make strict comparisons work. Fixes TitlePermissionTest::testUserBlock().
* ApiBlock.php: Follow-Up r85166, add 'Confirm' parameter to data array. Fixes ApiBlockTest::testMakeNormalBlock().
* ApiQueryTest.php: Use $wgMetaNamespace instead of $wgSitename	to account for customizations.
* RandomImageGenerator.php: Use default value for constructor param to prevent fatals.
* ApiTestCaseUpload.php: 
** Fix undefined variable $fileName.
** Remove stray ini_set statements, they don't belong there. Especially ini_set( 'error_reporting', 1 ) will effectively disable all reporting, which makes errors hard to track.
* ArticleTablesTest.php: Put testbug14404() in group Broken, as the fix for the bug has been reverted in r83868.
2011-04-07 14:54:38 +00:00
Happy-melon
37895d45e7 Follow-up r85302: new MediaWiki() constructor format in phpunit test declaration. 2011-04-06 21:59:49 +00:00
Platonides
c878cd608f r85553 fixup. When there are variants involved, the line
$GLOBALS['wgContLang'] = $context->lang;
is not assigning $wgContLang the same $langObj instantiated a couple of lines above, but a different object obtained from the user code, breaking variant parsertestsw..
2011-04-06 21:36:07 +00:00
Mark A. Hershberger
4e9b2c5c53 Apply modification of mdale's patch from Bug #28420: “Re-factor upload tests to support extensions extending upload test case” 2011-04-06 19:50:54 +00:00
Happy-melon
f121f89674 Follow-up r85403: fix fatal in parser tests. 2011-04-06 17:39:18 +00:00
Happy-melon
625695317e Follow-up r85302: update OutputPage constructors in core. 2011-04-05 00:06:47 +00:00
Platonides
25a338f5e0 Add a couple of brace test cases. 2011-03-30 17:41:58 +00:00
Sam Reed
8c0292520b Fixup whitespace from r80445 2011-03-27 01:27:02 +00:00
Happy-melon
cf08b61b1b Follow-up r84475: fixing the warning is easy enough... :D Also some random tweaks to Database.php documentation. 2011-03-21 23:03:11 +00:00
Happy-melon
6dbcdc1be0 Blame hashar for this giant commit; he teased me for making so many smaller ones earlier... :D
* Internalise $mAddress/$mUser, $mBy/$mByName, $mEnableAutoblock, $mId as getTarget(), getBlockers(), isAutoblocking(), getId().  
* This required editing AbuseFilter and CheckUser backwards-incompatibly, so push the rest of the changes out to those extensions.
* Attack the evil 14-parameter constructor and gratuitously-confusing newFromDB( $notVeryImportantParameter, $moreImportantParameter)
* Reimplement the hack for bug 13611 in a slightly less fragile fashion; could still do with further cleanup, but then again the login frontend is its own can of worms... :S
* Remove transitionary getTargetAndType() and newFromTargetAndType() methods
* Some optimisation in parseTarget()
* Fix the broken phpunit test mentioned in r84251
2011-03-21 19:12:41 +00:00
Aaron Schulz
91fb54d0f9 Reverted r84386; breakage too severe 2011-03-20 21:30:24 +00:00
Antoine Musso
5da14533aa Makes wikilinks nicer when possible
This patch mostly impact Title:getLocalUrl() with two changes:

1) Abstraction:

$wgActionPath related code is now in Title::resolveActionPath(). It now
interprets query parameters using an array which is easier to read than
playing with a regexp and the evil $matches[].


2) Tweaking:

Change the 7 years old (r2621) URL forge:
  "{$wgScript}?title={$dbkey}&{$query}"
  => /w/index.php?title=FOO&q=2

To a nicer
  "str_replace( '$1', $dbkey, $wgArticlePath )"
  => /wiki/FOO?q=2


Additional changes:

* Parser tests were modified to reflect the changes.
* PHPUnit TitleTest amended to test getLocalUrl() (add more!!)
* When using wgActionPaths, makes sure the 'view' action is a sane default
2011-03-20 14:57:49 +00:00
Antoine Musso
8012c3b188 debugging statement when starting a phpunit parser test 2011-03-18 21:45:32 +00:00
Antoine Musso
97783870bc Makes LanguageTr uc & lc match parent declaration
Methods were introduced in r84057 which, unfortunatly was tested with
PHP errors disabled :\

Additionally add tests for the full Turkish alphabet based on an article
from Wikipedia http://en.wikipedia.org/wiki/Turkish_alphabet
2011-03-16 07:38:15 +00:00
Antoine Musso
3e6e06a3bb bug 28040 Turkish: properly handle dotted and dotless i
As mentioned by Bawolff on code review, r83970 only handled case change
of the first character lacking full strings support.

This patch override the uc and lc methods for the Turkish language (tr)
using preg_replace() which know about unicode. Other possible choices
would have been:
 - strtr() =>  outputs garbage
 - mbstring => can not know we handle turkish and transform i to I!

I have amended the RELEASE-NOTES to reflect this patch.

Some new tests are added as well to cover the regular functions as
well as the specific Turkish overriding. Result in testdox:

LanguageTr
[x] Change case of first char being dotted and dotless i
[x] Language tr lower casing override
[x] Language tr upper casing override
[x] Upper casing of a string with dotted and dot less i
[x] Lower casing of a string with dotted and dot less i
2011-03-15 21:56:54 +00:00
Sam Reed
7f1c9f7b63 Fixup some more old version comparison stuff 2011-03-15 12:06:40 +00:00
Antoine Musso
b8522fac08 bug 28040 Turkish: properly lower case 'I' to 'ı' (dotless i)
Turkish has two different i, one with a dot and another without a dot. They
are totally different letters in this language, so we have to override the
ucfirst and lcfirst methods.
See http://en.wikipedia.org/wiki/Dotted_and_dotless_I

Credits to #wikipedia-tr users berm, []LuCkY[] and Emperyan
2011-03-14 22:14:39 +00:00
Roan Kattouw
27508f06af Followup r83891: don't insert a newline before ++ or -- . Patch by Paul Copperman 2011-03-14 18:04:39 +00:00
Roan Kattouw
5ce4ecfced Per Nikerabbit, add some minifier tests for historic failure cases that I had lying around 2011-03-14 13:55:42 +00:00
Roan Kattouw
867fc1cba8 (bug 27528) Incorporate Paul Copperman's minifier 2011-03-14 11:44:33 +00:00
Antoine Musso
187575aa47 Makes MediaWikiProvide methods static
Follow up and revert r82369 which used dynamic calls
2011-03-10 20:24:04 +00:00
Antoine Musso
e29fa6eef9 switch 'column' for 'colon'
I always thought the colon and semicolon punctuation marks were named after
their architectural equivalent: column. At least, to me, it made more sens
than using a term relating to thedigestive system.

Per Nikerabbit r83296
2011-03-08 07:27:18 +00:00
Platonides
95f1076f20 Remove unused globals 2011-03-06 23:28:32 +00:00
Platonides
54026190a1 r82867 converted $wgCaches into a class instance. Update the parsertests.
This faking is needed to avoid Table 'unittest_objectcache' doesn't exist errors when using temporary tables.
2011-03-06 23:15:10 +00:00
Antoine Musso
16c6730b84 PHPUnit coverage comment must not have parentheses
Those comments have the format:
 @covers Class::Method

In PHPUnit 3.5.12, the comment is split by :: and method_exist called on
the resulting string. When one use  Class::Method(), the result is a call
to method_exist( 'Method()' ) which is always false and raise an exception

Removing parentheses from r79118 solve the issue. This also kind of
revert r79164.
2011-03-06 17:36:42 +00:00
Max Semenik
09756f3c1e Fixed fatals in UploadFromUrlTest. It still fails though 2011-03-06 09:01:19 +00:00
Antoine Musso
6fbd3da876 tests for IP class, mostly incompletes
* IP::sanitizeIP()
* IP::canonicalize()
* IP::isInRange()
2011-03-05 17:30:33 +00:00
Antoine Musso
9ad5b773f7 Tests for bug 27854 - Http::isValidURI is to lax
Those tests are made to help someone fix bug 27854. You might want to add
some more.  Please note we want this function to only validate curl supported
URI, hence the hardcoded protocols http,https and ftp.

Some of those tests currently fail because of bug 27854.
2011-03-05 16:15:39 +00:00
Max Semenik
b11cd099bb Don't dupe/drop parts of searchindex on SQLite 2011-03-05 16:09:10 +00:00
Max Semenik
332d709d8b MediaWikiTestCase: factored prefix generation to a separate function 2011-03-05 15:44:28 +00:00
Antoine Musso
0330258617 Underscore are not valid in language code
* Reject underscore in validation
* Still case unsensitive
* Corrected tests using underscore


Follow up r83160 which was a follow up of r82927 (language code validation)
2011-03-04 17:16:09 +00:00
Antoine Musso
93348f39d4 Fix language code validation (from r82927)
A language code may contains the underscore character (be_tarask)
and might as well be upper case (FR).

Add tests for Language::isValidBuiltInCode() against some language codes
2011-03-03 19:13:57 +00:00
Chad Horohoe
b661588c1f Followup r83140: FakeMemCachedClient -> EmptyBagOStuff in tests 2011-03-03 12:55:22 +00:00
Tim Starling
be76d86932 * Rewrote ObjectCache.php to conform to the modern coding style, and to be less convoluted about how CACHE_ANYTHING and CACHE_ACCEL are resolved. Moved most functionality to static members of a new ObjectCache class.
* Moved the global functions to GlobalFunctions.php, where they are now just convenience wrappers. Made them return non-references. Updated callers (none found in extensions). 
* Added an advanced configuration method, $wgObjectCaches, which allows a lot more detail in the object cache configuration than $wgMainCacheType. 
* Made all object cache classes derive from BagOStuff. 
* Split the MWMemcached class into a generic client class and a MediaWiki-specific wrapper class. The wrapper class presents a simple BagOStuff interface to calling code, hiding memcached client internals, and will simplify the task of supporting the PECL extension.
* Added some extra constructor parameters to MWMemcached, configurable via $wgObjectCaches.
* Removed the *_multi() methods from BagOStuff, my grepping indicates that they are not used.
* Rewrote FakeMemCachedClient as a BagOStuff subclass, called EmptyBagOStuff.
* Added an optional "server" parameter to SQLBagOStuff. This allows the server holding the objectcache table to be different from the server holding the core DB.
* Added MultiWriteBagOStuff: a cache class which writes to multiple locations, and reads from them in a defined fallback sequence. This can be used to extend the cache space by adding disk-backed storage to existing in-memory caches.
* Made MWMemcached::get() return false on failure instead of null, to match the BagOStuff documentation and the other BagOStuff subclasses. Anything that was relying on it returning null would have already been broken with SqlBagOStuff.
* Fixed a bug in the memcached client causing keys with spaces or line breaks in them to break the memcached protocol, injecting arbitrary commands or parameters. Since the PECL client apparently also has this flaw, I implemented the fix in the wrapper class.
* Renamed BagOStuff::set_debug() to setDebug(), since we aren't emulating the memcached client anymore
* Fixed spelling error in MWMemcached: persistant -> persistent
2011-03-03 09:37:37 +00:00
Antoine Musso
3f8524f459 PHPUnit target 'database' for db related tests 2011-03-02 20:45:44 +00:00
Antoine Musso
2a165ac219 Bug 2429 allow selection of associated namespace in recent changes
Done by adding yet another checkbox in Special:RecentChanges. The feature
also support namespace inversion.  For example, if you have selected
the TALK namespace with inversion and associated namespace, you will
be shown any changes which is not NS_MAIN or NS_TALK.

Tests:

SpecialRecentchanges tests only this feature. I had to filter out
the rc_timestamp condition which might cause trouble if the test
suite is run on another day. A better solution remains to be implemented.
2011-03-02 20:40:40 +00:00
Alexandre Emsenhuber
60f1302644 Per Platonides, fix for r82686: make ApiUploadTest work again
Added option request parameter to User::editToken() and User::matchEditToken() and use them where possible from the api.
Also removed $_SESSION usage since it's no longer needed
2011-03-02 12:52:47 +00:00
Antoine Musso
cb1b863ab1 FormOptions: adds doc & tests 2011-02-28 20:58:34 +00:00
Platonides
6a8e32d794 Blindly fix the error produced in r82880. 2011-02-28 15:16:40 +00:00
Sam Reed
c07330264d Tweak documentation
Fix constant use in UploadTest
2011-02-27 21:11:45 +00:00
Sam Reed
1cc6c09281 $somevariable; doesn't count as defining a variable 2011-02-27 00:36:10 +00:00
Platonides
e82b7e169c Remove NewParserHelpers.php and use instead the original TestFileIterator from which it was copied in r79411.
Remove the $this->parserTest checks as r79411 did. They are no longer needed. They were here since 
TestFileIterator addition in r62006 back when this file was called parserTests.inc, before being renamed twice 
without preserving history.
The wfDie(); wasn't intended to fall into trunk. It was marking a dead branch and got committed by error in r76149.
2011-02-26 23:45:35 +00:00
Platonides
2e33fb3ff6 Finally commit the testing stuff I have been with this week. Could be considered a continuation of r79411.
Mixture of the NewParserTests.php with old code present in MediaWikiParserTest.php, reverting r79184 (revert of a revert...) and even eval().
Using the iterator as dataProvider, but defering the insertion of articles, as the dataprovider is processed on load, before switching dbs.
Each parser test appear now as a phpunit test. This means that by adding 683 tests (partly from extensions) we now surpass two thousand tests.
The downside of that is that they become painfully slow.
Initialise $wgHooks to $wgHooks, not to array() (r82499) as otherwise we lose ParserFirstCallInit registrations.
There's no attempt to support extensions registering to $wgParser instead of using ParserFirstCallInit properly (Cite falls in this category).
2011-02-26 21:49:42 +00:00
Max Semenik
798dafa4dd Follow-up r82856: instead of remembering magic table names, just analyse its structure, added tests. 2011-02-26 16:45:35 +00:00