Commit graph

133 commits

Author SHA1 Message Date
Timo Tijhof
bfa6b4cab4 MediaWikiTestCase: Centralise insertPage() logic from SearchEngineTest
Make it re-usable for other tests and update SearchEngineTest to
use the addDBData (which is called automatically) instead of
manually keeping track of the state.

Change-Id: I75a6951545d9824e71e00f0f96936c53b400dce6
2014-09-22 14:56:32 -07:00
Marius Hoch
3cbaac08cd MediaWikiTestCase: Enforce children call parent::tearDown
Can't be implemented as a test case because that's not being
run before MediaWikiTestCase::tearDown.
Also there's no parent destructor, so no need to call one.

Also fixed BagOStuffTest.

Change-Id: Ifd8659b6c8a748c6716099f8822e2c50ab51bda7
2014-09-14 21:21:40 +02:00
umherirrender
63dc5abc9a Fixed spacing
- Added space after reserved words: function, foreach, if
- Combined 'else if' into elseif
- Added braces to one-line statements
- Added spaces after comma, before parentheses

Change-Id: Ie5bbf680d6fbe0f0872dab2700c16b1394906a72
2014-08-27 18:31:50 +02:00
addshore
dba0522f70 Override phpunit assertTag method to stop errors
This method throws a deperecation error in phpunit
that we dont want to see (and dont want to break
travis tests).

Nothing this method uses is beign deprecated thus
we can override the method and not need to worry
about the error or it vanishing in the future!

Bug: 69505
Change-Id: I0eb63be390b4fdf416635dd8e8a2ad94615e6a47
2014-08-17 21:41:18 +00: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
addshore
892a992ab8 Remove MediaWikiPHPUnitCommand
All functionality has been moved to other places

Change-Id: I6b6b0ef846bc63108c4dff9e17098432fd9d1697
2014-08-02 21:35:34 +00:00
umherirrender
7ff005407e Remove colon after @deprecated/@param/@todo/@note
Change-Id: I4e66dad85eecf7e8e03ac760af900395e1bc11b6
2014-07-24 11:30:25 +02:00
Max Semenik
da300d4432 Fix DjVu tests isolation
Change-Id: I97177572fc025c5ab4361146253d7df9c487c291
2014-07-15 16:56:34 -07:00
Max Semenik
859aa19359 Reset RequestContext between tests
Its state can change when people do something with objects it returns or
when they alter globals like $wgRequest. By resetting this singleton, we
ensure that no such change will propagate outside of a test.

Change-Id: I7e8598716d810a09c17f80a05deecab617b62346
2014-06-27 10:59:47 -07:00
Siebrand Mazeland
1fb1fa4601 Pass phpcs-strict on some test files (1/x)
Change-Id: I7f8dee09ac734cbc369441431841f2d4aa5d7f51
2014-04-24 17:05:32 +02:00
jenkins-bot
0e675650ae Merge "Fix "UTPage" creation in tests" 2014-04-22 17:56:32 +00:00
Andrew Garrett
7cba8b280e Fix "UTPage" creation in tests
Change-Id: If414c633a3abb6019f9d677b70e6bc790c0c241d
2014-04-22 17:52:20 +00:00
umherirrender
092cd8ee31 Fixed some @params documentation (tests)
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.
Also added some missing @param.

Change-Id: Ic8aaf0a93796b97d0fa4617c1f86ff59f4b36131
2014-04-17 20:43:42 +02:00
umherirrender
2000672ac3 Fixed spacing
- Added spaces after if/foreach/catch
- Added new line before end of file
- Added or removed spaces before/after parenthesis, comma
- Added spaces around string concat

Change-Id: I0590070f1b3542108e242730e8d9a3ba9831e94f
2014-03-20 20:37:30 +00:00
addshore
3dfdddeb94 Remove phpunit compatability function calls
phpunit.php now requires we run tests with
3.7.0+ so we no longer need these safety
calls

