From: aude Date: Fri, 25 Jul 2014 07:30:09 +0000 (+0200) Subject: Split code for making test RecentChange objects into own class X-Git-Tag: 1.31.0-rc.0~14747 X-Git-Url: https://git.cyclocoop.org/%28%28?a=commitdiff_plain;h=5121b62fbe6dfef5cb58e06473c04e55c5ca4175;p=lhc%2Fweb%2Fwiklou.git Split code for making test RecentChange objects into own class this code is useful for adding tests of the other changes classes and better not to duplicate it. Change-Id: I464b4fbf39a0f47cb8911378b731cdd1672ecd86 --- diff --git a/tests/TestsAutoLoader.php b/tests/TestsAutoLoader.php index 37cf68f5ad..ec5cda6493 100644 --- a/tests/TestsAutoLoader.php +++ b/tests/TestsAutoLoader.php @@ -61,6 +61,9 @@ $wgAutoloadClasses += array( 'UserWrapper' => "$testDir/phpunit/includes/api/UserWrapper.php", 'RandomImageGenerator' => "$testDir/phpunit/includes/api/RandomImageGenerator.php", + # tests/phpunit/includes/changes + 'TestRecentChangesHelper' => "$testDir/phpunit/includes/changes/TestRecentChangesHelper.php", + # tests/phpunit/includes/content 'DummyContentHandlerForTesting' => "$testDir/phpunit/includes/content/ContentHandlerTest.php", 'DummyContentForTesting' => "$testDir/phpunit/includes/content/ContentHandlerTest.php", diff --git a/tests/phpunit/includes/changes/RCCacheEntryFactoryTest.php b/tests/phpunit/includes/changes/RCCacheEntryFactoryTest.php index d47cafef3a..f8a8140756 100644 --- a/tests/phpunit/includes/changes/RCCacheEntryFactoryTest.php +++ b/tests/phpunit/includes/changes/RCCacheEntryFactoryTest.php @@ -9,6 +9,18 @@ * @author Katie Filbert < aude.wiki@gmail.com > */ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase { + + /** + * @var TestRecentChangesHelper + */ + private $testRecentChangesHelper; + + public function __construct( $name = null, array $data = array(), $dataName = '' ) { + parent::__construct( $name, $data, $dataName ); + + $this->testRecentChangesHelper = new TestRecentChangesHelper(); + } + protected function setUp() { parent::setUp(); @@ -36,7 +48,7 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase { ); $this->assertEquals( $expected['unpatrolled'], $cacheEntry->unpatrolled, 'unpatrolled' ); - $this->assertUserLinks( 'Mary', $cacheEntry ); + $this->assertUserLinks( 'TestRecentChangesUser', $cacheEntry ); $this->assertTitleLink( 'Xyz', $cacheEntry ); $this->assertQueryLink( 'cur', $expected['cur'], $cacheEntry->curlink, 'cur link' ); @@ -45,11 +57,13 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase { } public function editChangeProvider() { + $user = $this->testRecentChangesHelper->getTestUser(); + return array( array( array( 'title' => 'Xyz', - 'user' => 'Mary', + 'user' => 'TestRecentChangesUser', 'diff' => array( 'curid' => 5, 'diff' => 191, 'oldid' => 190 ), 'cur' => array( 'curid' => 5, 'diff' => 0, 'oldid' => 191 ), 'timestamp' => '21:21', @@ -58,9 +72,9 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase { ), $this->getContext(), $this->getMessages(), - $this->makeEditRecentChange( + $this->testRecentChangesHelper->makeEditRecentChange( + $user, 'Xyz', - $this->getTestUser(), 5, // curid 191, // thisid 190, // lastid @@ -74,24 +88,6 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase { ); } - private function makeEditRecentChange( $title, $user, $curid, $thisid, $lastid, - $timestamp, $counter, $watchingUsers - ) { - - $attribs = array_merge( - $this->getDefaultAttributes( $title, $timestamp ), - array( - 'rc_user' => $user->getId(), - 'rc_user_text' => $user->getName(), - 'rc_this_oldid' => $thisid, - 'rc_last_oldid' => $lastid, - 'rc_cur_id' => $curid - ) - ); - - return $this->makeRecentChange( $attribs, $counter, $watchingUsers ); - } - /** * @dataProvider deleteChangeProvider */ @@ -110,7 +106,7 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase { $this->assertEquals( $expected['unpatrolled'], $cacheEntry->unpatrolled, 'unpatrolled' ); $this->assertDeleteLogLink( $cacheEntry ); - $this->assertUserLinks( 'Mary', $cacheEntry ); + $this->assertUserLinks( 'TestRecentChangesUser', $cacheEntry ); $this->assertEquals( 'cur', $cacheEntry->curlink, 'cur link for delete log or rev' ); $this->assertEquals( 'diff', $cacheEntry->difflink, 'diff link for delete log or rev' ); @@ -118,20 +114,22 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase { } public function deleteChangeProvider() { + $user = $this->testRecentChangesHelper->getTestUser(); + return array( array( array( 'title' => 'Abc', - 'user' => 'Mary', + 'user' => 'TestRecentChangesUser', 'timestamp' => '21:21', 'numberofWatchingusers' => 0, 'unpatrolled' => false ), $this->getContext(), $this->getMessages(), - $this->makeLogRecentChange( + $this->testRecentChangesHelper->makeLogRecentChange( + $user, 'Abc', - $this->getTestUser(), '20131103212153', 0, // counter 0 // number of watching users @@ -142,27 +140,6 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase { ); } - private function makeLogRecentChange( $title, $user, $timestamp, $counter, $watchingUsers ) { - $attribs = array_merge( - $this->getDefaultAttributes( $title, $timestamp ), - array( - 'rc_cur_id' => 0, - 'rc_user' => $user->getId(), - 'rc_user_text' => $user->getName(), - 'rc_this_oldid' => 0, - 'rc_last_oldid' => 0, - 'rc_old_len' => null, - 'rc_new_len' => null, - 'rc_type' => 3, - 'rc_logid' => 25, - 'rc_log_type' => 'delete', - 'rc_log_action' => 'delete' - ) - ); - - return $this->makeRecentChange( $attribs, $counter, $watchingUsers ); - } - /** * @dataProvider revUserDeleteProvider */ @@ -191,11 +168,13 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase { } public function revUserDeleteProvider() { + $user = $this->testRecentChangesHelper->getTestUser(); + return array( array( array( 'title' => 'Zzz', - 'user' => 'Mary', + 'user' => 'TestRecentChangesUser', 'diff' => '', 'cur' => '', 'timestamp' => '21:21', @@ -204,9 +183,9 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase { ), $this->getContext(), $this->getMessages(), - $this->makeDeletedEditRecentChange( + $this->testRecentChangesHelper->makeDeletedEditRecentChange( + $user, 'Zzz', - $this->getTestUser(), '20131103212153', 191, // thisid 190, // lastid @@ -220,24 +199,6 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase { ); } - private function makeDeletedEditRecentChange( $title, $user, $timestamp, $curid, $thisid, - $lastid, $counter, $watchingUsers - ) { - $attribs = array_merge( - $this->getDefaultAttributes( $title, $timestamp ), - array( - 'rc_user' => $user->getId(), - 'rc_user_text' => $user->getName(), - 'rc_deleted' => 5, - 'rc_cur_id' => $curid, - 'rc_this_oldid' => $thisid, - 'rc_last_oldid' => $lastid - ) - ); - - return $this->makeRecentChange( $attribs, $counter, $watchingUsers ); - } - private function assertUserLinks( $user, $cacheEntry ) { $this->assertTag( array( @@ -341,50 +302,6 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase { } } - private function makeRecentChange( $attribs, $counter, $watchingUsers ) { - $change = new RecentChange(); - $change->setAttribs( $attribs ); - $change->counter = $counter; - $change->numberofWatchingusers = $watchingUsers; - - return $change; - } - - private function getDefaultAttributes( $title, $timestamp ) { - return array( - 'rc_id' => 545, - 'rc_user' => 0, - 'rc_user_text' => '127.0.0.1', - 'rc_ip' => '127.0.0.1', - 'rc_title' => $title, - 'rc_namespace' => 0, - 'rc_timestamp' => $timestamp, - 'rc_old_len' => 212, - 'rc_new_len' => 188, - 'rc_comment' => '', - 'rc_minor' => 0, - 'rc_bot' => 0, - 'rc_type' => 0, - 'rc_patrolled' => 1, - 'rc_deleted' => 0, - 'rc_logid' => 0, - 'rc_log_type' => null, - 'rc_log_action' => '', - 'rc_params' => '', - 'rc_source' => 'mw.edit' - ); - } - - private function getTestUser() { - $user = User::newFromName( 'Mary' ); - - if ( !$user->getId() ) { - $user->addToDatabase(); - } - - return $user; - } - private function getMessages() { return array( 'cur' => 'cur', @@ -400,14 +317,10 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase { } private function getContext() { - $title = Title::newFromText( 'RecentChanges', NS_SPECIAL ); + $context = $this->testRecentChangesHelper->getTestContext(); - $context = new RequestContext(); + $title = Title::newFromText( 'RecentChanges', NS_SPECIAL ); $context->setTitle( $title ); - $context->setLanguage( Language::factory( 'en' ) ); - - $user = $this->getTestUser(); - $context->setUser( $user ); return $context; } diff --git a/tests/phpunit/includes/changes/TestRecentChangesHelper.php b/tests/phpunit/includes/changes/TestRecentChangesHelper.php new file mode 100644 index 0000000000..1f6b1e0ee2 --- /dev/null +++ b/tests/phpunit/includes/changes/TestRecentChangesHelper.php @@ -0,0 +1,123 @@ + + */ +class TestRecentChangesHelper { + + public function makeEditRecentChange( User $user, $titleText, $curid, $thisid, $lastid, + $timestamp, $counter, $watchingUsers + ) { + + $attribs = array_merge( + $this->getDefaultAttributes( $titleText, $timestamp ), + array( + 'rc_user' => $user->getId(), + 'rc_user_text' => $user->getName(), + 'rc_this_oldid' => $thisid, + 'rc_last_oldid' => $lastid, + 'rc_cur_id' => $curid + ) + ); + + return $this->makeRecentChange( $attribs, $counter, $watchingUsers ); + } + + public function makeLogRecentChange( User $user, $titleText, $timestamp, $counter, + $watchingUsers + ) { + $attribs = array_merge( + $this->getDefaultAttributes( $titleText, $timestamp ), + array( + 'rc_cur_id' => 0, + 'rc_user' => $user->getId(), + 'rc_user_text' => $user->getName(), + 'rc_this_oldid' => 0, + 'rc_last_oldid' => 0, + 'rc_old_len' => null, + 'rc_new_len' => null, + 'rc_type' => 3, + 'rc_logid' => 25, + 'rc_log_type' => 'delete', + 'rc_log_action' => 'delete' + ) + ); + + return $this->makeRecentChange( $attribs, $counter, $watchingUsers ); + } + + public function makeDeletedEditRecentChange( User $user, $titleText, $timestamp, $curid, + $thisid, $lastid, $counter, $watchingUsers + ) { + $attribs = array_merge( + $this->getDefaultAttributes( $titleText, $timestamp ), + array( + 'rc_user' => $user->getId(), + 'rc_user_text' => $user->getName(), + 'rc_deleted' => 5, + 'rc_cur_id' => $curid, + 'rc_this_oldid' => $thisid, + 'rc_last_oldid' => $lastid + ) + ); + + return $this->makeRecentChange( $attribs, $counter, $watchingUsers ); + } + + private function makeRecentChange( $attribs, $counter, $watchingUsers ) { + $change = new RecentChange(); + $change->setAttribs( $attribs ); + $change->counter = $counter; + $change->numberofWatchingusers = $watchingUsers; + + return $change; + } + + private function getDefaultAttributes( $titleText, $timestamp ) { + return array( + 'rc_id' => 545, + 'rc_user' => 0, + 'rc_user_text' => '127.0.0.1', + 'rc_ip' => '127.0.0.1', + 'rc_title' => $titleText, + 'rc_namespace' => 0, + 'rc_timestamp' => $timestamp, + 'rc_old_len' => 212, + 'rc_new_len' => 188, + 'rc_comment' => '', + 'rc_minor' => 0, + 'rc_bot' => 0, + 'rc_type' => 0, + 'rc_patrolled' => 1, + 'rc_deleted' => 0, + 'rc_logid' => 0, + 'rc_log_type' => null, + 'rc_log_action' => '', + 'rc_params' => '', + 'rc_source' => 'mw.edit' + ); + } + + public function getTestUser() { + $user = User::newFromName( 'TestRecentChangesUser' ); + + if ( !$user->getId() ) { + $user->addToDatabase(); + } + + return $user; + } + + public function getTestContext() { + $context = new RequestContext(); + $context->setLanguage( Language::factory( 'en' ) ); + + $user = $this->getTestUser(); + $context->setUser( $user ); + + return $context; + } +}