Commit graph

231 commits

Author SHA1 Message Date
Reedy
0285cf5c8f Benchmark: Force string representation of arguments
Output becomes:
`MediaWiki\Extension\TrustedXFF\TrustedXFF::onIsTrustedProxy('107.167.115.215', false)`

Rather than:

`MediaWiki\Extension\TrustedXFF\TrustedXFF::onIsTrustedProxy('107.167.115.215', )`

Change-Id: Id0139283ab15f0060c61425d89f76fed309855e2
2022-03-11 23:14:36 +00:00
Tim Starling
1bfa449f8e In BackupDumperPageTest, don't overwrite self::$dbClone
BackupDumperPageTest called MediaWikiIntegrationTestCase::
setupDatabaseWithTestPrefix() on a new private connection, overwriting
self::$dbClone. This can cause a fatal error on shutdown due to
self::$dbClone->destroy() being called after connection close. Hopefully
it also fixes the CI failure observed at I200f90e413b8a725828745f81925b.

Also, the method was documented as returning bool, but in fact it always
returned true.

So, move the responsibility for setting self::$dbClone to the only
caller where that makes sense. Have BackupDumperPageTest call
CloneDatabase::destroy() during test teardown.

Change-Id: I2a4cefe6207c02cc12b906d66f6016440e16b249
2022-03-09 15:49:28 +11:00
Timo Tijhof
128debb64b tests: Change use of AtEase to at operator
Follows-up I361fde0de7f4406bce6ed075ed397effa5be3359.

Per T253461, not mass-changing source code, but the use of the native
error silencing operator (@) is especially useful in tests because:

1. It requires any/all statements to be explicitly marked. The
   suppressWarnings/restoreWarnings sections encourage developers to
   be "lazy" and thus encapsulate more than needed if there are multiple
   ones near each other, which would ignore potentially important
   warnings in a test case, which is generally exactly the time when
   it is really useful to get warnings etc.

2. It avoids leaking state, for example in LBFactoryTest the
   assertFalse call would throw a PHPUnit assertion error (not meant
   to be caught by the local catch), and thus won't reach
   AtEase::restoreWarnings. This then causes later code to end up
   in a mismatching state and creates a confusing error_reporting
   state.

See .phpcs.xml, where the at operator is allowed for all test code.

Change-Id: I68d1725d685e0a7586468bc9de6dc29ceea31b8a
2022-02-24 21:29:51 +00:00
Reedy
12aae45101 tests: Replace some usages of Wikimedia\(suppress|restore)Warnings()
Change-Id: I361fde0de7f4406bce6ed075ed397effa5be3359
2022-02-24 12:55:25 +00:00
Timo Tijhof
8d406bbcd6 phpcs: Disable Generic.Files.LineLength for test files
There is a common and reasonable need for longer lines in tests.
The nudge for shorter lines doesn't seem valuable here. The natural
breaks will likely still fall in 80-100 given the enforced practice
for non-test code, e.g. whether through habit, or 80-100 column markers
in text editors, or the finite width of diff and code review
interfaces.

Change-Id: I879479e13551789a67624ce66f0946d2f185e6ee
2022-02-18 18:32:05 +00:00
jenkins-bot
fd84c0f087 Merge "tests: Replace usages of deprecated WikiPage::doDeleteArticleReal" 2022-01-27 19:32:06 +00:00
Umherirrender
9dab0e0c1e Explicit order by primary key in DeleteAutoPatrolLogs maintenance script
While most rdbms working with this implicit order,
postgres can fail sometimes

Bug: T195807
Change-Id: I562a9324d846d8ca3c38914e1704d204db3172f4
2022-01-22 12:40:00 +01:00
Daimona Eaytoy
2688c59606 tests: Replace usages of deprecated WikiPage::doDeleteArticleReal
Add a new helper to MediaWikiIntegrationTestCase, since deleting pages
seems to be pretty common in tests.

Some calls to WikiPage::factory were also updated to use WikiPageFactory.

Change-Id: I5b5100273a00ac292a1900022ca79708fa254347
2022-01-17 15:38:02 +00:00
Umherirrender
d6c5203653 tests: Use ::class in assertInstanceOf function
Change-Id: I1b498c88c702c131553c8948bcec5730ec0dcb35
2022-01-16 21:17:09 +01:00
Reedy
6e29611642 Remove or replace usages of "sanity"
Still some more to go...