Change-Id: I15d215630fe4d8ab71fc97883dde2eed13d03678
2014-03-14 14:43:09 +01:00
addshore
2bc5c3b101 Cleanup MediawikiTestCase
Cleans docs
Adds since tags
Fixes typos
Removes totally unused stuff
Adds scopes

Change-Id: I80d542196a0f2265aacdd8ae89f919773832c14c
2014-03-09 15:12:05 +01:00
addshore
4b3b1000c0 Throw exception when trying to stash unset globals
If we are trying to stash an unset global then
throw an exception!

Also adds a test

Change-Id: I25f493a0a535201c08ca9624c2c650f61d9e256d
2014-03-09 14:52:40 +01:00
addshore
491993a2f5 Introduce stashMwGlobals method to MediaWikiTestCase
This method is factored out from the existing
seMwGlobals method.

The Doc from the initial method is also split and
improved and since tags has been added

Also adds tests

Change-Id: I0637194d637abf485a245b00587743f0f6dd495a
2014-03-09 14:49:15 +01:00
addshore
a3d8146e57 Catch Serialization Exception in MediaWikiTestCase
In the case that something is not serializable then
we should fall back and just set the value.

This is the case for Closures..
See
http://wikidata-jenkins.wmflabs.org/ci/job/wikidata-client-tests/748/console

Change-Id: Ib5f76932d60840a2f97671c134e18adc619974cd
2014-03-05 20:50:20 +01:00
addshore
6f5ea67f7f Make sure we don't use objects by ref in setMwGlobals
If we copy am object by ref into our temporary array
then this doesn't really make this method very useful
as the same object would be restored, with any changes
after the test has run.

Thus objects should be cloned when being dumped in
here, we use unserialize() and serialize() instead as
we would also want to clone the objects within the
object to avoid changes in there!

These is no point in adding an if is_object call so
we just serialize and deserialize everything!

Change-Id: I5e4ef114405888932014edae6b44afc6ee2c4863
2014-03-05 18:31:49 +00:00
Marius Hoch
5785c77a00 Ignore certain tidy warnings in assertValidHtmlDocument
Those aren't really useful, especially as tidy often
cries about parameters missing which have been
deprecated since HTML 4, so that these warnings have
no value for us.

Change-Id: Ic27c597aa988079ed08e152861bf1dee9581b829
2014-01-28 10:46:45 +00:00
jenkins-bot
f7afda4643 Merge "assertValidHtml for checking html in test cases." 2014-01-17 11:55:50 +00:00
daniel
df927f86c2 assertValidHtml for checking html in test cases.
implemented using tidy.

Change-Id: Idb98af785ca07ecd7afeebadf7396ecdc03a91bc
2014-01-17 12:42:35 +01:00
umherirrender
8138ad179d Fixed typo in comment in MediaWikiTestCase
Change-Id: I72214f134e0e94195cb56271c5fcb6997245fac6
2013-12-27 12:50:27 +01:00
daniel
08f91482c8 Detect leakage of error_reporting state in tests.
This causes PHPUnit test cases to fail if they changed the PHP 
error_reporting settings, and failed to restore it.

Change-Id: I34068eac94c974a461af0ff5753d9fcaa375f2e4
2013-11-16 22:03:20 +00:00
AlephNull
e9d53667f4 MySQL method to find out view + fix fatal in tests
We were missing a method to list out views defined in a database. This
patch adds in MysqlBase::isView() and MysqlBse::listViews().

Since listViews() cache its result in DatabaseBase::$allViews, we also
introduce a final DatabaseBase::clearViewsCache() to let us clear the
per process cache.

Finally, fixed fatal error when duplicating VIEWs in MySQL.

bug: 43571
Change-Id: I8650baa4b721fe69ea3e1d557dd76745c0c7754e
2013-11-07 09:43:59 +00:00
Tim Starling
d1bc243f65 Remove all instances of the word "iff"
It's elitist mathematical jargon. In all cases dealt with here, it adds
no additional meaning compared to "if", beyond what was already obvious
from context. Thus, its only purpose is to smugly demonstrate that the
author attended their second-year mathematics classes, at the expense of
causing confusion for everyone who doesn't have such a background.

