aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>2019-09-20 12:05:18 +0000
committerGerrit Code Review <gerrit@wikimedia.org>2019-09-20 12:05:18 +0000
commita99171228d167224e376cf584739daf624ebaf71 (patch)
tree7fa52b9358cddc8fd6f8025aac1c8c21d0224ef4
parent77f4ba184762186431748c2cd95ec97d43cd1edc (diff)
parent37090961265b05a5418960a13a902e9ac751a259 (diff)
downloadmediawikicore-a99171228d167224e376cf584739daf624ebaf71.tar.gz
mediawikicore-a99171228d167224e376cf584739daf624ebaf71.zip
Merge "Refactor MediaWikiIntegrationTestCase::resetDB() for readability"
-rw-r--r--tests/phpunit/MediaWikiIntegrationTestCase.php44
1 files changed, 19 insertions, 25 deletions
diff --git a/tests/phpunit/MediaWikiIntegrationTestCase.php b/tests/phpunit/MediaWikiIntegrationTestCase.php
index 6120467fd5f8..27cbed593bdf 100644
--- a/tests/phpunit/MediaWikiIntegrationTestCase.php
+++ b/tests/phpunit/MediaWikiIntegrationTestCase.php
@@ -1821,27 +1821,30 @@ abstract class MediaWikiIntegrationTestCase extends PHPUnit\Framework\TestCase {
/**
* Empty all tables so they can be repopulated for tests
*
- * @param Database $db|null Database to reset
- * @param array $tablesUsed Tables to reset
+ * @param IDatabase $db|null Database to reset
+ * @param string[] $tablesUsed Tables to reset
*/
- private function resetDB( $db, $tablesUsed ) {
+ private function resetDB( IDatabase $db = null, array $tablesUsed ) {
if ( $db ) {
- $userTables = [ 'user', 'user_groups', 'user_properties', 'actor' ];
- $pageTables = [
- 'page', 'revision', 'ip_changes', 'revision_comment_temp', 'comment', 'archive',
- 'revision_actor_temp', 'slots', 'content', 'content_models', 'slot_roles',
- 'change_tag',
- ];
- $loggingTables = [
- 'logging', 'log_search', 'change_tag',
+ // some groups of tables are connected such that if any is used, all should be cleared
+ $extraTables = [
+ 'user' => [ 'user', 'user_groups', 'user_properties', 'actor' ],
+ 'page' => [ 'page', 'revision', 'ip_changes', 'revision_comment_temp', 'comment', 'archive',
+ 'revision_actor_temp', 'slots', 'content', 'content_models', 'slot_roles',
+ 'change_tag' ],
+ 'logging' => [ 'logging', 'log_search', 'change_tag' ],
];
- $coreDBDataTables = array_merge( $userTables, $pageTables );
+ $coreDBDataTables = array_merge( $extraTables['user'], $extraTables['page'] );
- // some groups of tables are connected such that if any is used, all should be cleared
- $extraTables = [];
- if ( array_intersect( $tablesUsed, $userTables ) ) {
- $extraTables[] = $userTables;
+ foreach ( $extraTables as $i => $group ) {
+ if ( !array_intersect( $tablesUsed, $group ) ) {
+ unset( $extraTables[$i] );
+ }
+ }
+ $extraTables = array_values( $extraTables );
+ $tablesUsed = array_unique( array_merge( $tablesUsed, ...$extraTables ) );
+ if ( in_array( 'user', $tablesUsed ) ) {
TestUserRegistry::clear();
// Reset $wgUser, which is probably 127.0.0.1, as its loaded data is probably not valid
@@ -1850,15 +1853,6 @@ abstract class MediaWikiIntegrationTestCase extends PHPUnit\Framework\TestCase {
global $wgUser;
$wgUser->clearInstanceCache( $wgUser->mFrom );
}
- if ( array_intersect( $tablesUsed, $pageTables ) ) {
- $extraTables[] = $pageTables;
- }
- if ( array_intersect( $tablesUsed, $loggingTables ) ) {
- $extraTables[] = $loggingTables;
- }
- if ( $extraTables !== [] ) {
- $tablesUsed = array_unique( array_merge( $tablesUsed, ...$extraTables ) );
- }
// Postgres uses mwuser/pagecontent
// instead of user/text. But Postgres does not remap the