X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2FRevision%2FRevisionQueryInfoTest.php;h=4a0d9becb53746730f2e6f9e8e69c1a89003741d;hp=949b664e29cb64479d21a149e0048afe6c7a199d;hb=70987ee4c08d0c19468f67d7482d5bd150a0ad39;hpb=48c448a94dd6d0555a3173ed60e19bd01e34a644 diff --git a/tests/phpunit/includes/Revision/RevisionQueryInfoTest.php b/tests/phpunit/includes/Revision/RevisionQueryInfoTest.php index 949b664e29..4a0d9becb5 100644 --- a/tests/phpunit/includes/Revision/RevisionQueryInfoTest.php +++ b/tests/phpunit/includes/Revision/RevisionQueryInfoTest.php @@ -172,29 +172,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { ], ] ]; - yield 'pre-MCR, no model' => [ - [ - 'wgContentHandlerUseDB' => false, - 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - ], - [ - 'tables' => [ - 'archive', - 'actor_ar_user' => 'actor', - 'comment_ar_comment' => 'comment', - ], - 'fields' => array_merge( - $this->getArchiveQueryFields( true ), - $this->getNewActorQueryFields( 'ar' ), - $this->getNewCommentQueryFields( 'ar' ) - ), - 'joins' => [ - 'comment_ar_comment' - => [ 'JOIN', 'comment_ar_comment.comment_id = ar_comment_id' ], - 'actor_ar_user' => [ 'JOIN', 'actor_ar_user.actor_id = ar_actor' ], - ], - ] - ]; } public function provideQueryInfo() { @@ -397,238 +374,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { ], ] ]; - yield 'pre-MCR' => [ - [ - 'wgContentHandlerUseDB' => true, - 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - ], - [], - [ - 'tables' => [ - 'revision', - 'temp_rev_comment' => 'revision_comment_temp', - 'comment_rev_comment' => 'comment', - 'temp_rev_user' => 'revision_actor_temp', - 'actor_rev_user' => 'actor', - ], - 'fields' => array_merge( - $this->getRevisionQueryFields( true ), - $this->getContentHandlerQueryFields( 'rev' ), - $this->getNewActorQueryFields( 'rev', true ), - $this->getNewCommentQueryFields( 'rev' ) - ), - 'joins' => [ - 'temp_rev_comment' => [ 'JOIN', 'temp_rev_comment.revcomment_rev = rev_id' ], - 'comment_rev_comment' - => [ 'JOIN', 'comment_rev_comment.comment_id = temp_rev_comment.revcomment_comment_id' ], - 'temp_rev_user' => [ 'JOIN', 'temp_rev_user.revactor_rev = rev_id' ], - 'actor_rev_user' => [ 'JOIN', 'actor_rev_user.actor_id = temp_rev_user.revactor_actor' ], - ], - ] - ]; - yield 'pre-MCR, page, user' => [ - [ - 'wgContentHandlerUseDB' => true, - 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - ], - [ 'page', 'user' ], - [ - 'tables' => [ - 'revision', 'page', 'user', - 'temp_rev_comment' => 'revision_comment_temp', - 'comment_rev_comment' => 'comment', - 'temp_rev_user' => 'revision_actor_temp', - 'actor_rev_user' => 'actor', - ], - 'fields' => array_merge( - $this->getRevisionQueryFields( true ), - $this->getContentHandlerQueryFields( 'rev' ), - $this->getPageQueryFields(), - $this->getUserQueryFields(), - $this->getNewActorQueryFields( 'rev', true ), - $this->getNewCommentQueryFields( 'rev' ) - ), - 'joins' => [ - 'page' => [ 'JOIN', [ 'page_id = rev_page' ] ], - 'user' => [ 'LEFT JOIN', [ - 'actor_rev_user.actor_user != 0', - 'user_id = actor_rev_user.actor_user', - ] ], - 'temp_rev_comment' => [ 'JOIN', 'temp_rev_comment.revcomment_rev = rev_id' ], - 'comment_rev_comment' - => [ 'JOIN', 'comment_rev_comment.comment_id = temp_rev_comment.revcomment_comment_id' ], - 'temp_rev_user' => [ 'JOIN', 'temp_rev_user.revactor_rev = rev_id' ], - 'actor_rev_user' => [ 'JOIN', 'actor_rev_user.actor_id = temp_rev_user.revactor_actor' ], - ], - ] - ]; - yield 'pre-MCR, no model' => [ - [ - 'wgContentHandlerUseDB' => false, - 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - ], - [], - [ - 'tables' => [ - 'revision', - 'temp_rev_comment' => 'revision_comment_temp', - 'comment_rev_comment' => 'comment', - 'temp_rev_user' => 'revision_actor_temp', - 'actor_rev_user' => 'actor', - ], - 'fields' => array_merge( - $this->getRevisionQueryFields( true ), - $this->getNewActorQueryFields( 'rev', true ), - $this->getNewCommentQueryFields( 'rev' ) - ), - 'joins' => [ - 'temp_rev_comment' => [ 'JOIN', 'temp_rev_comment.revcomment_rev = rev_id' ], - 'comment_rev_comment' - => [ 'JOIN', 'comment_rev_comment.comment_id = temp_rev_comment.revcomment_comment_id' ], - 'temp_rev_user' => [ 'JOIN', 'temp_rev_user.revactor_rev = rev_id' ], - 'actor_rev_user' => [ 'JOIN', 'actor_rev_user.actor_id = temp_rev_user.revactor_actor' ], - ], - ], - ]; - yield 'pre-MCR, no model, page' => [ - [ - 'wgContentHandlerUseDB' => false, - 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - ], - [ 'page' ], - [ - 'tables' => [ - 'revision', 'page', - 'temp_rev_comment' => 'revision_comment_temp', - 'comment_rev_comment' => 'comment', - 'temp_rev_user' => 'revision_actor_temp', - 'actor_rev_user' => 'actor', - ], - 'fields' => array_merge( - $this->getRevisionQueryFields( true ), - $this->getPageQueryFields(), - $this->getNewActorQueryFields( 'rev', true ), - $this->getNewCommentQueryFields( 'rev' ) - ), - 'joins' => [ - 'page' => [ 'JOIN', [ 'page_id = rev_page' ], ], - 'temp_rev_comment' => [ 'JOIN', 'temp_rev_comment.revcomment_rev = rev_id' ], - 'comment_rev_comment' - => [ 'JOIN', 'comment_rev_comment.comment_id = temp_rev_comment.revcomment_comment_id' ], - 'temp_rev_user' => [ 'JOIN', 'temp_rev_user.revactor_rev = rev_id' ], - 'actor_rev_user' => [ 'JOIN', 'actor_rev_user.actor_id = temp_rev_user.revactor_actor' ], - ], - ], - ]; - yield 'pre-MCR, no model, user' => [ - [ - 'wgContentHandlerUseDB' => false, - 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - ], - [ 'user' ], - [ - 'tables' => [ - 'revision', 'user', - 'temp_rev_comment' => 'revision_comment_temp', - 'comment_rev_comment' => 'comment', - 'temp_rev_user' => 'revision_actor_temp', - 'actor_rev_user' => 'actor', - ], - 'fields' => array_merge( - $this->getRevisionQueryFields( true ), - $this->getUserQueryFields(), - $this->getNewActorQueryFields( 'rev', true ), - $this->getNewCommentQueryFields( 'rev' ) - ), - 'joins' => [ - 'user' => [ 'LEFT JOIN', [ - 'actor_rev_user.actor_user != 0', - 'user_id = actor_rev_user.actor_user', - ] ], - 'temp_rev_comment' => [ 'JOIN', 'temp_rev_comment.revcomment_rev = rev_id' ], - 'comment_rev_comment' - => [ 'JOIN', 'comment_rev_comment.comment_id = temp_rev_comment.revcomment_comment_id' ], - 'temp_rev_user' => [ 'JOIN', 'temp_rev_user.revactor_rev = rev_id' ], - 'actor_rev_user' => [ 'JOIN', 'actor_rev_user.actor_id = temp_rev_user.revactor_actor' ], - ], - ], - ]; - yield 'pre-MCR, no model, text' => [ - [ - 'wgContentHandlerUseDB' => false, - 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - ], - [ 'text' ], - [ - 'tables' => [ - 'revision', 'text', - 'temp_rev_comment' => 'revision_comment_temp', - 'comment_rev_comment' => 'comment', - 'temp_rev_user' => 'revision_actor_temp', - 'actor_rev_user' => 'actor', - ], - 'fields' => array_merge( - $this->getRevisionQueryFields( true ), - $this->getTextQueryFields(), - $this->getNewActorQueryFields( 'rev', true ), - $this->getNewCommentQueryFields( 'rev' ) - ), - 'joins' => [ - 'text' => [ 'JOIN', [ 'rev_text_id=old_id' ] ], - 'temp_rev_comment' => [ 'JOIN', 'temp_rev_comment.revcomment_rev = rev_id' ], - 'comment_rev_comment' - => [ 'JOIN', 'comment_rev_comment.comment_id = temp_rev_comment.revcomment_comment_id' ], - 'temp_rev_user' => [ 'JOIN', 'temp_rev_user.revactor_rev = rev_id' ], - 'actor_rev_user' => [ 'JOIN', 'actor_rev_user.actor_id = temp_rev_user.revactor_actor' ], - ], - ], - ]; - yield 'pre-MCR, no model, text, page, user' => [ - [ - 'wgContentHandlerUseDB' => false, - 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - ], - [ 'text', 'page', 'user' ], - [ - 'tables' => [ - 'revision', 'page', 'user', 'text', - 'temp_rev_comment' => 'revision_comment_temp', - 'comment_rev_comment' => 'comment', - 'temp_rev_user' => 'revision_actor_temp', - 'actor_rev_user' => 'actor', - ], - 'fields' => array_merge( - $this->getRevisionQueryFields( true ), - $this->getPageQueryFields(), - $this->getUserQueryFields(), - $this->getTextQueryFields(), - $this->getNewActorQueryFields( 'rev', true ), - $this->getNewCommentQueryFields( 'rev' ) - ), - 'joins' => [ - 'page' => [ - 'JOIN', - [ 'page_id = rev_page' ], - ], - 'user' => [ - 'LEFT JOIN', - [ - 'actor_rev_user.actor_user != 0', - 'user_id = actor_rev_user.actor_user', - ], - ], - 'text' => [ - 'JOIN', - [ 'rev_text_id=old_id' ], - ], - 'temp_rev_comment' => [ 'JOIN', 'temp_rev_comment.revcomment_rev = rev_id' ], - 'comment_rev_comment' - => [ 'JOIN', 'comment_rev_comment.comment_id = temp_rev_comment.revcomment_comment_id' ], - 'temp_rev_user' => [ 'JOIN', 'temp_rev_user.revactor_rev = rev_id' ], - 'actor_rev_user' => [ 'JOIN', 'actor_rev_user.actor_id = temp_rev_user.revactor_actor' ], - ], - ], - ]; } public function provideSlotsQueryInfo() { @@ -648,6 +393,10 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { 'slot_role_id', ], 'joins' => [], + 'keys' => [ + 'rev_id' => 'slot_revision_id', + 'role_id' => 'slot_role_id' + ], ] ]; yield 'MCR, role option' => [ @@ -670,6 +419,10 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { 'joins' => [ 'slot_roles' => [ 'LEFT JOIN', [ 'slot_role_id = role_id' ] ], ], + 'keys' => [ + 'rev_id' => 'slot_revision_id', + 'role_id' => 'slot_role_id' + ], ] ]; yield 'MCR read-new, content option' => [ @@ -696,6 +449,11 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { 'joins' => [ 'content' => [ 'JOIN', [ 'slot_content_id = content_id' ] ], ], + 'keys' => [ + 'rev_id' => 'slot_revision_id', + 'role_id' => 'slot_role_id', + 'model_id' => 'content_model', + ], ] ]; yield 'MCR read-new, content and model options' => [ @@ -725,6 +483,11 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { 'content' => [ 'JOIN', [ 'slot_content_id = content_id' ] ], 'content_models' => [ 'LEFT JOIN', [ 'content_model = model_id' ] ], ], + 'keys' => [ + 'rev_id' => 'slot_revision_id', + 'role_id' => 'slot_role_id', + 'model_id' => 'content_model', + ], ] ]; @@ -749,6 +512,9 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { ] ), 'joins' => [], + 'keys' => [ + 'rev_id' => 'rev_id' + ], ] ]; yield 'MCR write-both/read-old, content' => [ @@ -776,6 +542,9 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { ] ), 'joins' => [], + 'keys' => [ + 'rev_id' => 'rev_id' + ], ] ]; yield 'MCR write-both/read-old, content, model, role' => [ @@ -803,54 +572,9 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { ] ), 'joins' => [], - ] - ]; - yield 'pre-MCR' => [ - [ - 'wgMultiContentRevisionSchemaMigrationStage' - => SCHEMA_COMPAT_OLD, - ], - [], - [ - 'tables' => [ - 'revision', - ], - 'fields' => array_merge( - [ - 'slot_revision_id' => 'rev_id', - 'slot_content_id' => 'NULL', - 'slot_origin' => 'rev_id', - 'role_name' => $db->addQuotes( SlotRecord::MAIN ), - ] - ), - 'joins' => [], - ] - ]; - yield 'pre-MCR, content' => [ - [ - 'wgMultiContentRevisionSchemaMigrationStage' - => SCHEMA_COMPAT_OLD, - ], - [ 'content' ], - [ - 'tables' => [ - 'revision', + 'keys' => [ + 'rev_id' => 'rev_id' ], - 'fields' => array_merge( - [ - 'slot_revision_id' => 'rev_id', - 'slot_content_id' => 'NULL', - 'slot_origin' => 'rev_id', - 'role_name' => $db->addQuotes( SlotRecord::MAIN ), - 'content_size' => 'rev_len', - 'content_sha1' => 'rev_sha1', - 'content_address' => - $db->buildConcat( [ $db->addQuotes( 'tt:' ), 'rev_text_id' ] ), - 'rev_text_id' => 'rev_text_id', - 'model_name' => 'rev_content_model', - ] - ), - 'joins' => [], ] ]; } @@ -936,6 +660,13 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { $queryInfo['joins'], 'joins' ); + if ( isset( $expected['keys'] ) ) { + $this->assertArrayEqualsIgnoringIntKeyOrder( + $expected['keys'], + $queryInfo['keys'], + 'keys' + ); + } } /**