If you really think you need to convey extra information beyond what
"if" gives you, the English language contains plenty of devices for doing
so, without resorting to neologisms.

Change-Id: Iae21095d02ec2935c10e94f532235c2671c115b1
2013-10-23 10:56:54 -07:00
jeroendedauw
35783c4635 Deprecate assertException in MediaWikiTestCase as it adds no value
setExpectedException, provided by PHPUnit itself, can and should be used instead

Change-Id: I06833eeeb492d2cc4e66b14aaebd5b2061a29e3a
2013-09-20 20:48:51 +00:00
Timo Tijhof
4bd5471ca3 docs: Remove odd colons after @todo
Most were this way already:
https://doc.wikimedia.org/mediawiki-core/master/php/html/todo.html

Ran a find/replace on the odd ones. Also made them all
lower case.

Change-Id: I70c6a69344ddebc603e9a1c1d87e3cc4f4f4c560
2013-05-15 06:23:40 +00: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
umherirrender
8764b3aa7c Remove spaces in function signature
Change-Id: I45aea7a7af88cd913b2f485913620a8af0ab2fed
2013-03-18 20:44:43 +01:00
Antoine Musso
1b2c9970a6 acessor for MediaWikiTestCase::$useTemporaryTables
useTemporaryTables is marked private to prevent childs from overriding
the value which would cause a lot of madness whenever it forgot to reset
its status.  But that in turns prevents a child class from figuring out
whether we use temporary tables or not. The ActiveAbstract extension
test suite has such a requirement and hence need a proper accessor.

MediaWikiTestCase::usesTemporaryTables() is a public accessor to for the
private property MediaWikiTestCase::$useTemporaryTables.

Change-Id: I8016c49116a187d7523cc0d6190514f8a513eafb
2013-03-18 15:15:08 +00:00
Yuri Astrakhan
27d83878c0 Lots of spelling mistakes and phpdoc attributes
@throw->@throws
@returns->@return
@seealso->@see
@cover->@covers
etc

Change-Id: I9ae6bc3034e9790e2d66cd96473b923fe9ee7953
2013-03-10 23:16:28 -04:00
Siebrand Mazeland
ac63001d8e Update formatting
1 of n.

Change-Id: I852729f08bbb0c5e39c2db44362ccdc7f59dcc08
2013-02-14 12:22:13 +01:00
Antoine Musso
5a547ac784 test: helper to skip tests depending on 'gzip'
Some of our tests explicitly depends on the 'gzip' command line utility,
for example the Dumps test suite.  This patch adds up a simple helper
MediaWikiTestCase::checkHasGzip() which skips tests whenever gzip is
missing.

Change-Id: I5ded9a53d08dcf5f35e666f91e3f64e6e111af32
2013-01-29 09:52:21 +00:00
jenkins-bot
75ef257c29 Merge "pass codesniffer on tests/" 2013-01-28 23:47:45 +00:00
Antoine Musso
a7901801b4 test: helper to skip tests depending on a PHP ext
Some of our tests expect a specific PHP extension to be loaded to get
anything done, for example zlib or gd.  This patch creates a new helping
method that people can use to easily skip a test whenever a PHP
extension is not around: MediaWikiTestCase::checkPHPExtension()

Example usage:

 function testCompressFiles() {
   $this->checkPHPExtension( 'zlib' );
   ...
 }

Change-Id: Ia87317ca379b2d5d1d1fa4231f76033ee66086c2
2013-01-28 11:18:04 +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
Aaron Schulz
fb8e4beca3 Merge "While testing, turn off DataBase::ignoreErrors." 2012-12-06 17:38:21 +00:00
daniel
abf22b914a While testing, turn off DataBase::ignoreErrors.
Database errors should cause an exception, not return false,
unless the test case, or the code under test, explicitely calls
ignoreErrors(true). The DB object should be reset to fail fast
and safe for every test.

