Commit graph

63 commits

Author SHA1 Message Date
Kunal Mehta
6e9b4f0e9c Convert all array() syntax to []
Per wikitech-l consensus:
 https://lists.wikimedia.org/pipermail/wikitech-l/2016-February/084821.html

Notes:
* Disabled CallTimePassByReference due to false positives (T127163)

Change-Id: I2c8ce713ce6600a0bb7bf67537c87044c7a45c4b
2016-02-17 01:33:00 -08:00
Reedy
9d19133bad Remove < PHP 5.4 register_shutdown_function() from phpunit.php
Change-Id: Ic4efeca82762b3c50cd2e1b45e43a6f1ef0f5710
2016-02-10 22:06:45 +00:00
Kunal Mehta
82c6f0ff03 Output PHP version before running PHPUnit tests
For sanity checking CI changes, as well as to match the PHPUnit
version output.

Change-Id: Ib807f8650992adada97226cd96282484392f71e8
2016-02-07 17:43:33 -08:00
Aaron Schulz
3592f8cea3 Add simple JobQueueMemory class for testing
Change-Id: I1acce43dbab3b12393d6dc4675850695c619d88a
2016-01-14 00:23:05 +00:00
Aaron Schulz
95ebc3d956 Fix undeclared global $wgMainStash
Change-Id: I95d4194199a064221a56e0b10b236dd2564d1855
2016-01-12 21:56:26 -08:00
Brad Jorsch
a73c5b7395 Add SessionManager
SessionManager is a general-purpose session management framework, rather
than the cookie-based sessions that PHP wants to provide us.

While fallback is provided for using $_SESSION and other PHP session
management functions, they should be avoided in favor of using
SessionManager directly.

For proof-of-concept extensions, see OAuth change Ib40b221 and
CentralAuth change I27ccabdb.

Bug: T111296
Change-Id: Ic1ffea74f3ccc8f93c8a23b795ecab6f06abca72
2016-01-12 21:57:01 +00:00
Florian
be60ba4cb4 Use wikimedia/at-ease insteaad of @
Change-Id: Icba412dd5db11b596ad1cf740b8408823297bc86
2015-12-27 21:51:16 +01:00
Reedy
cc7fca0c14 Support phpunit-old.phar
Bug: T122485
Change-Id: Ic21c6c1ca5afaac0e298cf0259f5dc273dfec128
2015-12-27 20:26:05 +00:00
umherirrender
54c1e18eec Remove various double empty newlines
The double empty newline is not needed between functions, variable or at
end of file

Change-Id: Ib866a95084c4601ac150a2b402cfa184ebc18afa
2015-12-27 18:55:12 +00:00
saper
71443707ad set serialize_precision to 17, current PHP default
Follow up to:
https://gerrit.wikimedia.org/r/#/c/249018/

Bug: T116683
Change-Id: I6e8dfab473ae2c18e68c8e4360159c9cc0e09758
2015-10-27 18:44:41 +01:00
saper
f076661442 Reset serialize_precision to stabilize tests
With serialize_precision = 100 the following
failures were generated:

1) ApiFormatPhpTest::testGeneralEncoding with data set #7
(array(1.0E+42), 'a:1:{i:0;d:1.0E+42;}', array(1))
Failed asserting that two strings are identical.
--- Expected
+++ Actual
@@ @@
-a:1:{i:0;d:1.0E+42;}
+a:1:{i:0;d:1000000000000000044885712678075916785549312;}

/usr/home/saper/public_html/ybabel/tests/phpunit/includes/api/format/ApiFormatTestBase.php:61
/usr/home/saper/public_html/ybabel/tests/phpunit/MediaWikiTestCase.php:137

2) ApiFormatPhpTest::testGeneralEncoding with data set #30
(array(1.0E+42), 'a:1:{i:0;d:1.0E+42;}', array(2))
Failed asserting that two strings are identical.
--- Expected
+++ Actual
@@ @@
-a:1:{i:0;d:1.0E+42;}
+a:1:{i:0;d:1000000000000000044885712678075916785549312;}

/usr/home/saper/public_html/ybabel/tests/phpunit/includes/api/format/ApiFormatTestBase.php:61
/usr/home/saper/public_html/ybabel/tests/phpunit/MediaWikiTestCase.php:137