Bug: T254646
Change-Id: Ia117f01e443c35b4765f3275cab4f2707e1be96f
2021-11-21 16:42:31 +00:00
Umherirrender
bac7f31b0e tests: Call parent tearDown at end of teardown in BackupDumperPageTest
Reverse order to setUp, where parent is called first

Change-Id: Ia04952b9dc3bc2c7426b66f556defacb5750240c
2021-10-20 23:20:12 +02:00
Samuel Guebo
a8db81dc71 Add script to delete a user email's address
Can be used for a variety of operations
including preservation of users privacy.

Bug: T290099
Change-Id: Iad75810310c95e96b5f8998b201ed04ace5af656
2021-09-27 18:02:11 +00:00
libraryupgrader
5357695270 build: Updating dependencies
composer:
* mediawiki/mediawiki-codesniffer: 36.0.0 → 37.0.0
  The following sniffs now pass and were enabled:
  * Generic.ControlStructures.InlineControlStructure
  * MediaWiki.PHPUnit.AssertCount.NotUsed

npm:
* svgo: 2.3.0 → 2.3.1
  * https://npmjs.com/advisories/1754 (CVE-2021-33587)

Change-Id: I2a9bbee2fecbf7259876d335f565ece4b3622426
2021-07-22 03:36:05 +00:00
jenkins-bot
6eb8c5a6da Merge "Use IEC prefixes instead of SI prefixes for byte sizes (docs+backend)" 2021-06-29 10:34:41 +00:00
Fomafix
356f1b72ef Use IEC prefixes instead of SI prefixes for byte sizes (docs+backend)
This change doesn't change any UI messages.

Bug: T54687
Change-Id: Ia62899a2a6fe8910618c35cd667291e397ddb055
2021-06-28 11:59:09 +01:00
DannyS712
b45ddb2ab3 Use WikiPage::doUserEditContent() instead of ::doEditContent()
Results in passing a user where previously the fallback
to $wgUser was being used, mostly in tests.

Bug: T255507
Change-Id: Iabe24315b23c0ad1272353186425e71974528d23
2021-06-28 00:11:30 -07:00
jenkins-bot
5127fe1b43 Merge "Add MediaWikiIntegrationTestCase::runJobs() and use it" 2021-05-05 03:15:17 +00:00
Tim Starling
0e05879d7e Add MediaWikiIntegrationTestCase::runJobs() and use it
JobRunner catches all exceptions and hides them in the status array,
meaning that it is not obvious when a job fails during a test case.
So, introduce MediaWikiIntegrationTestCase::runJobs(), which runs jobs
and asserts various things about the returned status array.

Depends-On: I4f4790c5d16a0767790eeff202e0be8fcdaeda93
Depends-On: I118f9e3f8950fd82d7b02baed6705b29fd6ab7d5
Change-Id: I63603aa158f77df4b40add096cb248f3b24979f4
2021-05-05 02:51:30 +00:00
James D. Forrester
df5eb22f83 Replace uses of DB_MASTER with DB_PRIMARY
Just an auto-replace from codesniffer for now.

Change-Id: I5240dc9ac5929d291b0ef1c743ea2bfd3f428266
2021-04-29 09:24:31 -07:00
Thiemo Kreuz
b95a07380a Remove meaningless ->expects( $this->any() ) from all tests
It is not entirely meaningless. It might be an indicator that
the number of calls to a method is intentionally unlimited.
This is similar to e.g. an @inheritDoc PHPDoc comment that
marks a method as being "intentionally undocumented".

However, what's the meaning of being "intentionally
unconstrained"? Let's just not have any constraint then.

I feel all these ->expects( $this->any() ) bloat the test
code so much that it's never worth it.

Change-Id: I9925e7706bd03e1666f6eb0b284cb42b0dd3be23
2021-04-23 11:58:58 +02:00
Daimona Eaytoy
535d7abf59 phpunit: Mass-replace setMethods with onlyMethods and adjust
Ended up using
  grep -Prl '\->setMethods\(' . | xargs sed -r -i 's/setMethods\(/onlyMethods\(/g'

special-casing setMethods( null ) -> onlyMethods( [] )

and then manual fix of failing test (from PS2 onwards).

