The one caller of LBFactory::getChronologyProtectorTouched() was calling it with a domain ID instead of a master server name. Using the master server name to identify replication position makes sense for ChronologyProtector, since the replication position may be reset when the master changes, but it is an odd convention for LBFactory. So: * Rename all $dbName variables in ChronologyProtector to $masterName, for clarity. * Interpret the first parameter to ILBFactory::getChronologyProtectorTouched() as a database domain, to make its only existing caller work. * Change the first parameter to ChronologyProtector::getTouched() from a string to a strongly typed ILoadBalancer, by analogy with applySessionReplicationPosition(). This removes the master name concept from the public interface. * Mark ChronologyProtector @internal. The accessor in LBFactory is protected, so extensions can't use it anyway. This is just to clarify why I think changing the parameter to getTouched() without b/c is OK. * Add a simple test which mostly just checks that ChronologyProtector gets called with the correct parameters. It's an LBFactory/ChronologyProtector integration test. Change-Id: I3b4832b5a4d7410e94b9c51577b30b31d49bc63d |
||
|---|---|---|
| .. | ||
| data | ||
| docs | ||
| documentation | ||
| includes | ||
| integration/includes | ||
| languages | ||
| maintenance | ||
| mocks | ||
| skins | ||
| structure | ||
| suites | ||
| tests | ||
| unit | ||
| bootstrap.maintenance.php | ||
| bootstrap.php | ||
| HamcrestPHPUnitIntegration.php | ||
| LessFileCompilationTest.php | ||
| Makefile | ||
| MediaWikiCliOptions.php | ||
| MediaWikiCoversValidator.php | ||
| MediaWikiGroupValidator.php | ||
| MediaWikiIntegrationTestCase.php | ||
| MediaWikiLangTestCase.php | ||
| MediaWikiLoggerPHPUnitTestListener.php | ||
| MediaWikiPHPUnitCommand.php | ||
| MediaWikiPHPUnitResultPrinter.php | ||
| MediaWikiPHPUnitTestListener.php | ||
| MediaWikiTestCaseTrait.php | ||
| MediaWikiUnitTestCase.php | ||
| phpunit.php | ||
| PHPUnit4And6Compat.php | ||
| PHPUnit6And8Compat.php | ||
| README | ||
| ResourceLoaderTestCase.php | ||
| run-tests.bat | ||
| suite.xml | ||
== MediaWiki PHPUnit Tests == The unit and integration tests for MediaWiki are implemented using the PHPUnit testing framework and require PHPUnit to run. === WARNING === Some of the integration tests are DESTRUCTIVE and WILL ALTER YOUR WIKI'S CONTENTS. DO NOT RUN THESE TESTS ON A PRODUCTION SYSTEM OR ON ANY SYSTEM WHERE YOU NEED TO RETAIN YOUR DATA. == Installation == If you used composer to install MediaWiki's dependencies PHPUnit will already be available, unless you explicitly specified the --no-dev flag during the install. In this case just run "composer update". Otherwise follow the installation instructions in the PHPUnit Manual at: https://phpunit.de/manual/current/en/installation.html == Running tests == The tests are run from your operating system's command line. Ensure that you are in the tests/phpunit directory of your MediaWiki installation. On Unix-like operating systems, the tests runs are controlled with a makefile. Run command: make help for a full list of options for running tests. On Windows-family operating systems, run the 'run-tests.bat' batch file. === Writing tests === A guide to writing PHP unit tests for MediaWiki can be found at: https://www.mediawiki.org/wiki/Manual:PHP_unit_testing