X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2FRevision%2FRevisionQueryInfoTest.php;h=949b664e29cb64479d21a149e0048afe6c7a199d;hp=57619c55b6daaa2bfd08ff54ad5e56293527184a;hb=64e7e7d760fc3e043f7e01a89cc3697869aaa93b;hpb=c069752a95cda40e65dc7420ca7f65230bf591ef diff --git a/tests/phpunit/includes/Revision/RevisionQueryInfoTest.php b/tests/phpunit/includes/Revision/RevisionQueryInfoTest.php index 57619c55b6..949b664e29 100644 --- a/tests/phpunit/includes/Revision/RevisionQueryInfoTest.php +++ b/tests/phpunit/includes/Revision/RevisionQueryInfoTest.php @@ -61,32 +61,11 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { ]; } - protected function getOldActorQueryFields( $prefix ) { - return [ - "{$prefix}_user" => "{$prefix}_user", - "{$prefix}_user_text" => "{$prefix}_user_text", - "{$prefix}_actor" => 'NULL', - ]; - } - protected function getNewActorQueryFields( $prefix, $tmp = false ) { return [ "{$prefix}_user" => "actor_{$prefix}_user.actor_user", "{$prefix}_user_text" => "actor_{$prefix}_user.actor_name", - "{$prefix}_actor" => $tmp ?: "{$prefix}_actor", - ]; - } - - protected function getNewActorJoins( $prefix ) { - return [ - "temp_{$prefix}_user" => [ - "JOIN", - "temp_{$prefix}_user.revactor_{$prefix} = {$prefix}_id", - ], - "actor_{$prefix}_user" => [ - "JOIN", - "actor_{$prefix}_user.actor_id = temp_{$prefix}_user.revactor_actor", - ], + "{$prefix}_actor" => $tmp ? "temp_{$prefix}_user.{$prefix}actor_actor" : "{$prefix}_actor", ]; } @@ -125,7 +104,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { yield 'MCR, comment, actor' => [ [ 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_NEW, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_NEW, ], [ 'tables' => [ @@ -150,7 +128,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { 'wgContentHandlerUseDB' => true, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_NEW, ], [ 'tables' => [ @@ -175,22 +152,23 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { 'wgContentHandlerUseDB' => true, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_OLD, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_OLD, ], [ 'tables' => [ 'archive', + 'actor_ar_user' => 'actor', 'comment_ar_comment' => 'comment', ], 'fields' => array_merge( $this->getArchiveQueryFields( true ), $this->getContentHandlerQueryFields( 'ar' ), - $this->getOldActorQueryFields( 'ar' ), + $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' ], ], ] ]; @@ -198,21 +176,22 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { [ 'wgContentHandlerUseDB' => false, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_OLD, ], [ 'tables' => [ 'archive', + 'actor_ar_user' => 'actor', 'comment_ar_comment' => 'comment', ], 'fields' => array_merge( $this->getArchiveQueryFields( true ), - $this->getOldActorQueryFields( 'ar' ), + $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' ], ], ] ]; @@ -224,7 +203,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { [ 'wgContentHandlerUseDB' => true, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_NEW, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_NEW, ], [ 'page', 'user' ], [ @@ -260,6 +238,8 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { ], 'temp_rev_user' => [ 'JOIN', 'temp_rev_user.revactor_rev = rev_id' ], 'temp_rev_comment' => [ 'JOIN', 'temp_rev_comment.revcomment_rev = rev_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' ], ], ] ]; @@ -268,7 +248,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { 'wgContentHandlerUseDB' => true, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW, ], [ 'page', 'user' ], [ @@ -288,22 +267,21 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { $this->getNewActorQueryFields( 'rev', 'temp_rev_user.revactor_actor' ), $this->getNewCommentQueryFields( 'rev' ) ), - 'joins' => array_merge( - [ - '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' ], + 'joins' => [ + 'page' => [ 'JOIN', [ 'page_id = rev_page' ] ], + 'user' => [ + 'LEFT JOIN', + [ + 'actor_rev_user.actor_user != 0', + 'user_id = actor_rev_user.actor_user', + ] ], - $this->getNewActorJoins( 'rev' ) - ), + '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 'MCR read-new' => [ @@ -311,7 +289,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { 'wgContentHandlerUseDB' => true, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW, ], [ 'page', 'user' ], [ @@ -331,22 +308,21 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { $this->getNewActorQueryFields( 'rev', 'temp_rev_user.revactor_actor' ), $this->getNewCommentQueryFields( 'rev' ) ), - 'joins' => array_merge( - [ - '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' ], + 'joins' => [ + 'page' => [ 'JOIN', [ 'page_id = rev_page' ] ], + 'user' => [ + 'LEFT JOIN', + [ + 'actor_rev_user.actor_user != 0', + 'user_id = actor_rev_user.actor_user' + ] ], - $this->getNewActorJoins( 'rev' ) - ), + '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 'MCR write-both/read-old' => [ @@ -354,7 +330,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { 'wgContentHandlerUseDB' => true, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_OLD, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_OLD, ], [], [ @@ -362,17 +337,21 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { '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->getOldActorQueryFields( 'rev', 'temp_rev_user.revactor_actor' ), + $this->getNewActorQueryFields( 'rev', 'temp_rev_user.revactor_actor' ), $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' ], ], ] ]; @@ -381,7 +360,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { 'wgContentHandlerUseDB' => true, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_OLD, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_OLD, ], [ 'page', 'user' ], [ @@ -391,37 +369,38 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { '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->getUserQueryFields(), $this->getPageQueryFields(), - $this->getOldActorQueryFields( 'rev', 'temp_rev_user.revactor_actor' ), + $this->getNewActorQueryFields( 'rev', 'temp_rev_user.revactor_actor' ), $this->getNewCommentQueryFields( 'rev' ) ), - 'joins' => array_merge( - [ - 'page' => [ 'JOIN', [ 'page_id = rev_page' ] ], - 'user' => [ - 'LEFT JOIN', - [ - 'rev_user != 0', - 'user_id = rev_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' ], - ] - ), + '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' => [ [ 'wgContentHandlerUseDB' => true, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_OLD, ], [], [ @@ -429,17 +408,21 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { '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->getOldActorQueryFields( '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' ], ], ] ]; @@ -447,7 +430,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { [ 'wgContentHandlerUseDB' => true, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_OLD, ], [ 'page', 'user' ], [ @@ -455,21 +437,28 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { '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->getOldActorQueryFields( 'rev' ), + $this->getNewActorQueryFields( 'rev', true ), $this->getNewCommentQueryFields( 'rev' ) ), 'joins' => [ 'page' => [ 'JOIN', [ 'page_id = rev_page' ] ], - 'user' => [ 'LEFT JOIN', [ 'rev_user != 0', 'user_id = rev_user' ] ], + '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' ], ], ] ]; @@ -477,7 +466,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { [ 'wgContentHandlerUseDB' => false, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_OLD, ], [], [ @@ -485,16 +473,20 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { '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->getOldActorQueryFields( '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' ], ], ], ]; @@ -502,7 +494,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { [ 'wgContentHandlerUseDB' => false, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_OLD, ], [ 'page' ], [ @@ -510,11 +501,13 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { '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->getOldActorQueryFields( 'rev' ), + $this->getNewActorQueryFields( 'rev', true ), $this->getNewCommentQueryFields( 'rev' ) ), 'joins' => [ @@ -522,6 +515,8 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { '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' ], ], ], ]; @@ -529,7 +524,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { [ 'wgContentHandlerUseDB' => false, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_OLD, ], [ 'user' ], [ @@ -537,18 +531,25 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { '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->getOldActorQueryFields( 'rev' ), + $this->getNewActorQueryFields( 'rev', true ), $this->getNewCommentQueryFields( 'rev' ) ), 'joins' => [ - 'user' => [ 'LEFT JOIN', [ 'rev_user != 0', 'user_id = rev_user' ] ], + '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' ], ], ], ]; @@ -556,7 +557,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { [ 'wgContentHandlerUseDB' => false, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_OLD, ], [ 'text' ], [ @@ -564,11 +564,13 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { '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->getOldActorQueryFields( 'rev' ), + $this->getNewActorQueryFields( 'rev', true ), $this->getNewCommentQueryFields( 'rev' ) ), 'joins' => [ @@ -576,6 +578,8 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { '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' ], ], ], ]; @@ -583,7 +587,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { [ 'wgContentHandlerUseDB' => false, 'wgMultiContentRevisionSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_OLD, ], [ 'text', 'page', 'user' ], [ @@ -591,13 +594,15 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { '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->getOldActorQueryFields( 'rev' ), + $this->getNewActorQueryFields( 'rev', true ), $this->getNewCommentQueryFields( 'rev' ) ), 'joins' => [ @@ -608,8 +613,8 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { 'user' => [ 'LEFT JOIN', [ - 'rev_user != 0', - 'user_id = rev_user', + 'actor_rev_user.actor_user != 0', + 'user_id = actor_rev_user.actor_user', ], ], 'text' => [ @@ -619,6 +624,8 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { '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' ], ], ], ]; @@ -848,200 +855,12 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { ]; } - public function provideSelectFields() { - yield 'with model, comment, and actor' => [ - [ - 'wgContentHandlerUseDB' => true, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_OLD, - ], - 'fields' => array_merge( - [ - 'rev_id', - 'rev_page', - 'rev_text_id', - 'rev_timestamp', - 'rev_user_text', - 'rev_user', - 'rev_actor' => 'NULL', - 'rev_minor_edit', - 'rev_deleted', - 'rev_len', - 'rev_parent_id', - 'rev_sha1', - ], - $this->getContentHandlerQueryFields( 'rev' ), - [ - 'rev_comment_pk' => 'rev_id', - ] - ), - ]; - yield 'no mode, no comment, no actor' => [ - [ - 'wgContentHandlerUseDB' => false, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - ], - 'fields' => array_merge( - [ - 'rev_id', - 'rev_page', - 'rev_text_id', - 'rev_timestamp', - 'rev_user_text', - 'rev_user', - 'rev_actor' => 'NULL', - 'rev_minor_edit', - 'rev_deleted', - 'rev_len', - 'rev_parent_id', - 'rev_sha1', - 'rev_comment_pk' => 'rev_id', - ] - ), - ]; - } - - public function provideSelectArchiveFields() { - yield 'with model, comment, and actor' => [ - [ - 'wgContentHandlerUseDB' => true, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_OLD, - ], - 'fields' => array_merge( - [ - 'ar_id', - 'ar_page_id', - 'ar_rev_id', - 'ar_text_id', - 'ar_timestamp', - 'ar_user_text', - 'ar_user', - 'ar_actor' => 'NULL', - 'ar_minor_edit', - 'ar_deleted', - 'ar_len', - 'ar_parent_id', - 'ar_sha1', - ], - $this->getContentHandlerQueryFields( 'ar' ), - [ - 'ar_comment_id' => 'ar_comment_id', - ] - ), - ]; - yield 'no mode, no comment, no actor' => [ - [ - 'wgContentHandlerUseDB' => false, - 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_OLD, - ], - 'fields' => array_merge( - [ - 'ar_id', - 'ar_page_id', - 'ar_rev_id', - 'ar_text_id', - 'ar_timestamp', - 'ar_user_text', - 'ar_user', - 'ar_actor' => 'NULL', - 'ar_minor_edit', - 'ar_deleted', - 'ar_len', - 'ar_parent_id', - 'ar_sha1', - 'ar_comment_id' => 'ar_comment_id', - ] - ), - ]; - } - - /** - * @dataProvider provideSelectFields - * @covers Revision::selectFields - */ - public function testRevisionSelectFields( $migrationStageSettings, $expected ) { - $this->setMwGlobals( $migrationStageSettings ); - $this->overrideMwServices(); - - $this->hideDeprecated( 'Revision::selectFields' ); - $this->assertArrayEqualsIgnoringIntKeyOrder( $expected, Revision::selectFields() ); - } - - /** - * @dataProvider provideSelectArchiveFields - * @covers Revision::selectArchiveFields - */ - public function testRevisionSelectArchiveFields( $migrationStageSettings, $expected ) { - $this->setMwGlobals( $migrationStageSettings ); - $this->overrideMwServices(); - - $this->hideDeprecated( 'Revision::selectArchiveFields' ); - $this->assertArrayEqualsIgnoringIntKeyOrder( $expected, Revision::selectArchiveFields() ); - } - - /** - * @covers Revision::userJoinCond - */ - public function testRevisionUserJoinCond() { - $this->hideDeprecated( 'Revision::userJoinCond' ); - $this->setMwGlobals( 'wgActorTableSchemaMigrationStage', SCHEMA_COMPAT_OLD ); - $this->overrideMwServices(); - $this->assertEquals( - [ 'LEFT JOIN', [ 'rev_user != 0', 'user_id = rev_user' ] ], - Revision::userJoinCond() - ); - } - - /** - * @covers Revision::pageJoinCond - */ - public function testRevisionPageJoinCond() { - $this->hideDeprecated( 'Revision::pageJoinCond' ); - $this->assertEquals( - [ 'JOIN', [ 'page_id = rev_page' ] ], - Revision::pageJoinCond() - ); - } - - /** - * @covers Revision::selectTextFields - */ - public function testRevisionSelectTextFields() { - $this->hideDeprecated( 'Revision::selectTextFields' ); - $this->assertEquals( - $this->getTextQueryFields(), - Revision::selectTextFields() - ); - } - - /** - * @covers Revision::selectPageFields - */ - public function testRevisionSelectPageFields() { - $this->hideDeprecated( 'Revision::selectPageFields' ); - $this->assertEquals( - $this->getPageQueryFields(), - Revision::selectPageFields() - ); - } - - /** - * @covers Revision::selectUserFields - */ - public function testRevisionSelectUserFields() { - $this->hideDeprecated( 'Revision::selectUserFields' ); - $this->assertEquals( - $this->getUserQueryFields(), - Revision::selectUserFields() - ); - } - /** * @covers Revision::getArchiveQueryInfo * @dataProvider provideArchiveQueryInfo */ public function testRevisionGetArchiveQueryInfo( $migrationStageSettings, $expected ) { $this->setMwGlobals( $migrationStageSettings ); - $this->overrideMwServices(); $queryInfo = Revision::getArchiveQueryInfo(); $this->assertQueryInfoEquals( $expected, $queryInfo ); @@ -1053,7 +872,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { */ public function testRevisionGetQueryInfo( $migrationStageSettings, $options, $expected ) { $this->setMwGlobals( $migrationStageSettings ); - $this->overrideMwServices(); $queryInfo = Revision::getQueryInfo( $options ); $this->assertQueryInfoEquals( $expected, $queryInfo ); @@ -1065,7 +883,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { */ public function testRevisionStoreGetQueryInfo( $migrationStageSettings, $options, $expected ) { $this->setMwGlobals( $migrationStageSettings ); - $this->overrideMwServices(); $store = MediaWikiServices::getInstance()->getRevisionStore(); @@ -1083,7 +900,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { $expected ) { $this->setMwGlobals( $migrationStageSettings ); - $this->overrideMwServices(); $store = MediaWikiServices::getInstance()->getRevisionStore(); @@ -1097,7 +913,6 @@ class RevisionQueryInfoTest extends MediaWikiTestCase { */ public function testRevisionStoreGetArchiveQueryInfo( $migrationStageSettings, $expected ) { $this->setMwGlobals( $migrationStageSettings ); - $this->overrideMwServices(); $store = MediaWikiServices::getInstance()->getRevisionStore();