Commit graph

156 commits

Author SHA1 Message Date
Vivek Ghaisas
c54766586a Fix issues identified by SpaceBeforeSingleLineComment sniff
Change-Id: I048ccb1fa260e4b7152ca5f09b053defdd72d8f9
2015-09-26 23:06:52 +00:00
Amir E. Aharoni
f1efaf92e2 MediaWikiTestCase.php: Make lines shorter to make phpcs happier
Change-Id: I92ef73509e09c34f8b44a576e113a94f713b7d0d
2015-09-26 14:31:54 +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
jenkins-bot
58410c60d5 Merge "phpunit: Replace APC with HashBagOStuff during a test" 2015-09-25 00:32:55 +00:00
umherirrender
271da88127 Some bugzilla.wikimedia.org -> phabricator.wikimedia.org changes
Changed some old bugzilla links to new phabricator links in comments,
test data and error message. This reduces the need for redirects from
old bugzilla to new phabricator from our source code.

Change-Id: Id98278e26ce31656295a23f3cadb536859c4caa5
2015-09-24 17:17:25 +02:00
Timo Tijhof
0d9a48a4c3 phpunit: Replace APC with HashBagOStuff during a test
* Ensures values don't survive the unit test run.
* Ensures a clean state for each test.

Change-Id: I94e1ac14096fb4c4071fe9960d9465e60f27a89d
2015-09-24 13:24:53 +01:00
Tim Starling
2c6c954e23 Abstract and refactor Tidy support
* Split tidy implementations into a class hierarchy
* Bring all tidy configuration into a single associative array and
  deprecate the old configuration.
* Remove $wgAlwaysUseTidy

This is preparatory to replacement of Tidy (T89331). I used the name
"Raggett" for things relating to Dave Raggett's Tidy, since if we use
"tidy" to mean the new abstract system as well as Raggett's tidy, it
gets confusing.

Change-Id: I77af1a16cbbb47fc226d05fb9aad56c58e8910b5
2015-09-10 20:18:52 -07:00
Brad Jorsch
4379362154 Fix so wfResetOutputBuffers doesn't break unit tests
If something being unit tested calls wfResetOutputBuffers(), it'll break
PHPUnit's attempt to capture output in order to fail tests. In the old
version we're currently using for Jenkins it will throw a warning
"ob_end_clean(): failed to delete buffer. No buffer to delete", while in
newer versions it'll detect that its buffer was removed and fail the
test as risky instead.

The solution here is to have MediaWikiTestCase add a buffer with a known
name in setUp() (and remove it in tearDown()), and have
wfResetOutputBuffers() stop when it sees that known name on the stack.

Bug: T109843
Change-Id: I8acd91ec9dd9c6d78a5d91d96202249f571d5d83
2015-08-21 12:24:07 -04:00
Aaron Schulz
c2e45cdde1 Made DB ignoreErrors() method protected
* This should *only* ever be used internal for error suppression,
  such as in the exception reporting methods. Having it public
  means callers have to worry (in theory) about whether the
  DB handles errors one way or a totally different way even
  though there is really only meant to be one.

Change-Id: I5916830d1bd53ee948308f394e55c17dd515ad33
2015-07-21 14:18:04 -07:00
Kunal Mehta
f6e5079a69 Use mediawiki/at-ease library for suppressing warnings
wfSuppressWarnings() and wfRestoreWarnings() were split out into a
separate library. All usages in core were replaced with the new
functions, and the wf* global functions are marked as deprecated.

Additionally, some uses of @ were replaced due to composer's autoloader
being loaded even earlier.

Ie1234f8c12693408de9b94bf6f84480a90bd4f8e adds the library to
mediawiki/vendor.

Bug: T100923
Change-Id: I5c35079a0a656180852be0ae6b1262d40f6534c4
2015-06-11 18:49:29 +00:00
Max Semenik
08762b02de Minor cleanups
* Declare undeclared variables
* Kill unused variables
* Fix comments including PHPDoc