Bug: T278010
Change-Id: I012dca7ae774bb430c1c44d50991ba0b633353f1
2021-04-16 20:15:00 +02:00
DannyS712
292557ed42 Move MWDoxygenFilterTest to unit tests
Extends PHPUnit\Framework\TestCase
and does not require any integration logic

Start new /tests/phpunit/unit/maintenance/
directory

Change-Id: I126dba699e829544a571bf795de6536a0ed9b977
2021-03-28 18:33:51 +00:00
Ed Sanders
070f94de80 Maintenance: Don't modify mOptions in getOption
This makes hasOption stable and usable even after getOption.

Also getOption can now be called twice with different defaults.

Strictly speaking this is a breaking change, but the actual
behaviour is now closer to the expected/documented behaviour.

Bug: T275619
Change-Id: I65e32a7e1bc253f4b29378be6980c42e43f93032
2021-02-25 15:42:05 +00:00
Umherirrender
a1de8b8700 Tests: Mark more more closures as static
Result of a new sniff I25a17fb22b6b669e817317a0f45051ae9c608208

Bug: T274036
Change-Id: I695873737167a75f0d94901fa40383a33984ca55
2021-02-09 02:55:57 +00:00
Reedy
729f20afc8 Tests: Mark more closures as static
Bug: T274036
Change-Id: I911d3041cebe417d162934223b46ea295c6d20e3
2021-02-07 13:26:56 +01:00
Umherirrender
62002cdcf1 build: Update mediawiki/mediawiki-codesniffer to 35.0.0
Change-Id: Idb413be4b8cba8611afdc022af59810ce1a4531e
2021-01-31 13:34:38 +00:00
Thiemo Kreuz
ac205fa84c Fix incomplete/bogus PHPDoc tags in various tests
Most of these are found by the not yet released I10559d8.

I remove the type MockObject in some cases when the calling
code really does not need to know if he get's a mock or the
real thing. However, I do this only in places that are very
closely related to the fixes.

Change-Id: I26a4c3c5a8ae141bf56161b52b54bce7e68f2e30
2021-01-14 19:02:00 +00:00
DannyS712
3fcb2ec73f DumpTestCase - stop writing to $wgUser
Shouldn't be needed anymore

Bug: T243708
Change-Id: If3c934c2146927a5564a75fa48c5d213cfe40722
2020-12-14 22:19:42 +00:00
jenkins-bot
f49e8f4f56 Merge "Clean up temp files correctly after unit tests" 2020-12-12 10:33:19 +00:00
Umherirrender
4a802e39fc Split MaintenanceTest::testParseArgs and fix docs
No need to create own instance in this test
Isolate the tests and setup/teardown handles all

Change-Id: Ifd3684065fa8023a2dbd28391573f8744865ecfd
2020-11-24 19:05:40 +00:00
Umherirrender
49efbfe2fb Improve documentation about object to be stdClass or specific type
Some classes still needs exclude for the sniff

Change-Id: I9536c2ee84f6fb4c83cf862a152cf6b00344cb97
2020-11-20 14:47:56 +00:00
Tim Starling
b914562342 categoryChangesAsRdfTest: Avoid RC purge which randomly breaks the test
Call JobRunner::run() with only the job type needed to make the test
work. Otherwise random RC purges cause the test to break.

Bug: T266850
Change-Id: I7499bc8ab4fb7ca2085e2f7e0a691b919a9ca5c2
2020-11-09 12:24:31 +11:00
Umherirrender
21536f9af0 Clean up temp files correctly after unit tests
Change-Id: Iba4e45d8c41d678d4ec2de442c105e03cf8d87e1
2020-10-31 01:07:52 +01:00
jenkins-bot
831fcaf0da Merge "Use ::class together with createMock in unit tests" 2020-10-30 17:56:24 +00:00
DannyS712
8ca61520cb CategoryChangesAsRdfTest: Skip testCategorization
Broken test preventing merges

Bug: T266850
Change-Id: If100390340865449c696e4e5acba387086c087ad
2020-10-30 15:48:44 +00:00
Umherirrender
5d41326891 Use ::class together with createMock in unit tests
This makes it easier for IDEs to find usage
This works even for non-existing classes

Change-Id: I4a6389a9bc0b3c212633841d69bd4f48a7ed6f56
2020-10-30 14:45:37 +01:00
David Causse
6cbe99618e categoryChangesAsRdf: Add test for categorization
The test is bit slow as it has to propagate the categorisation
changes through several jobs. Users have suffered multiple regressions
on this script that it might be worth the additional cost.