Bug: T116683
Change-Id: I5e760b4632d2ab326954fe5769476e143c376d7c
2015-10-26 23:55:48 +01:00
Vivek Ghaisas
c54766586a Fix issues identified by SpaceBeforeSingleLineComment sniff
Change-Id: I048ccb1fa260e4b7152ca5f09b053defdd72d8f9
2015-09-26 23:06:52 +00:00
Amir E. Aharoni
e17c107ba8 phpunit.php: Make lines shorter to make phpcs happier
Change-Id: Ide48ca85912ab55184588a1144f9fdca7ad48227
2015-09-26 13:44:30 +00:00
Timo Tijhof
74433a3ca8 phpunit: Set $wgMainStash to 'hash' during test execution
Also clean up the other cache settings to match their order
as defined in DefaultSettings.php.

Don't disable MessageCacheType, ParserCacheType etc. This could
prevent bugs from happening during tests. They are enabled by default
in MediaWiki with CACHE_ANYTHING. At least let them use 'hash'
during tests to resemble a more realistic environment.

Change-Id: Id9edf33c600db3ac4d837e1674a8eb2f5363a4f8
2015-09-25 04:57:31 +00:00
Aaron Schulz
d18722f7bc Set $wgMainWANCache to none for PHPUnit, as is done for $wgMainCacheType
Change-Id: I0518876d7df7027c934d1199543a3185732df663
2015-07-13 23:18:30 +00:00
Kunal Mehta
71ede19ea8 Don't try looking for phpunit if it is already loaded
If phpunit is installed via composer, it will already be present in the
autoloader, so including other paths won't do anything.

Also add some output to make it easier to figure out where phpunit is
being loaded from.

Change-Id: Id6d23626b158779f6ff56e6d0f20d519f2f4ad18
2015-07-01 21:36:43 +00:00
Vivek Ghaisas
9359cfffd4 tests/phpunit/phpunit.php: Add @codingStandardsIgnore comment
MediaWiki Codesniffer warns that "Silencing errors is discouraged".
Assuming this was done with good reason, this patch surrounds the
offending line with comments asking codesniffer to ignore the line.

Ironically, silencing errors about silencing errors.

Change-Id: Ib811b03b0a53735ce0da38bc8861ff38f9d1a666
2015-06-20 23:55:06 +03:00
Marius Hoch
85acf8afba Have phpunit.php exit with 1 in case it couldn't run the tests
Just makes more sense not to claim we could complete everything
if we actually couldn't.

Change-Id: I4ec3a2da8913ca546782919813eb18a05a5cca0a
2015-04-09 10:32:59 +02:00
Timo Tijhof
399ba2fecf MWException: Log stack traces for php errors (not exceptions)
* Remove use of 'error' where it's redundant.
* Remove call to logException from responsibility of MWException.
  Call from exception handler instead.

Change-Id: I8764cf5df87b226813c9b9cf99f9b4f3fa4b7c92
2014-11-16 14:37:15 +01:00
umherirrender
861617ca24 Fixed spacing
- Removed spaces around array index
- Changed else if to elseif
- Added space after foreach/if/function
- include_once is not a function

Change-Id: I7745ae791d1b7e60cfebec6d268513a9cc071bdd
2014-08-04 11:51:22 +02:00
Ori Livneh
555e0b4b3c Improve PHPUnit detection code
The code that attempts to load PHPUnit is simpler and clearer when rewritten as
a loop that iterates through a set of possible include paths for PHPUnit,
ordered from most to least desirable, and which tries each include path in turn
and then checks if the requisite classes are now loaded.

Also simplify check for PHP version: MediaWiki requires 5.3+, so might as well
assume it.

Change-Id: I9e25d69c1381cf3a87e7df2baf346bc6bb5aa052
2014-08-03 23:04:45 -07:00
addshore
33ea33f7b6 Allow use of phpunit.phar with MediaWiki's phpunit.php test entry point
MediaWiki tends to assume installation of phpunit via PEAR.
Distribution of phpunit via PEAR will eventually be discontinued,
in favor of distribution via PHAR or composer. PEAR installation
of phpunit 4.0 essentially distributes a phar.

https://github.com/sebastianbergmann/phpunit/wiki/Release-Announcement-for-PHPUnit-4.0.0