Change-Id: I60015f6b6740aa9088bda3745f4dc4e65e29fcb1
2015-04-02 16:22:42 +00:00
Timo Tijhof
3ba8243cd6 MediaWikiTestCase: Consistently use UTSysop user in setup/teardown
Change-Id: I42d108ca11246725d936e505508b73a9ae7553c6
2015-03-25 18:56:14 +00: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
Chad Horohoe
4a6acde115 Remove last profiling data from unit tests
Change-Id: I66255ef5364f4eebafadbed663e0945e13f31969
2015-02-10 13:15:17 -08:00
Chad Horohoe
950368c7e8 Remove phpunit profiling. It doesn't make any sense
Change-Id: I7aa98ddc0a80f931a685e2946e61aa4a7dfdabff
2015-02-10 18:50:52 +00:00
Chad Horohoe
aa21e125a3 Remove obvious function-level profiling
Xhprof generates this data now. Custom profiling of various
sub-function units are kept.

Calls to profiler represented about 3% of page execution
time on Special:BlankPage (1.5% in/out); after this change
it's down to about 0.98% of page execution time.

Change-Id: Id9a1dc9d8f80bbd52e42226b724a1e1213d07af7
2015-01-07 11:14:24 -08:00
Ricordisamoa
fc5fd5c37a Typo fixes and non-code tweaks
Skipped replacements:
* prefered → preferred
* prolly → probably

Skipped files:
* resources/lib/jquery.ui/jquery.ui.mouse.js
* resources/lib/jquery/jquery.form.js

Change-Id: Ib7923f362ddfca1b892bf5d601785d6b5aa5d44c
2014-12-12 18:31:15 +00:00
Nik Everett
2ec9915816 Handle redirects during prefix search exact match
Prefix search attempts to find exact matches to the user's query that aren't
returned by plugins.  In some cases, like when the exact match is a redirect
and the target of the redirect is also in the search results, it would result
in multiple results in prefix search going the same place.  This looks really
silly when the top hit is "Barack obama" (a redirect) and the next one is
"Barack Obama" (the target of the redirect).

This handles a bunch of cases to do with redirects in the matches and when
the exact match is a redirect.

Bug: 736731
Change-Id: I49fe1ccec84bd5d1f44c6b91b260abf50f2cc3a1
2014-11-21 14:47:32 -05:00
MZMcBride
627ccbcd7b Minor code comment tweaks for spelling and consistency
Change-Id: I51391f45d0f81e4245ccc0e435a71ccd5b0e3ca3
2014-11-08 14:07:19 -05:00
Erik Bernhardson
49cfcf3715 Clear DeferredUpdates state via setUp()
Best practices for phpunit say 'more setUp, less tearDown' which typically means
that tests are not responsible for cleaning up after themselves, rather tests
are in charge of setting the world up exactly as they expect it.  Part of this
expectation is that mediawiki does not maintain state between tests.

This patch clears DeferredUpdates from MediaWikiTestCase::setUp() because it has
internal global state.  This prevents state from leaking between test cases.

Bug: 72922
Change-Id: I57e6e89aa51c78bbf9d7f5151122b9e267d1a03e
2014-11-03 13:43:53 -08:00
jenkins-bot
cf93d76c03 Merge "Remove hitcounters and associated code" 2014-10-20 21:12:54 +00:00
Chad Horohoe
90d90dad6e Remove hitcounters and associated code
The hitcounter implementation in MediaWiki is flawed
and needs removal. For proper metrics, it is suggested to use
something like Piwik or Google Analytics.

RFC: https://www.mediawiki.org/wiki/Requests_for_comment/Removing_hit_counters_from_MediaWiki_core
Change-Id: I0e5006a7e8a09c800f8fa4effa9399e8afdd7a57
2014-10-20 13:01:55 -07:00
Marius Hoch
23ec64745c Also provide assertNotTag in MediaWikiTestCase
And mark that and assertTag as deprecated to avoid
new usages.

Bug: 69505
Change-Id: Ibfe78fd1914adfb08b29f61c59c43899bd8840d2
2014-10-17 20:14:35 +02:00
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