Change-Id: I666d0039cfe4ba4e2a17210e8070f836767598a1
2020-07-31 12:14:11 +02:00
addshore
959bc315f2 MediaWikiTestCase to MediaWikiIntegrationTestCase
The name change happened some time ago, and I think its
about time to start using the name name!
(Done with a find and replace)

My personal motivation for doing this is that I have started
trying out vscode as an IDE for mediawiki development, and
right now it doesn't appear to handle php aliases very well
or at all.

Change-Id: I412235d91ae26e4c1c6a62e0dbb7e7cf3c5ed4a6
2020-06-30 17:02:22 +01:00
DannyS712
94169ee873 Whitespace cleanup: Use tabs for indentation, avoid double spaces
Change-Id: I346073b59d283029bd6666356c62c81e687ea5e6
2020-06-27 07:53:07 +00:00
Thiemo Kreuz
5f3a92385b Fix visibility of setUp/tearDown
Change-Id: I636be48eb9f713680abac35d46091f7b49374696
2020-06-16 21:02:05 +02:00
Daimona Eaytoy
2b37cfaf18 build: Bump mediawiki-codesniffer to 31.0.0
Done with `composer fix` and suppressing the rest (i.e. sniffs for
global variables, which for core should be suppressed anyway).

Additionally, add `-p` to `phpcbf`, as otherwise it just seems stuck.

Change-Id: Ide8d6cdd083655891b6d654e78440fbda81ab2bc
2020-05-30 14:56:28 +00:00
DannyS712
e37b65109d PageDumpTestDataTrait: Pass a user to WikiPage::doDeleteArticleReal
Not passing a user was hard deprecated, but this call wasn't fixed

Bug: T247869
Change-Id: I5783c1600ad83c6df836ad0281ec4b5ee025dbb8
2020-04-16 17:03:54 +00:00
daniel
5a58e4421c Make dump tests based on fixture files.
This adds test coverage for dumping non-main slots.

NOTE: This invents a syntax for XML file "templates" that are
expected to "match" the actual output file.

Bug: T240213
Change-Id: I05e46175809c4562f3530377fe37db911bee244a
2020-04-06 15:21:00 -07:00
DannyS712
cf2c2a0778 Tests: Replace ::doDeleteArticle with WikiPage::doDeleteArticleReal
Not including WikiPageDbTestBase, which is testing the method

Bug: T248000
Change-Id: I1848a79be9e25759654053e88ef956269342f588
2020-03-25 11:34:17 -07:00
daniel
495323c063 Remove compat code for pre-MCR schema.
NOTE: This was manually tested to ensure it does not
break updates, see T242764.

Bug: T198557
Change-Id: I1d9f5465018bae10124514bc38169e23e0e613e6
2020-03-24 19:45:47 +01:00
daniel
0e7f818d4a TextPassDumper: implement prefetch for non-main slots.
This updates BaseDump to support scanning for <text> tags nested in
<content> tags. Without this feature, the prefetch logic will fail for
all slots other than the main slot.

Bug: T246074
Change-Id: I73edd67135cbd3150a4d87448b0c9dd43cf1a2fd
2020-03-24 16:50:46 +01:00
Thiemo Kreuz
7a4df9b019 Remove auto-generated and empty lines in comments
… and add the missing newline after the initial <?php.

Change-Id: I83bbbb1504e4b2bd97eec63c7626d34c655c3197
2020-03-17 09:55:24 +01:00
Thiemo Kreuz
e1dd371e11 Make use of PHPUnit's assertCount feature where possible
… and avoid assertEmpty() on arrays, in favor of a much more strict
assertSame( [] ).

Change-Id: I20266b0b1fc38a3a87666ba1b0793cb2b37d94a9
2020-03-02 15:58:41 +00:00
jenkins-bot
e799b64254 Merge "Fix TextPassDumperDatabaseTest to work with 0.11 schema" 2020-02-03 19:50:18 +00:00
James D. Forrester
4f2d1efdda Coding style: Auto-fix MediaWiki.Classes.UnsortedUseStatements.UnsortedUse
Change-Id: I94a0ae83c65e8ee419bbd1ae1e86ab21ed4d8210
2020-01-10 09:32:25 -08:00