Mock CommentStore in some RevisionTest tests
authoraddshore <addshorewiki@gmail.com>
Thu, 25 Jan 2018 02:07:33 +0000 (18:07 -0800)
committerDaniel Kinzler <daniel.kinzler@wikimedia.de>
Tue, 6 Feb 2018 12:40:47 +0000 (12:40 +0000)
Change-Id: I16b00a5514547d93a2308393098e3b363505374e

tests/phpunit/includes/RevisionTest.php

index 4518e15..8a7368f 100644 (file)
@@ -882,6 +882,24 @@ class RevisionTest extends MediaWikiTestCase {
                );
        }
 
                );
        }
 
+       private function overrideCommentStore() {
+               $mockStore = $this->getMockBuilder( CommentStore::class )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+               $mockStore->expects( $this->any() )
+                       ->method( 'getFields' )
+                       ->willReturn( [ 'commentstore' => 'fields' ] );
+               $mockStore->expects( $this->any() )
+                       ->method( 'getJoin' )
+                       ->willReturn( [
+                               'tables' => [ 'commentstore' => 'table' ],
+                               'fields' => [ 'commentstore' => 'field' ],
+                               'joins' => [ 'commentstore' => 'join' ],
+                       ] );
+
+               $this->setService( 'CommentStore', $mockStore );
+       }
+
        public function provideSelectFields() {
                yield [
                        true,
        public function provideSelectFields() {
                yield [
                        true,
@@ -897,9 +915,7 @@ class RevisionTest extends MediaWikiTestCase {
                                'rev_len',
                                'rev_parent_id',
                                'rev_sha1',
                                'rev_len',
                                'rev_parent_id',
                                'rev_sha1',
-                               'rev_comment_text' => 'rev_comment',
-                               'rev_comment_data' => 'NULL',
-                               'rev_comment_cid' => 'NULL',
+                               'commentstore' => 'fields',
                                'rev_content_format',
                                'rev_content_model',
                        ]
                                'rev_content_format',
                                'rev_content_model',
                        ]
@@ -918,9 +934,7 @@ class RevisionTest extends MediaWikiTestCase {
                                'rev_len',
                                'rev_parent_id',
                                'rev_sha1',
                                'rev_len',
                                'rev_parent_id',
                                'rev_sha1',
-                               'rev_comment_text' => 'rev_comment',
-                               'rev_comment_data' => 'NULL',
-                               'rev_comment_cid' => 'NULL',
+                               'commentstore' => 'fields',
                        ]
                ];
        }
                        ]
                ];
        }
@@ -928,13 +942,11 @@ class RevisionTest extends MediaWikiTestCase {
        /**
         * @dataProvider provideSelectFields
         * @covers Revision::selectFields
        /**
         * @dataProvider provideSelectFields
         * @covers Revision::selectFields
-        * @todo a true unit test would mock CommentStore
         */
        public function testSelectFields( $contentHandlerUseDB, $expected ) {
                $this->hideDeprecated( 'Revision::selectFields' );
                $this->setMwGlobals( 'wgContentHandlerUseDB', $contentHandlerUseDB );
         */
        public function testSelectFields( $contentHandlerUseDB, $expected ) {
                $this->hideDeprecated( 'Revision::selectFields' );
                $this->setMwGlobals( 'wgContentHandlerUseDB', $contentHandlerUseDB );
-               $this->setMwGlobals( 'wgCommentTableSchemaMigrationStage', MIGRATION_OLD );
-               $this->overrideMwServices();
+               $this->overrideCommentStore();
                $this->assertEquals( $expected, Revision::selectFields() );
        }
 
                $this->assertEquals( $expected, Revision::selectFields() );
        }
 
@@ -955,9 +967,7 @@ class RevisionTest extends MediaWikiTestCase {
                                'ar_len',
                                'ar_parent_id',
                                'ar_sha1',
                                'ar_len',
                                'ar_parent_id',
                                'ar_sha1',
-                               'ar_comment_text' => 'ar_comment',
-                               'ar_comment_data' => 'NULL',
-                               'ar_comment_cid' => 'NULL',
+                               'commentstore' => 'fields',
                                'ar_content_format',
                                'ar_content_model',
                        ]
                                'ar_content_format',
                                'ar_content_model',
                        ]
