X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=tests%2Fphpunit%2FMediaWikiIntegrationTestCase.php;h=8a188bff0c383a7dd24feea1c429d8b0487439e7;hp=ecd5c05b17006ed6918f6aebd2f0605a333c3658;hb=37090961265b05a5418960a13a902e9ac751a259;hpb=0e2241ad6c9fd1ac055ce1a829144a021dfdb79f diff --git a/tests/phpunit/MediaWikiIntegrationTestCase.php b/tests/phpunit/MediaWikiIntegrationTestCase.php index ecd5c05b17..8a188bff0c 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