From: jenkins-bot Date: Fri, 20 Sep 2019 12:05:18 +0000 (+0000) Subject: Merge "Refactor MediaWikiIntegrationTestCase::resetDB() for readability" X-Git-Tag: 1.34.0-rc.0~139 X-Git-Url: http://git.cyclocoop.org/%7B%24admin_url%7Dmembres/cotisations/gestion/rappel_supprimer.php?a=commitdiff_plain;h=a99171228d167224e376cf584739daf624ebaf71;hp=77f4ba184762186431748c2cd95ec97d43cd1edc;p=lhc%2Fweb%2Fwiklou.git Merge "Refactor MediaWikiIntegrationTestCase::resetDB() for readability" --- diff --git a/tests/phpunit/MediaWikiIntegrationTestCase.php b/tests/phpunit/MediaWikiIntegrationTestCase.php index 6120467fd5..27cbed593b 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