From b2ff18b9ed04fb20dfbf5675c8a3884c704d13bc Mon Sep 17 00:00:00 2001 From: addshore Date: Sat, 18 Nov 2017 17:49:22 +0000 Subject: [PATCH] [MCR] Readd various field & cond method tests for Revision This is a partial revert of: Idcfd15568489d9f03a7ba4460e96610d33bc4089 which removed these tests. Bug: T180210 Change-Id: Ib0617ee0a7bd4391ed25415b44a8ed077a985eaa --- tests/phpunit/includes/RevisionTest.php | 179 ++++++++++++++++++++++++ 1 file changed, 179 insertions(+) diff --git a/tests/phpunit/includes/RevisionTest.php b/tests/phpunit/includes/RevisionTest.php index b7e410c14d..a4f55d0ab1 100644 --- a/tests/phpunit/includes/RevisionTest.php +++ b/tests/phpunit/includes/RevisionTest.php @@ -577,4 +577,183 @@ class RevisionTest extends MediaWikiTestCase { $this->assertSame( 'AAAABBAAA', $cache->get( $cacheKey ) ); } + /** + * @covers Revision::userJoinCond + */ + public function testUserJoinCond() { + $this->hideDeprecated( 'Revision::userJoinCond' ); + $this->assertEquals( + [ 'LEFT JOIN', [ 'rev_user != 0', 'user_id = rev_user' ] ], + Revision::userJoinCond() + ); + } + + /** + * @covers Revision::pageJoinCond + */ + public function testPageJoinCond() { + $this->hideDeprecated( 'Revision::pageJoinCond' ); + $this->assertEquals( + [ 'INNER JOIN', [ 'page_id = rev_page' ] ], + Revision::pageJoinCond() + ); + } + + public function provideSelectFields() { + yield [ + true, + [ + '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', + ] + ]; + yield [ + false, + [ + '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', + ] + ]; + } + + /** + * @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 ); + $this->assertEquals( $expected, Revision::selectFields() ); + } + + public function provideSelectArchiveFields() { + yield [ + true, + [ + 'ar_id', + 'ar_page_id', + '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', + ] + ]; + yield [ + false, + [ + 'ar_id', + 'ar_page_id', + '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', + ] + ]; + } + + /** + * @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 ); + $this->assertEquals( $expected, Revision::selectArchiveFields() ); + } + + /** + * @covers Revision::selectTextFields + */ + public function testSelectTextFields() { + $this->hideDeprecated( 'Revision::selectTextFields' ); + $this->assertEquals( + [ + 'old_text', + 'old_flags', + ], + Revision::selectTextFields() + ); + } + + /** + * @covers Revision::selectPageFields + */ + public function testSelectPageFields() { + $this->hideDeprecated( 'Revision::selectPageFields' ); + $this->assertEquals( + [ + 'page_namespace', + 'page_title', + 'page_id', + 'page_latest', + 'page_is_redirect', + 'page_len', + ], + Revision::selectPageFields() + ); + } + + /** + * @covers Revision::selectUserFields + */ + public function testSelectUserFields() { + $this->hideDeprecated( 'Revision::selectUserFields' ); + $this->assertEquals( + [ + 'user_name', + ], + Revision::selectUserFields() + ); + } + } -- 2.20.1