Addshore has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/392215 )

Change subject: [MCR] tests for Revision::getQueryInfo
......................................................................

[MCR] tests for Revision::getQueryInfo

Bug: T180210
Change-Id: I5bdb5eed853e22bacd6b4c2546343e9d0f2d8c89
---
M tests/phpunit/includes/RevisionTest.php
1 file changed, 351 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/15/392215/1

diff --git a/tests/phpunit/includes/RevisionTest.php 
b/tests/phpunit/includes/RevisionTest.php
index f860a7d..6965f09 100644
--- a/tests/phpunit/includes/RevisionTest.php
+++ b/tests/phpunit/includes/RevisionTest.php
@@ -937,4 +937,355 @@
                );
        }
 
+       public function provideGetQueryInfo() {
+               yield 'wgContentHandlerUseDB false, 
wgCommentTableSchemaMigrationStage OLD, opts none' => [
+                       [
+                               'wgContentHandlerUseDB' => false,
+                               'wgCommentTableSchemaMigrationStage' => 
MIGRATION_OLD,
+                       ],
+                       [],
+                       [
+                               'tables' => [ 'revision' ],
+                               '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' => 'rev_comment',
+                                       'rev_comment_data' => 'NULL',
+                                       'rev_comment_cid' => 'NULL',
+                               ],
+                               'joins' => [],
+                       ],
+               ];
+               yield 'wgContentHandlerUseDB false, 
wgCommentTableSchemaMigrationStage OLD, opts page' => [
+                       [
+                               'wgContentHandlerUseDB' => false,
+                               'wgCommentTableSchemaMigrationStage' => 
MIGRATION_OLD,
+                       ],
+                       [ 'page' ],
+                       [
+                               'tables' => [ 'revision', 'page' ],
+                               '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' => 'rev_comment',
+                                       'rev_comment_data' => 'NULL',
+                                       'rev_comment_cid' => 'NULL',
+                                       'page_namespace',
+                                       'page_title',
+                                       'page_id',
+                                       'page_latest',
+                                       'page_is_redirect',
+                                       'page_len',
+                               ],
+                               'joins' => [
+                                       'page' => [
+                                               'INNER JOIN',
+                                               [ 'page_id = rev_page' ],
+                                       ],
+                               ],
+                       ],
+               ];
+               yield 'wgContentHandlerUseDB false, 
wgCommentTableSchemaMigrationStage OLD, opts user' => [
+                       [
+                               'wgContentHandlerUseDB' => false,
+                               'wgCommentTableSchemaMigrationStage' => 
MIGRATION_OLD,
+                       ],
+                       [ 'user' ],
+                       [
+                               'tables' => [ 'revision', 'user' ],
+                               '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' => 'rev_comment',
+                                       'rev_comment_data' => 'NULL',
+                                       'rev_comment_cid' => 'NULL',
+                                       'user_name',
+                               ],
+                               'joins' => [
+                                       'user' => [
+                                               'LEFT JOIN',
+                                               [
+                                                       'rev_user != 0',
+                                                       'user_id = rev_user',
+                                               ],
+                                       ],
+                               ],
+                       ],
+               ];
+               yield 'wgContentHandlerUseDB false, 
wgCommentTableSchemaMigrationStage OLD, opts text' => [
+                       [
+                               'wgContentHandlerUseDB' => false,
+                               'wgCommentTableSchemaMigrationStage' => 
MIGRATION_OLD,
+                       ],
+                       [ 'text' ],
+                       [
+                               'tables' => [ 'revision', 'text' ],
+                               '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' => 'rev_comment',
+                                       'rev_comment_data' => 'NULL',
+                                       'rev_comment_cid' => 'NULL',
+                                       'old_text',
+                                       'old_flags',
+                               ],
+                               'joins' => [
+                                       'text' => [
+                                               'INNER JOIN',
+                                               [ 'rev_text_id=old_id' ],
+                                       ],
+                               ],
+                       ],
+               ];
+               yield 'wgContentHandlerUseDB false, 
wgCommentTableSchemaMigrationStage OLD, opts 3' => [
+                       [
+                               'wgContentHandlerUseDB' => false,
+                               'wgCommentTableSchemaMigrationStage' => 
MIGRATION_OLD,
+                       ],
+                       [ 'text', 'page', 'user' ],
+                       [
+                               'tables' => [ 'revision', 'page', 'user', 
'text' ],
+                               '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' => 'rev_comment',
+                                       'rev_comment_data' => 'NULL',
+                                       'rev_comment_cid' => 'NULL',
+                                       'page_namespace',
+                                       'page_title',
+                                       'page_id',
+                                       'page_latest',
+                                       'page_is_redirect',
+                                       'page_len',
+                                       'user_name',
+                                       'old_text',
+                                       'old_flags',
+                               ],
+                               'joins' => [
+                                       'page' => [
+                                               'INNER JOIN',
+                                               [ 'page_id = rev_page' ],
+                                       ],
+                                       'user' => [
+                                               'LEFT JOIN',
+                                               [
+                                                       'rev_user != 0',
+                                                       'user_id = rev_user',
+                                               ],
+                                       ],
+                                       'text' => [
+                                               'INNER JOIN',
+                                               [ 'rev_text_id=old_id' ],
+                                       ],
+                               ],
+                       ],
+               ];
+               yield 'wgContentHandlerUseDB true, 
wgCommentTableSchemaMigrationStage OLD, opts none' => [
+                       [
+                               'wgContentHandlerUseDB' => true,
+                               'wgCommentTableSchemaMigrationStage' => 
MIGRATION_OLD,
+                       ],
+                       [],
+                       [
+                               'tables' => [ 'revision' ],
+                               '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' => 'rev_comment',
+                                       'rev_comment_data' => 'NULL',
+                                       'rev_comment_cid' => 'NULL',
+                                       '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',
+                                       ],
+                               ],
+                       ],
+               ];
+       }
+
+       /**
+        * @covers Revision::getQueryInfo
+        * @dataProvider provideGetQueryInfo
+        */
+       public function testGetQueryInfo( $globals, $options, $expected ) {
+               $this->setMwGlobals( $globals );
+               $this->assertEquals(
+                       $expected,
+                       Revision::getQueryInfo( $options )
+               );
+       }
+
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/392215
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5bdb5eed853e22bacd6b4c2546343e9d0f2d8c89
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to