This patch allows phpunit.php to work with a phpunit.phar file,
as long as it's in the include path.  --with-phpunitdir can be used
to add a directory to the include path.

With composer install, no options are needed and it works.

Bug: 58881
Change-Id: Ibac9b36bbb9614d990c697a091947a64c8987d1d
2014-08-02 21:41:38 +00:00
addshore
892a992ab8 Remove MediaWikiPHPUnitCommand
All functionality has been moved to other places

Change-Id: I6b6b0ef846bc63108c4dff9e17098432fd9d1697
2014-08-02 21:35:34 +00:00
addshore
c454a77916 Move debug-tests out of MediaWikiPHPUnitCommand
This also slightly refactors MediaWikiPHPUnitTestListener
so we can pass it into phpunit directly using the
--printer option

Change-Id: I6a19e3902130eeba6a0941f24a4f440b712058e5
2014-08-02 21:34:34 +00:00
umherirrender
53c420e278 Fixed spacing
- use tab as indent instead of spaces
- Added space after closures "function"
- Added spaces around string_concat
- Added newline inside empty blocks
- Removed four spaces after comma

Change-Id: I4425b0c6a69b36f40acfea6511b8950cf09ce2b2
2014-07-20 21:41:41 +02:00
umherirrender
2b021dc48a Fixed spacing
- Added/removed spaces around parenthesis
- Added space after switch/if/foreach
- changed else if to elseif

Change-Id: I99cda543e0e077320091addd75c188cb6e3a42c2
2014-07-19 23:12:10 +02:00
Brandon Black
e323bc3393 Speed up CIDR matching from $wgSquidServersNoPurge
This adds a new generic library class IPSet, which precomputes
a reasonably-efficient data structure from the input list of
addresses and CIDR net/mask specs for fast runtime matching,
and then uses it to check trusted XFF-setters.

See also: 32b4f19f173fc5cff1029eedee63a39a2d72dd3a
Bug: 57021
Change-Id: Ia3b12fb90c3e7e492374a128943b014481cc2730
2014-05-15 17:23:12 +00:00
addshore
e7867c803f Remove includepath stuff from MediaWikiPHPUnitCommand
Change-Id: I949c1ca350a28c606fba7406e9904e836e596b49
2014-05-05 13:17:22 +01:00
addshore
fefc843bd7 Remove color opt setting from MediaWikiPHPUnitCommand
Change-Id: I08d3b53f80520452aef3fcf2017747406a38664d
2014-05-05 13:09:56 +01:00
Siebrand Mazeland
4ede8c2e9d Pass phpcs-strict on some test files (11/11)
Woo!

Change-Id: I9fc116dfdf18c2772d047adb5bb14535d0bd39ed
2014-04-24 13:51:05 -07:00
csteipp
90b3d62854 Prevent GC during phpunit shutdown
To keep phpunit from segfaulting during shutdown, turn off GC for
php 5.3.

Bug: 62623
Change-Id: Ie59780e37cbea027cc204a43df406667c3f432ab
2014-04-14 21:09:10 +00:00
addshore
3b3806d27a Remove assignment in conditon in phpunit.php
Change-Id: I817af3cf5344d9ffe2a66048f6d32835712ba11c
2014-03-14 19:13:06 +01:00
Adrian Lang
46db65ed07 Update PHPUnit version check to 3.7.0
assertContainsOnlyInstancesOf has been added in PHPUnit 3.7.0, so we need to
have that version for running the tests.

Bug: 59759
Change-Id: I25dbd377b97ec0b9062d3c8cf495ba3f06956ac4
2014-01-07 09:46:46 +00:00
Siebrand Mazeland
e711503e7a Remove underscore from classes LCStore_*
iPart of program to remove underscores from class names. Checked core and
600+ extensions for occurrences. All uses are in core, and are updated in
this change.

Change-Id: I432dc249d22053728013ae7d0d56c3c398021c5e
2013-11-17 22:09:31 +01:00
umherirrender
24bfde2710 Fix spacing and break some lines
Change-Id: Ia57685d8858e02e399ad5c75ce64d12609d340ac
2013-08-24 17:06:25 +02:00
Daniel Friesen
2740518620 Support installing PHPUnit using composer.
"phpunit/phpunit" already exists inside our composer.json's "require-dev" however this has been
entirely useless as we don't include the autoloader which would load composer's PHPUnit.

