Commit graph

106 commits

Author SHA1 Message Date
Kunal Mehta
dda1696b7f Remove unused "swap" global function
Deprecated in 26e1e083e8, unused since r12411.

Change-Id: If328f09114ac5a5d23a300d9b0bbcd7d67e051c8
2015-04-10 18:07:38 +01:00
Yuri Astrakhan
7c75ee3976 Remove duplicate param escaping code
wfEscapeShellArg() can handle multiple params, escaping each.
This patch changes wfShellExec() to call wfEscapeShellArg() directly
instead of doing the gluing itself.

This patch also extends wfEscapeShellArg() to accept an array parameter
optionally instead of as separate args, which is often useful.

Added also unit test cases for single, multiple args, and single array args.

Change-Id: I7a0761cc2ba98c210a9eacadd12da407d933e42a
2015-03-05 17:06:04 +00:00
Chad Horohoe
9eefeaed6d Remove unused alias/layer of test abstraction wfShellMaintenanceCmd()
Change-Id: I28d303f9b89ffad052d06eb2dbb9e6f8cfaeea24
2015-03-03 22:15:52 -08:00
Timo Tijhof
48d715148b Use MediaWikiTestCase methods for tempdir in unit tests
* Use MediaWikiTestCase::getNewTempFile and getNewTempDirectory
  instead of wfTempDir().

  The upload api tests wrote a tempnam() file directly (where
  wfTempDir() is typically shared with other systems and concurrent
  runs). Use MediaWikiTestCase::getNewTempFile and
  getNewTempDirectory instead.

  This also ensures its removal by the teardown handler without
  needing manual unlink() calls. And it doesn't rely on the test
  passing. (Many unlink calls where at the bottom of tests,
  which wouldn't be reached in case of failure).

* For the upload test, the presistent storing of
  'Oberaargletscher_from_Oberaar.jpg' (downloaded from Commons)
  was removed. Note that this didn't work for Jenkins builds anyway
  as Jenkins builds set $wgTmpDirectory to a unique directory
  in tmpfs associated with an individual build.

* For filebackend tests, moved directory creation from the dataProvider
  to the main test.

  Implemented addTmpFiles() to allow subclasses to register
  additional files (created by other means) to be cleaned up also.

  Removed unused $tmpName and $toPath parameters in data
  provider for FileBackendTest::testStore. And fixed weird double
  $op2 variable name to be called $op3.

* Skipped parserTest.inc, MockFileBackend.php, and
  UploadFromUrlTestSuite.php as those don't use MediaWikiTestCase.

Change-Id: Ic7feb06ef0c1006eb99485470a1a59419f972545
2015-02-11 03:49:02 +00:00
Brion Vibber
2922b7f34f Account for HiDPI variants in thumb.php rate limiting
If $wgResponsiveImages is on, include the 1.5x and 2x multipliers
in the wfThumbIsStandard() standard image size comparisons.

Change-Id: I79d866387730cdd4d7c7a976e691192b2335b7ce
2015-02-04 19:55:44 -08:00
Timo Tijhof
39ac4fa5a4 Move wfThumbIsStandard() to GlobalFunctions and add tests
Change-Id: Ife9c011a476a4022cd72d433497944cbd7258e67
2015-02-04 19:50:06 -08:00
Bryan Davis
28a7ce420b Use MWLogger logging for legacy logging methods
Send wfDebug, wfDebugLog, wfLogDBError and wfLogDBError log messages to
the new MWLogger PSR-3 logger subsystem. Compatibility with the historic
logging operations of wfLogDBError are provided by MWLoggerLegacyLogger
and the MWLoggerLegacySpi logger factory.

Requires the MWLogger system introduced in I5c82299 and the Composer
managed libraries from Ie667944.

Change-Id: I1e5596d590144fbfdfd5f18bc42cf1ef0dbcac12
2014-10-29 11:55:08 -07:00
Sergio Santoro
28ccec727f Add test cases for wfAppendQuery
Change-Id: I51e0e1764ad70d922466d62f1ddf3f8e3fb4568f
2014-09-29 22:56:21 +00:00
Sergio Santoro
6dc33107dc GlobalTest: Add test for wfRandomString()
Change-Id: I8e681ed6a32a4a13603cad3cd3dc56545e16220f
2014-09-03 16:28:16 +00:00
Kevin Israel
5957856c46 wfBaseConvert(): Work around PHP Bug #50175
Before php/php-src@834daa455b, PHP's gmp_init() function would try
to autodetect hex and binary numbers even when a base was explicitly
specified[1], so the results for some base-36 numbers having leading
zeros could be incorrect. Work around this bug by trimming off any
leading zeros before calling gmp_init().

[1]: https://bugs.php.net/bug.php?id=50175

Bug: 69249
Change-Id: I5f5458c1a1195f55fa12904c103da6ea7558010a
2014-09-02 16:02:27 -04:00
umherirrender
26837cd280 Cleanup some docs (tests)
- Swap "$variable type" to "type $variable"
- Fixed spacing inside docs
- Makes beginning of @param/@var/@throws in capital
- Changed some types to match the more common spelling

Change-Id: Ia041964250d8b7c0349d79dc9b131c5b8696e795
2014-08-11 20:06:52 +02:00
Chad
6e920218c2 Revert "test: coverage for wfWikiID()"
Introduces broken test that doesn't pass regression or HHVM.

This reverts commit 4f55b804f2.

Change-Id: Ib82cc9b89e7392b752e9ef98134e90186e371247
2014-07-29 21:23:03 +00:00
Antoine Musso
4f55b804f2 test: coverage for wfWikiID()
Basic coverage test, note that $wgDBprefix is used as a suffix!

Bug: 68231
Change-Id: Ic454ce38672b1f18db2a7f2f46c50bcfc5ee83d0
2014-07-29 11:44:18 +02:00
umherirrender
5dffa8cb9a Each line in a doc block should start with *
Added missing * to some doc blocks

Change-Id: I0709f2e94b053437fa0f06bb67ae7ae4c248a618
2014-07-24 10:08:16 +02:00
umherirrender
abfa0d7854 Standardize @todo
Always use lowercase @todo
Changed some "@FIXME" to "@todo FIXME: "

Change-Id: I016d1f9511e6f3bbd22427f0fffeccd77ab5e0db
2014-07-23 22:27:20 +02:00
Max Semenik
9f522988b8 Fix race condition in wfShellExec()
Especially when executing commands that return a relatively lot of data in stdout
quickly, proc_get_status() may return that command has terminated before everything
has been read from pipes. Handle this case by continuing to perform
non-blocking select on the process's streams until all remaining data has been
read.

Bug: 67870
Change-Id: I050292dbb76821f66a15f937bf3aaf4defe67687
2014-07-21 23:21:23 -07:00
Max Semenik
d28fd40189 Mark relevant tests with @group GlobalFunctions
Change-Id: I4133ad7e5e042a8c24d4836ae2bf9f1880a56e70
2014-07-20 23:36:10 +00: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
jenkins-bot
358f2a07c6 Merge "GlobalFunctions: Deprecate swap()" 2014-07-10 00:50:28 +00:00
Timo Tijhof
0c2a013beb test: Remove MagicVariableTest#testServernameFromDifferentProtocols
This test was causing failures locally when wgServer != localhost
because {{SERVERNAME}} is derived from wgServerName, not wgServer
and the test is only mocking wgServer.

> MagicVariableTest::testServername.. with data set #2 ('//localhost/')
> Magic servername should be <localhost:string>
> Failed asserting that two strings are identical.
> --- Expected
> +++ Actual
> @@ @@
> -localhost
> +krinkle.dev

This value is no longer derived by the Parser, but is instead
set using wfParserUrl in Setup.php.

Remove this obsolete test and add any missing test cases for
wgParserUrl to its test suite.

Change-Id: I7d7d201cb46841e63dac8ab9fd81b45b252264a3
2014-06-25 12:08:48 +02:00
addshore
a0a72df1e7 Ignore days of random failing tests in wfTimestampTest
This switches 2 of the testcases to use a regex
instead of an exact match

Bug: 64946
Change-Id: I24b64b34787eb1b6bbf6e6b6178a2bbf5eb7c32c
2014-06-18 18:36:34 +00:00
Kevin Israel
26e1e083e8 GlobalFunctions: Deprecate swap()
This unprefixed function, added in r7198 (2b3f4c749d3d), has been
unused since r12411 (f2a59db33f).

It is short and simple enough that on the rare occasions it is needed,
it can be inlined or copied into the calling class as a private method.

Alternatively, the idiom `list( $a, $b ) = array( $b, $a )` can be used.

Change-Id: Ieb4602597a54eb21a5de177fee6dafa7ac71ce1d
2014-06-18 02:31:03 +00:00
Siebrand Mazeland
437c84adbc Pass phpcs-strict on tests/phpunit/GlobalFunctions/
Change-Id: I2acc99ac96d8c738668fae2ecc9a0cee1b695f00
2014-04-24 11:47:06 +02:00
umherirrender
725d9d125d Removed unneeded spaces and colons in @param and friends
Also swapped some "$var type" to "type $var" or added missing types
before the $var. Changed some other types to match the more common
spelling. Makes beginning of some text in captial.

Change-Id: Ic36c8c7820a6c2d603f1138130670c6bf6a1ca59
2014-04-08 16:02:49 +00:00
ptarjan
40f6571312 Use lower memory limits
HHVM is ~5x more memory efficient than php-src and it shouldn't make us
fail this test

Change-Id: I35a69766c42818c222d36e1cf2a7fabe63a4ece5
2013-11-23 02:53:55 +05:30
umherirrender
5dbfd5bf80 Fixed spacing
- Removed trailing spaces in comments
- Removed multiple empty lines
- Removed space after object operator

Change-Id: I9fd3256ab490c7cd2034de3fd94e6be6e6d6d8f2
2013-11-21 18:52:25 +00:00
aude
02071ecb18 Fix covers tag in GlobalTest
Change-Id: Ia9e6f539e9b70e82c3fc0b352585650aa3ec5d7a
2013-11-16 16:01:47 +01:00
Tim Starling
8af1c9503d Introduce WebRequest::getProtocol()
The use of static server detection outside of its intended use case
(i.e. at the start of DefaultSettings.php), for example in r93258, was
an architectural error. Every other bit of information about the web
request in non-setup code comes from non-static methods of WebRequest,
which allows the request object to be meaningfully replaced or
subclassed. The situation became increasingly ridiculous as more
callers of WebRequest::detectProtocol() were introduced. Two of the
callers were calling it non-statically! I suppose they had the right
idea, in a way.

Using a non-static call allows caching, which is a nice additional
benefit.

WebRequest::detectProtocolAndStdPort() was introduced in r93258 as part of
the introduction of WebRequest::detectProtocol(). It was basically
useless. Grep indicates there was only one caller in core and WMF
deployed extensions, and it is patched here.

Change-Id: Ia0a61e98fbff7a46ceaeebcb02236e5eac3df0e1
2013-11-06 21:13:10 +04:00
addshore
4bb09bbca5 @covers for all GlobalFunc tests
Also split 2 tests off into their correct test classes,
this methods are clearly no longer global functions

Change-Id: I482433f3099e72507a766e85d9576ff36e58b9ad
2013-10-24 10:00:55 +00:00
addshore
de7af7ac2c Fix scope on all /phpunit test methods
Change-Id: I3ce92463d485a0fb23e464e9a8059330f32d79af
2013-10-24 10:31:32 +02:00
Elliott Eggleston
f0ea8fdfb9 wfMkdirParents: recover from mkdir race condition
If mkdir fails, check again to see if dir has been created
since our initial check, and return true if so.

Also, in initial check, only return true if $dir is really
a directory, not a file.

Bug: 49391
Change-Id: I2b331669fae70948ce79ba1477c05968a3095c3d
2013-09-12 23:43:45 +00:00
umherirrender
24bfde2710 Fix spacing and break some lines
Change-Id: Ia57685d8858e02e399ad5c75ce64d12609d340ac
2013-08-24 17:06:25 +02:00
Kevin Israel
c2d0b90633 Make wfMatchesDomainList not match partial domains
Change-Id: I90e7af152fbd9bb8d84d5f2c54bd352b461c530d
2013-07-28 11:18:38 +02:00
Kevin Israel
052f1fcf30 Deprecate MWFunction::call and ::callArray
These functions existed to work around a bug (fixed in PHP 5.3) and
a missing feature (added in PHP 5.2) in older versions of PHP;
therefore, they are no longer necessary.

Change-Id: Ifebbe3d449fc57fd83f8350c28f467605c1a07b7
2013-07-19 18:48:51 -04:00
Kevin Israel
8ea3dc7faa Deprecate a few one-line global functions
Additions to the PHP language made these redundant.

* wfArrayLookup() is similar to PHP 5.1's array_intersect_key()
  yet has serious limitations. For example, integer string values
  are implicitly cast to integers.

* wfArrayMerge() can be replaced by PHP 5.3's array_replace().

* wfTime() just returns microtime( true ).

Change-Id: I2c6844fc48a265d2d885083b5bed8df846e0aaf4
2013-07-05 21:06:11 -04:00
MatmaRex
89c09f9916 wfBCP47Test: Remove commented-out testcases
They would all pass anyway, but the functionality is already tested
elsewhere in the file.

Change-Id: Iffe166f3480df0b104e09e41dd8d3023d43b9aa7
2013-07-01 20:46:47 +00:00
Siebrand Mazeland
791d0b2a98 Update code formatting
Change-Id: I16a9b42651f1cfb1a70dffbb67b7b83dfeb90d03
2013-04-26 14:21:20 +00:00
umherirrender
e31e80dee1 Add missing braces to for in wfGetCallerTest
Change-Id: I14b7abb90e2574022c792a6874390eee87d48708
2013-04-17 20:11:34 +02:00
jenkins-bot
b3d9004342 Merge "Tests: Use more setMwGlobals" 2013-03-22 19:15:03 +00: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
umherirrender
ff3485ec99 Tests: Use more setMwGlobals
Change some tests to use setMwGlobals to have restoring of globals after
the test.
This also removes some save/restore code, which is not needed, due to
the automatically restoring on tearDown with setMwGlobals.

Change-Id: I8d2ac9f6cc14f0bd4ee8eb851c09f2e71babc6e0
2013-03-21 20:35:44 +01:00
jenkins-bot
214f855e4a Merge "phpcs: Naming of GlobalFunctions tests classes." 2013-02-22 21:46:32 +00:00
Alexandre Emsenhuber
eb5d02900d Add tests for wfParseUrl()
Follows-up Ife07d6e2 (a7c103a).

Change-Id: Ie32cf604959829904fb8661347edbbd94091d84b
2013-02-22 01:05:15 +01:00
Timo Tijhof
66cea66a68 phpcs: Naming of GlobalFunctions tests classes.
Code convensions:
 Class names should be UpperCamelCase.

And for PHPUnit:
 Class name should end in 'Test'.
 Class name should match file name.

Also made headers and spacing a bit more consistent.

Change-Id: Id7b6cec7e552240de44386b4759b57c2d37a39d1
2013-02-22 01:01:41 +01:00
Siebrand Mazeland
ac63001d8e Update formatting
1 of n.

Change-Id: I852729f08bbb0c5e39c2db44362ccdc7f59dcc08
2013-02-14 12:22:13 +01:00
Chad Horohoe
296e57f634 Deprecate in_string()
It's a silly wrapper for something you can do in one line
of PHP anyway.

Change-Id: Ib85e4aaa20e62fe5f218b38cf0759c9c799c3381
2013-02-06 14:38:57 -05:00
jenkins-bot
75ef257c29 Merge "pass codesniffer on tests/" 2013-01-28 23:47:45 +00:00
Alex Monk
c2c982c4e8 (bug 36537) Rename calls to wfArrayToCGI to wfArrayToCgi
Done with this command:
grep wfArrayToCGI * -R -l -Z | xargs -0 -l sed -i -e 's/wfArrayToCGI/wfArrayToCgi/g' && git checkout -- HISTORY

Change-Id: If7f4d4bfc199289c11c43cf519c2415a1aad1c51
2013-01-28 18:04:20 +00: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
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