Change-Id: Ifc2a720ec46a1843d9ffb1488c54743a0099ef9d
2012-12-05 17:13:21 +01:00
Antoine Musso
5b9f76aef7 test: detects parent setUp not being called
Our test classes often overload MediaWikiTestCase::setUp() but forget to
call their parent. This patch makes MediaWikiTestCase to flag whenever
its own setUp() is called and then simply assert it got called. Any
class failing the assertion is missing a call to its parent setup which
is easily fixed by adding: parent::setUp().

It would be nice to find a similar trick for tearDown().

Change-Id: Ia2afed6052eb3863d6c8e68c551cf03b33bb4be9
2012-12-05 16:44:41 +01:00
jeroendedauw
ba9a170df2 Added assertException method to MediaWikiTestCase
Change-Id: I3ce667b4405241c66c5a979863d1cea2cf39956b
2012-11-30 11:35:08 +01:00
Hashar
289c407957 Merge "Add MediaWikiTestCase::checkHasDiff3 and use it" 2012-11-23 10:27:47 +00:00
daniel
e2bb376dd7 Added profiling to test runner.
MediaWikiTestCase now calls wfProfileIn/wfProfileOut for each call
to a test function. This makes it easy to track down slow tests.

Change-Id: I5ff2fea957c082f41da37936fe44948ad006f573
2012-11-22 19:34:32 +01:00
umherirrender
9b3292e31a Add MediaWikiTestCase::checkHasDiff3 and use it
Some tests can only passed, when diff3 is enabled on the wiki, when not
the tests should marked as skipped. To avoid code duplicates inside
the test folder for the check, if diff3 is enabled, the new function
MediaWikiTestCase::checkHasDiff3 can be used.

Change-Id: Ie765da49a4a1358da78a3506e38772d61bcd010c
2012-11-22 17:45:50 +01:00
daniel
be39c351d4 Clean up database cloning for tests.
This change makes the operation for overlaying the wiki database
with a structurally equivalent test database statically accessible,
and adds a function to revert that operation.

This is a precondition to logging profiling info to the database
after the test run has finished.

Change-Id: I2e8335d50eefcc7a97c1cd122b509f0939eacc92
2012-11-16 19:48:33 +01:00
Nikerabbit
a9e9c0e3ff Merge "Stash global only once per test case." 2012-10-29 12:15:37 +00:00
daniel
7385890cfe Stash global only once per test case.
Make sure we only stash a given global only once per test case since we
do not want to override the original value.

This allows the same test to modify the same global multiple times,
while still preserving the original value to be restored after the
test case finished.

Change-Id: I9056d6d6879fb976a192960f661904287f9760a8
2012-10-29 11:07:06 +01:00
Timo Tijhof
a4aef7d495 Fix warnings and enforce conventions in ContentHandler tests.
Syntax:
* Call parent setUp from setUp.
* Set required globals for the test inside the test class instead
  of assuming the default settings.
* Data providers are called statically and outside setUp/tearDown
  ("public static function")
* Test function names should be prefixed with "test"
  ("testIsRedirect")
* Marked 2 functions as unused. JavascriptContentTest has 2 data
  providers for tests that don't exist in it (nor in TextContentText)
  but do exist in WikitextContentTest.

Style:
* Single quotes
* Remove odd comment "# =====" lines
* Consistent tree wrapping with arrays.
  array(
      array(
          .. ) );
  array(
      array(
          ..
      )
  );
  Some were closing on the previous line instead.
  Made it consistent now.
* Remove odd indentation to make nested arrays line up:
  array( 'foo' => array(  'bar' => true,
                          'baz' => array() ) )
  array( 'foo' => array(
      'bar' => true,
      'baz' => array()
  ) )

  We don't do this kind of indentation because it is fragile
  and becomes outdates when any of the earlier keys ("foo")
  change. Converted to a regular tree instead.

  Also triggered git warnings for mixing spaces with tabs, which
  is almost always an detector for this style.

* Not using @annotations in inline comments, reserved (and only
  parsed/meaningful) for block comments.

Follows-up 8b568be5e2

Change-Id: Ic55d539b9a58f448b550bcd98894d389764e0694
2012-10-25 22:37:32 +02:00