This change begins including composer's autoloader when present and also tweaks phpunit.php
to ensure PHPUnit isn't double loaded. As a result besides supporting PHPUnit via composer this
also means that we're ready to make use of any library we add to our composer.json in the future.

Change-Id: I891740e8fd3d237c5f473862027205d951f564b9
2013-06-07 02:07:27 -07:00
Antoine Musso
7a82d5b779 test: inject autoloader in Maintenance class
We used to inject the test autoloader from the global space after the
Maintenance class has been initialized.  That prevents us from using
tests classes (such as Mock) during the Maintenance setup.

This patch move the TestsAutoLoader.php require() at the beginning of
finalSetup() which would let use Mock classes.

Change-Id: Ia402eafae8407d1516e3d200ac97539e3681fdc6
2013-06-01 09:27:11 +02: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
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
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
Platonides
9cd81e4c14 (Bug 44192) Do not attempt to send a real e-mail
The ApiAccountCreationTest is attempting to send an email to the newly
created user. The tests should really never send any email. This patch
register a noop callback for the 'AlternateUserMailer' hook which would
disable email entirely in our test suite.

This is generic version of 2025a89 which was only disabling mail for the
ApiAccountCreationTest test and that Antoine reverted.

Change-Id: I7b3ba4f7563a5818c988d6f8da165cc3c984f160
2013-02-28 14:17:08 -08: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
Siebrand Mazeland
454d92fb7c Update formatting
8 of n.

Change-Id: I55551510e7afde5b6b981697d5c0efd7b9507585
2013-02-15 13:08:55 +00:00
jeroendedauw
38c7f444e1 Use __DIR__ instead of dirname( __FILE__ )
We can now do this since we finally switched to PHP 5.3 for MW 1.20 and get rid of the silly dirname(__FILE__) stuff :)

Change-Id: Id9b2c9cd2e678197aa81c78adced5d1d31ff57b1
2012-08-27 21:45:00 +02:00
daniel
4b291909e0 wfWarn() should cause phpunit tests to fail.
This forces $wgDevelopmentWarnings to true for phpunit tests.

Note that wfWarn uses the E_USER_NOTICE level per default, which may or may not
actually cause test cases to fail, depending on the phpunit configuration.

Change-Id: I36583fb063436cc8474873b468fc983d28377cbd
2012-08-27 14:28:47 +02:00
Christian Aistleitner
096592cf14 Bumping minimum supported version of PHPUnit to 3.6.7
With PHPUnit 3.6.7, we can finally check the output of tests.

Change-Id: Ib0f1afe5fd9ab9784ba7f78b2921cf047ccc83f3
2012-04-29 10:02:23 +02:00
Antoine Musso
3b9a3678b3 let us easily override PHPUnit version
The new --with-phpunitdir let us specify a git checkout of PHPUnit. That
will ease regression testing of the upstream new version. Usage is
straightforward:

Checkout PHPUnit from git as instructed on:
https://github.com/sebastianbergmann/phpunit#readme

Invoke our test suite with:
 $ cd maintenance/tests
 $ php phpunit.php --with-phpunitdir /path/you/just/checked/out

Change-Id: I8a9af0deac4dd74e3c8bde73535555c54ac83766
2012-04-17 15:39:15 +02:00
Aaron Schulz
10f49bd065 [LanguageConverter] Added some cache code based on the problems in r97512.
* Added $wgLanguageConverterCacheType global to control LC cache type. We can use it to enable direct apc use for language converter (to match the live hack).
* Added $wgLangConvMemc object, available via Setup.php

Change 1:
* Updated unit tests
* Minor documentation cleanup in DefaultSettings.php

Change-Id: Icd5dd28407e9759ce294c784ec41d9ca15c89616
2012-04-06 13:26:17 -07:00
Tim Starling
2462a1ae71 Make arguments to phpunit.php work. It's hard to believe this could have been broken since r79164, so maybe it was a change in the command line parser that PHPUnit uses that made it treat any options after the first non-option argument as being plain arguments rather than actual options. 2012-01-23 19:06:09 +00:00