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
