wiki.techinc.nl/tests/phpunit
Kosta Harlan 9d3de690e0 Use anonymous user when creating named account from temp account
Why:

- Using an anonymous user object at the start of account creation helps
  ensure that downstream code paths do not record the association
  between a temporary account and a named account

What:

- Use an anonymous user object during account creation initiated by
  temp account users
- Update the session to use the anonymous user and set the request
  context user based on the session user
- Ensure the temp account username is removed from the session, to avoid
  issues where account creation fails and code thinks that a temporary
  account username is already defined for the session
- Add a test to exercise this code path

Bug: T393628
Change-Id: I6d2df8c1d842c4fefa916ed395479f479a0051eb
(cherry picked from commit 3d80e63f109834b90a83597d6d924895b2c6ae71)
2025-05-29 12:06:33 +00:00
..
data Merge "Add namespace to maintenance/includes classes" 2024-10-15 22:50:33 +00:00
docs Add namespace to maintenance/includes classes 2024-10-09 11:02:09 -04:00
includes Use anonymous user when creating named account from temp account 2025-05-29 12:06:33 +00:00
integration/includes REST: Remove unused setUseParserCache() as potential footgun 2025-04-05 11:35:48 +00:00
maintenance tests: Use namespaced classes 2024-10-21 18:53:02 +02:00
mocks AutoLoader: Use require_once rather than require 2024-10-24 01:36:18 +00:00
structure Add DumpableObjectsTest to the database test group 2024-11-08 14:37:40 +00:00
suites tests: Use namespaced classes 2024-10-21 18:53:02 +02:00
tests tests: Add missing documentation to class properties 2024-09-18 17:25:42 +00:00
unit tests: Fix casing of MediaWiki in @covers 2025-05-21 21:48:09 +00:00
bootstrap.common.php
bootstrap.integration.php
bootstrap.maintenance.php
bootstrap.php phpunit: Fix bootstrap script when no extensions are installed 2025-02-21 22:24:30 +00:00
DynamicPropertyTestHelper.php
getPHPUnitExtensionsAndSkins.php phpunit: Fix bootstrap script when no extensions are installed 2025-02-21 22:24:30 +00:00
HamcrestPHPUnitIntegration.php
JsonSchemaAssertionTrait.php REST: validate JSON in tests 2024-09-20 15:42:32 +00:00
MediaWikiCoversValidator.php
MediaWikiDeprecatedConfigPHPUnitExtension.php
MediaWikiGroupValidator.php
MediaWikiIntegrationTestCase.php title: Reset cached Title objects between tests 2025-05-27 12:35:10 +00:00
MediaWikiLangTestCase.php
MediaWikiLoggerPHPUnitExtension.php
MediaWikiPHPUnitResultPrinter.php
MediaWikiTeardownPHPUnitExtension.php
MediaWikiTestCaseTrait.php Use explicit nullable type on parameter arguments 2024-10-16 20:58:33 +02:00
MediaWikiUnitTestCase.php tests: Add missing documentation to class properties 2024-09-18 17:25:42 +00:00
MWTestDox.php
phpunit.php phpunit: Don't override --bootstrap if supplied 2025-01-13 15:14:27 +00:00
README.md
ResourceLoaderTestCase.php Use explicit nullable type on parameter arguments 2024-10-16 20:58:33 +02:00
suite.xml
TestSelectQueryBuilder.php Expand tests for rename user maintenance scripts 2024-10-08 21:51:59 +01:00

MediaWiki PHPUnit tests

WARNING: Integration tests may be destructive and alter or remove parts of your local database. We try to use temporary tables where possible, but you must never run tests on a production server or on a wiki where you don't want to lose data.

Running tests

If you haven't already, run composer update (specifically without --no-dev) in the MediaWiki core directory. This will install PHPUnit.

To read about how to run specific tests, refer to:

https://www.mediawiki.org/wiki/Manual:PHP_unit_testing/Running_the_tests

Writing tests

A guide to writing PHPUnit tests for MediaWiki can be found at:

https://www.mediawiki.org/wiki/Manual:PHP_unit_testing