@@ -978,9 +988,7 @@ class RevisionTest extends MediaWikiTestCase {
                                'ar_len',
                                'ar_parent_id',
                                'ar_sha1',
                                'ar_len',
                                'ar_parent_id',
                                'ar_sha1',
-                               'ar_comment_text' => 'ar_comment',
-                               'ar_comment_data' => 'NULL',
-                               'ar_comment_cid' => 'NULL',
+                               'commentstore' => 'fields',
                        ]
                ];
        }
                        ]
                ];
        }
@@ -988,13 +996,11 @@ class RevisionTest extends MediaWikiTestCase {
        /**
         * @dataProvider provideSelectArchiveFields
         * @covers Revision::selectArchiveFields
        /**
         * @dataProvider provideSelectArchiveFields
         * @covers Revision::selectArchiveFields
-        * @todo a true unit test would mock CommentStore
         */
        public function testSelectArchiveFields( $contentHandlerUseDB, $expected ) {
                $this->hideDeprecated( 'Revision::selectArchiveFields' );
                $this->setMwGlobals( 'wgContentHandlerUseDB', $contentHandlerUseDB );
         */
        public function testSelectArchiveFields( $contentHandlerUseDB, $expected ) {
                $this->hideDeprecated( 'Revision::selectArchiveFields' );
                $this->setMwGlobals( 'wgContentHandlerUseDB', $contentHandlerUseDB );
-               $this->setMwGlobals( 'wgCommentTableSchemaMigrationStage', MIGRATION_OLD );
-               $this->overrideMwServices();
+               $this->overrideCommentStore();
                $this->assertEquals( $expected, Revision::selectArchiveFields() );
        }
 
                $this->assertEquals( $expected, Revision::selectArchiveFields() );
        }
 
@@ -1044,115 +1050,14 @@ class RevisionTest extends MediaWikiTestCase {
        }
 
        public function provideGetArchiveQueryInfo() {
        }
 
        public function provideGetArchiveQueryInfo() {
-               yield 'wgContentHandlerUseDB false, wgCommentTableSchemaMigrationStage OLD' => [
+               yield 'wgContentHandlerUseDB false' => [
                        [
                                'wgContentHandlerUseDB' => false,
                        [
                                'wgContentHandlerUseDB' => false,
-                               'wgCommentTableSchemaMigrationStage' => MIGRATION_OLD,
-                       ],
-                       [
-                               'tables' => [ 'archive' ],
-                               'fields' => [
-                                       'ar_id',
-                                       'ar_page_id',
-                                       'ar_namespace',
-                                       'ar_title',
-                                       'ar_rev_id',
-                                       'ar_text',
-                                       'ar_text_id',
-                                       'ar_timestamp',
-                                       'ar_user_text',
-                                       'ar_user',
-                                       'ar_minor_edit',
-                                       'ar_deleted',
-                                       'ar_len',
-                                       'ar_parent_id',
-                                       'ar_sha1',
-                                       'ar_comment_text' => 'ar_comment',
-                                       'ar_comment_data' => 'NULL',
-                                       'ar_comment_cid' => 'NULL',
-                               ],
-                               'joins' => [],
-                       ]
-               ];
-               yield 'wgContentHandlerUseDB true, wgCommentTableSchemaMigrationStage OLD' => [
-                       [
-                               'wgContentHandlerUseDB' => true,
-                               'wgCommentTableSchemaMigrationStage' => MIGRATION_OLD,
-                       ],
-                       [
-                               'tables' => [ 'archive' ],
-                               'fields' => [
-                                       'ar_id',
-                                       'ar_page_id',
-                                       'ar_namespace',
-                                       'ar_title',
-                                       'ar_rev_id',
-                                       'ar_text',
-                                       'ar_text_id',
-                                       'ar_timestamp',
-                                       'ar_user_text',
-                                       'ar_user',
-                                       'ar_minor_edit',
-                                       'ar_deleted',
-                                       'ar_len',
-                                       'ar_parent_id',
-                                       'ar_sha1',
-                                       'ar_comment_text' => 'ar_comment',
-                                       'ar_comment_data' => 'NULL',
-                                       'ar_comment_cid' => 'NULL',
-                                       'ar_content_format',
-                                       'ar_content_model',
-                               ],
-                               'joins' => [],
-                       ]
-               ];
-               yield 'wgContentHandlerUseDB false, wgCommentTableSchemaMigrationStage WRITE_BOTH' => [
-                       [
-                               'wgContentHandlerUseDB' => false,
-                               'wgCommentTableSchemaMigrationStage' => MIGRATION_WRITE_BOTH,
-                       ],
-                       [
-                               'tables' => [
-                                       'archive',
-                                       'comment_ar_comment' => 'comment',
-                               ],
-                               'fields' => [
-                                       'ar_id',
-                                       'ar_page_id',
-                                       'ar_namespace',
-                                       'ar_title',
-                                       'ar_rev_id',
-                                       'ar_text',
-                                       'ar_text_id',
-                                       'ar_timestamp',
-                                       'ar_user_text',
-                                       'ar_user',
-                                       'ar_minor_edit',
-                                       'ar_deleted',
-                                       'ar_len',
-                                       'ar_parent_id',
-                                       'ar_sha1',
-                                       'ar_comment_text' => 'COALESCE( comment_ar_comment.comment_text, ar_comment )',
-                                       'ar_comment_data' => 'comment_ar_comment.comment_data',
-                                       'ar_comment_cid' => 'comment_ar_comment.comment_id',
-                               ],
-                               'joins' => [
-                                       'comment_ar_comment' => [
-                                               'LEFT JOIN',
-                                               'comment_ar_comment.comment_id = ar_comment_id',
-                                       ],
-                               ],
-                       ]
-               ];
-               yield 'wgContentHandlerUseDB false, wgCommentTableSchemaMigrationStage WRITE_NEW' => [
-                       [
-                               'wgContentHandlerUseDB' => false,
-                               'wgCommentTableSchemaMigrationStage' => MIGRATION_WRITE_NEW,
                        ],
                        [
                                'tables' => [
                                        'archive',
                        ],
                        [
                                'tables' => [
                                        'archive',
-                                       'comment_ar_comment' => 'comment',
+                                       'commentstore' => 'table',
                                ],
                                'fields' => [
                                        'ar_id',
                                ],
                                'fields' => [
                                        'ar_id',
@@ -1170,27 +1075,19 @@ class RevisionTest extends MediaWikiTestCase {
                                        'ar_len',
                                        'ar_parent_id',
                                        'ar_sha1',
                                        'ar_len',
                                        'ar_parent_id',
                                        'ar_sha1',
-                                       'ar_comment_text' => 'COALESCE( comment_ar_comment.comment_text, ar_comment )',
-                                       'ar_comment_data' => 'comment_ar_comment.comment_data',
-                                       'ar_comment_cid' => 'comment_ar_comment.comment_id',
-                               ],
-                               'joins' => [
-                                       'comment_ar_comment' => [
-                                               'LEFT JOIN',
-                                               'comment_ar_comment.comment_id = ar_comment_id',
-                                       ],
+                                       'commentstore' => 'field'
                                ],
                                ],
+                               'joins' => [ 'commentstore' => 'join' ],
                        ]
                ];
                        ]
                ];
-               yield 'wgContentHandlerUseDB false, wgCommentTableSchemaMigrationStage NEW' => [
+               yield 'wgContentHandlerUseDB true' => [
                        [
                        [
-                               'wgContentHandlerUseDB' => false,
-                               'wgCommentTableSchemaMigrationStage' => MIGRATION_NEW,
+                               'wgContentHandlerUseDB' => true,
                        ],
                        [
                                'tables' => [
                                        'archive',
                        ],
                        [
                                'tables' => [
                                        'archive',
-                                       'comment_ar_comment' => 'comment',
+                                       'commentstore' => 'table',
                                ],
                                'fields' => [
                                        'ar_id',
                                ],
                                'fields' => [
                                        'ar_id',
@@ -1208,16 +1105,11 @@ class RevisionTest extends MediaWikiTestCase {
                                        'ar_len',
                                        'ar_parent_id',
                                        'ar_sha1',
                                        'ar_len',
                                        'ar_parent_id',
                                        'ar_sha1',
-                                       'ar_comment_text' => 'comment_ar_comment.comment_text',
-                                       'ar_comment_data' => 'comment_ar_comment.comment_data',
-                                       'ar_comment_cid' => 'comment_ar_comment.comment_id',
-                               ],
-                               'joins' => [
-                                       'comment_ar_comment' => [
-                                               'JOIN',
-                                               'comment_ar_comment.comment_id = ar_comment_id',
-                                       ],
+                                       'commentstore' => 'field',
+                                       'ar_content_format',
+                                       'ar_content_model',
                                ],
                                ],
+                               'joins' => [ 'commentstore' => 'join' ],
                        ]
                ];
        }
                        ]
                ];
        }
@@ -1228,11 +1120,11 @@ class RevisionTest extends MediaWikiTestCase {
         */
        public function testGetArchiveQueryInfo( $globals, $expected ) {
                $this->setMwGlobals( $globals );
         */
        public function testGetArchiveQueryInfo( $globals, $expected ) {
                $this->setMwGlobals( $globals );
+               $this->overrideCommentStore();
 
                $revisionStore = $this->getRevisionStore();
                $revisionStore->setContentHandlerUseDB( $globals['wgContentHandlerUseDB'] );
                $this->setService( 'RevisionStore', $revisionStore );
 
                $revisionStore = $this->getRevisionStore();
                $revisionStore->setContentHandlerUseDB( $globals['wgContentHandlerUseDB'] );
                $this->setService( 'RevisionStore', $revisionStore );
-
                $this->assertEquals(
                        $expected,
                        Revision::getArchiveQueryInfo()
                $this->assertEquals(
                        $expected,
                        Revision::getArchiveQueryInfo()
@@ -1240,14 +1132,13 @@ class RevisionTest extends MediaWikiTestCase {
        }
 
        public function provideGetQueryInfo() {
        }
 
        public function provideGetQueryInfo() {
-               yield 'wgContentHandlerUseDB false, wgCommentTableSchemaMigrationStage OLD, opts none' => [
+               yield 'wgContentHandlerUseDB false, opts none' => [
                        [
                                'wgContentHandlerUseDB' => false,
                        [
                                'wgContentHandlerUseDB' => false,
-                               'wgCommentTableSchemaMigrationStage' => MIGRATION_OLD,
                        ],
                        [],
                        [
                        ],
                        [],
                        [
-                               'tables' => [ 'revision' ],
+                               'tables' => [ 'revision', 'commentstore' => 'table' ],
                                'fields' => [
                                        'rev_id',
                                        'rev_page',
                                'fields' => [
                                        'rev_id',
                                        'rev_page',
@@ -1260,21 +1151,18 @@ class RevisionTest extends MediaWikiTestCase {
                                        'rev_len',
                                        'rev_parent_id',
                                        'rev_sha1',
                                        'rev_len',
                                        'rev_parent_id',
                                        'rev_sha1',
-                                       'rev_comment_text' => 'rev_comment',
-                                       'rev_comment_data' => 'NULL',
-                                       'rev_comment_cid' => 'NULL',
+                                       'commentstore' => 'field',
                                ],
                                ],
-                               'joins' => [],
+                               'joins' => [ 'commentstore' => 'join' ],
                        ],
                ];
                        ],
                ];
-               yield 'wgContentHandlerUseDB false, wgCommentTableSchemaMigrationStage OLD, opts page' => [
+               yield 'wgContentHandlerUseDB false, opts page' => [
                        [
                                'wgContentHandlerUseDB' => false,
                        [
                                'wgContentHandlerUseDB' => false,
-                               'wgCommentTableSchemaMigrationStage' => MIGRATION_OLD,
                        ],
                        [ 'page' ],
                        [
                        ],
                        [ 'page' ],
                        [
-                               'tables' => [ 'revision', 'page' ],
+                               'tables' => [ 'revision', 'commentstore' => 'table', 'page' ],
                                'fields' => [
                                        'rev_id',
                                        'rev_page',
                                'fields' => [
                                        'rev_id',
                                        'rev_page',
@@ -1287,9 +1175,7 @@ class RevisionTest extends MediaWikiTestCase {
                                        'rev_len',
                                        'rev_parent_id',
                                        'rev_sha1',
                                        'rev_len',
                                        'rev_parent_id',
                                        'rev_sha1',
-                                       'rev_comment_text' => 'rev_comment',
-                                       'rev_comment_data' => 'NULL',
-                                       'rev_comment_cid' => 'NULL',
+                                       'commentstore' => 'field',
                                        'page_namespace',
                                        'page_title',
                                        'page_id',
                                        'page_namespace',
                                        'page_title',
                                        'page_id',
@@ -1302,17 +1188,17 @@ class RevisionTest extends MediaWikiTestCase {
                                                'INNER JOIN',
                                                [ 'page_id = rev_page' ],
                                        ],
                                                'INNER JOIN',
                                                [ 'page_id = rev_page' ],
                                        ],
+                                       'commentstore' => 'join',
                                ],
                        ],
                ];
                                ],
                        ],
                ];
-               yield 'wgContentHandlerUseDB false, wgCommentTableSchemaMigrationStage OLD, opts user' => [
+               yield 'wgContentHandlerUseDB false, opts user' => [
                        [
                                'wgContentHandlerUseDB' => false,
                        [
                                'wgContentHandlerUseDB' => false,
-                               'wgCommentTableSchemaMigrationStage' => MIGRATION_OLD,
                        ],
                        [ 'user' ],
                        [
                        ],
                        [ 'user' ],
                        [
-                               'tables' => [ 'revision', 'user' ],
+                               'tables' => [ 'revision', 'commentstore' => 'table', 'user' ],
                                'fields' => [
                                        'rev_id',
                                        'rev_page',
                                'fields' => [
                                        'rev_id',
                                        'rev_page',
@@ -1325,9 +1211,7 @@ class RevisionTest extends MediaWikiTestCase {
                                        'rev_len',
                                        'rev_parent_id',
                                        'rev_sha1',
                                        'rev_len',
                                        'rev_parent_id',
                                        'rev_sha1',
-                                       'rev_comment_text' => 'rev_comment',
-                                       'rev_comment_data' => 'NULL',
-                                       'rev_comment_cid' => 'NULL',
+                                       'commentstore' => 'field',
                                        'user_name',
                                ],
                                'joins' => [
                                        'user_name',
                                ],
                                'joins' => [
@@ -1338,17 +1222,17 @@ class RevisionTest extends MediaWikiTestCase {
                                                        'user_id = rev_user',
                                                ],
                                        ],
                                                        'user_id = rev_user',
                                                ],
                                        ],
+                                       'commentstore' => 'join',
                                ],
                        ],
                ];
                                ],
                        ],
                ];
-               yield 'wgContentHandlerUseDB false, wgCommentTableSchemaMigrationStage OLD, opts text' => [
+               yield 'wgContentHandlerUseDB false, opts text' => [
                        [
                                'wgContentHandlerUseDB' => false,
                        [
                                'wgContentHandlerUseDB' => false,
-                               'wgCommentTableSchemaMigrationStage' => MIGRATION_OLD,
                        ],
                        [ 'text' ],
                        [
                        ],
                        [ 'text' ],
                        [
-                               'tables' => [ 'revision', 'text' ],
+                               'tables' => [ 'revision', 'commentstore' => 'table', 'text' ],
                                'fields' => [
                                        'rev_id',
                                        'rev_page',
                                'fields' => [
                                        'rev_id',
                                        'rev_page',
@@ -1361,9 +1245,7 @@ class RevisionTest extends MediaWikiTestCase {
                                        'rev_len',
                                        'rev_parent_id',
                                        'rev_sha1',
                                        'rev_len',
                                        'rev_parent_id',
                                        'rev_sha1',
-                                       'rev_comment_text' => 'rev_comment',
-                                       'rev_comment_data' => 'NULL',
-                                       'rev_comment_cid' => 'NULL',
+                                       'commentstore' => 'field',
                                        'old_text',
                                        'old_flags',
                                ],
                                        'old_text',
                                        'old_flags',
                                ],
@@ -1372,17 +1254,17 @@ class RevisionTest extends MediaWikiTestCase {
                                                'INNER JOIN',
                                                [ 'rev_text_id=old_id' ],
                                        ],
                                                'INNER JOIN',
                                                [ 'rev_text_id=old_id' ],
                                        ],
+                                       'commentstore' => 'join',
                                ],
                        ],
                ];
                                ],
                        ],
                ];
-               yield 'wgContentHandlerUseDB false, wgCommentTableSchemaMigrationStage OLD, opts 3' => [
+               yield 'wgContentHandlerUseDB false, opts 3' => [
                        [
                                'wgContentHandlerUseDB' => false,
                        [
                                'wgContentHandlerUseDB' => false,
-                               'wgCommentTableSchemaMigrationStage' => MIGRATION_OLD,
                        ],
                        [ 'text', 'page', 'user' ],
                        [
                        ],
                        [ 'text', 'page', 'user' ],
                        [
-                               'tables' => [ 'revision', 'page', 'user', 'text' ],
+                               'tables' => [ 'revision', 'commentstore' => 'table', 'page', 'user', 'text' ],
                                'fields' => [
                                        'rev_id',
                                        'rev_page',
                                'fields' => [
                                        'rev_id',
                                        'rev_page',
@@ -1395,9 +1277,7 @@ class RevisionTest extends MediaWikiTestCase {
                                        'rev_len',
                                        'rev_parent_id',
                                        'rev_sha1',
                                        'rev_len',
                                        'rev_parent_id',
                                        'rev_sha1',
-                                       'rev_comment_text' => 'rev_comment',
-                                       'rev_comment_data' => 'NULL',
-                                       'rev_comment_cid' => 'NULL',
+                                       'commentstore' => 'field',
                                        'page_namespace',
                                        'page_title',
                                        'page_id',
                                        'page_namespace',
                                        'page_title',
                                        'page_id',
@@ -1424,17 +1304,17 @@ class RevisionTest extends MediaWikiTestCase {
                                                'INNER JOIN',
                                                [ 'rev_text_id=old_id' ],
                                        ],
                                                'INNER JOIN',
                                                [ 'rev_text_id=old_id' ],
                                        ],
+                                       'commentstore' => 'join',
                                ],
                        ],
                ];
                                ],
                        ],
                ];
-               yield 'wgContentHandlerUseDB true, wgCommentTableSchemaMigrationStage OLD, opts none' => [
+               yield 'wgContentHandlerUseDB true, opts none' => [
                        [
                                'wgContentHandlerUseDB' => true,
                        [
                                'wgContentHandlerUseDB' => true,
-                               'wgCommentTableSchemaMigrationStage' => MIGRATION_OLD,
                        ],
                        [],
                        [
                        ],
                        [],
                        [
-                               'tables' => [ 'revision' ],
+                               'tables' => [ 'revision', 'commentstore' => 'table' ],
                                'fields' => [
                                        'rev_id',
                                        'rev_page',
                                'fields' => [
                                        'rev_id',
                                        'rev_page',
@@ -1447,133 +1327,11 @@ class RevisionTest extends MediaWikiTestCase {
                                        'rev_len',
                                        'rev_parent_id',
                                        'rev_sha1',
                                        'rev_len',
                                        'rev_parent_id',
                                        'rev_sha1',
-                                       'rev_comment_text' => 'rev_comment',
-                                       'rev_comment_data' => 'NULL',
-                                       'rev_comment_cid' => 'NULL',
+                                       'commentstore' => 'field',
                                        'rev_content_format',
                                        'rev_content_model',
                                ],
                                        'rev_content_format',
                                        'rev_content_model',
                                ],
-                               'joins' => [],
-                       ],
-               ];
-               yield 'wgContentHandlerUseDB false, wgCommentTableSchemaMigrationStage WRITE_BOTH, opts none' => [
-                       [
-                               'wgContentHandlerUseDB' => false,
-                               'wgCommentTableSchemaMigrationStage' => MIGRATION_WRITE_BOTH,
-                       ],
-                       [],
-                       [
-                               'tables' => [
-                                       'revision',
-                                       'temp_rev_comment' => 'revision_comment_temp',
-                                       'comment_rev_comment' => 'comment',
-                               ],
-                               'fields' => [
-                                       'rev_id',
-                                       'rev_page',
-                                       'rev_text_id',
-                                       'rev_timestamp',
-                                       'rev_user_text',
-                                       'rev_user',
-                                       'rev_minor_edit',
-                                       'rev_deleted',
-                                       'rev_len',
-                                       'rev_parent_id',
-                                       'rev_sha1',
-                                       'rev_comment_text' => 'COALESCE( comment_rev_comment.comment_text, rev_comment )',
-                                       'rev_comment_data' => 'comment_rev_comment.comment_data',
-                                       'rev_comment_cid' => 'comment_rev_comment.comment_id',
-                               ],
-                               'joins' => [
-                                       'temp_rev_comment' => [
-                                               'LEFT JOIN',
-                                               'temp_rev_comment.revcomment_rev = rev_id',
-                                       ],
-                                       'comment_rev_comment' => [
-                                               'LEFT JOIN',
-                                               'comment_rev_comment.comment_id = temp_rev_comment.revcomment_comment_id',
-                                       ],
-                               ],
-                       ],
-               ];
-               yield 'wgContentHandlerUseDB false, wgCommentTableSchemaMigrationStage WRITE_NEW, opts none' => [
-                       [
-                               'wgContentHandlerUseDB' => false,
-                               'wgCommentTableSchemaMigrationStage' => MIGRATION_WRITE_NEW,
-                       ],
-                       [],
-                       [
-                               'tables' => [
-                                       'revision',
-                                       'temp_rev_comment' => 'revision_comment_temp',
-                                       'comment_rev_comment' => 'comment',
-                               ],
-                               'fields' => [
-                                       'rev_id',
-                                       'rev_page',
-                                       'rev_text_id',
-                                       'rev_timestamp',
-                                       'rev_user_text',
-                                       'rev_user',
-                                       'rev_minor_edit',
-                                       'rev_deleted',
-                                       'rev_len',
-                                       'rev_parent_id',
-                                       'rev_sha1',
-                                       'rev_comment_text' => 'COALESCE( comment_rev_comment.comment_text, rev_comment )',
-                                       'rev_comment_data' => 'comment_rev_comment.comment_data',
-                                       'rev_comment_cid' => 'comment_rev_comment.comment_id',
-                               ],
-                               'joins' => [
-                                       'temp_rev_comment' => [
-                                               'LEFT JOIN',
-                                               'temp_rev_comment.revcomment_rev = rev_id',
-                                       ],
-                                       'comment_rev_comment' => [
-                                               'LEFT JOIN',
-                                               'comment_rev_comment.comment_id = temp_rev_comment.revcomment_comment_id',
-                                       ],
-                               ],
-                       ],
-               ];
-               yield 'wgContentHandlerUseDB false, wgCommentTableSchemaMigrationStage NEW, opts none' => [
-                       [
-                               'wgContentHandlerUseDB' => false,
-                               'wgCommentTableSchemaMigrationStage' => MIGRATION_NEW,
-                       ],
-                       [],
-                       [
-                               'tables' => [
-                                       'revision',
-                                       'temp_rev_comment' => 'revision_comment_temp',
-                                       'comment_rev_comment' => 'comment',
-                               ],
-                               'fields' => [
-                                       'rev_id',
-                                       'rev_page',
-                                       'rev_text_id',
-                                       'rev_timestamp',
-                                       'rev_user_text',
-                                       'rev_user',
-                                       'rev_minor_edit',
-                                       'rev_deleted',
-                                       'rev_len',
-                                       'rev_parent_id',
-                                       'rev_sha1',
-                                       'rev_comment_text' => 'comment_rev_comment.comment_text',
-                                       'rev_comment_data' => 'comment_rev_comment.comment_data',
-                                       'rev_comment_cid' => 'comment_rev_comment.comment_id',
-                               ],
-                               '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',
-                                       ],
-                               ],
+                               'joins' => [ 'commentstore' => 'join' ],
                        ],
                ];
        }
                        ],
                ];
        }
@@ -1584,6 +1342,7 @@ class RevisionTest extends MediaWikiTestCase {
         */
        public function testGetQueryInfo( $globals, $options, $expected ) {
                $this->setMwGlobals( $globals );
         */
        public function testGetQueryInfo( $globals, $options, $expected ) {
                $this->setMwGlobals( $globals );
+               $this->overrideCommentStore();
 
                $revisionStore = $this->getRevisionStore();
                $revisionStore->setContentHandlerUseDB( $globals['wgContentHandlerUseDB'] );
 
                $revisionStore = $this->getRevisionStore();
                $revisionStore->setContentHandlerUseDB( $globals['wgContentHandlerUseDB'] );