Improvements to RCCacheEntryFactoryTest and helper class
authoraude <aude.wiki@gmail.com>
Fri, 25 Jul 2014 13:05:39 +0000 (15:05 +0200)
committerLegoktm <legoktm.wikipedia@gmail.com>
Fri, 25 Jul 2014 22:51:55 +0000 (22:51 +0000)
* pass User as argument when making the test context
* override rc_source when applicable

Change-Id: Id2094978d9f5ba962e76de7df29638e15a7547c3

tests/phpunit/includes/changes/RCCacheEntryFactoryTest.php
tests/phpunit/includes/changes/TestRecentChangesHelper.php

index 3acc8ad..c3b8ce6 100644 (file)
@@ -57,8 +57,6 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase {
        }
 
        public function editChangeProvider() {
-               $user = $this->testRecentChangesHelper->getTestUser();
-
                return array(
                        array(
                                array(
@@ -73,7 +71,7 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase {
                                $this->getContext(),
                                $this->getMessages(),
                                $this->testRecentChangesHelper->makeEditRecentChange(
-                                       $user,
+                                       $this->getTestUser(),
                                        'Xyz',
                                        5, // curid
                                        191, // thisid
@@ -113,8 +111,6 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase {
        }
 
        public function deleteChangeProvider() {
-               $user = $this->testRecentChangesHelper->getTestUser();
-
                return array(
                        array(
                                array(
@@ -127,7 +123,8 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase {
                                $this->getContext(),
                                $this->getMessages(),
                                $this->testRecentChangesHelper->makeLogRecentChange(
-                                       $user,
+                                       'delete',
+                                       $this->getTestUser(),
                                        'Abc',
                                        '20131103212153',
                                        0, // counter
@@ -166,8 +163,6 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase {
        }
 
        public function revUserDeleteProvider() {
-               $user = $this->testRecentChangesHelper->getTestUser();
-
                return array(
                        array(
                                array(
@@ -182,7 +177,7 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase {
                                $this->getContext(),
                                $this->getMessages(),
                                $this->testRecentChangesHelper->makeDeletedEditRecentChange(
-                                       $user,
+                                       $this->getTestUser(),
                                        'Zzz',
                                        '20131103212153',
                                        191, // thisid
@@ -313,8 +308,19 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase {
                );
        }
 
+       private function getTestUser() {
+               $user = User::newFromName( 'TestRecentChangesUser' );
+
+               if ( !$user->getId() ) {
+                       $user->addToDatabase();
+               }
+
+               return $user;
+       }
+
        private function getContext() {
-               $context = $this->testRecentChangesHelper->getTestContext();
+               $user = $this->getTestUser();
+               $context = $this->testRecentChangesHelper->getTestContext( $user );
 
                $title = Title::newFromText( 'RecentChanges', NS_SPECIAL );
                $context->setTitle( $title );
index 1f6b1e0..bb6ebec 100644 (file)
@@ -26,7 +26,7 @@ class TestRecentChangesHelper {
                return $this->makeRecentChange( $attribs, $counter, $watchingUsers );
        }
 
-       public function makeLogRecentChange( User $user, $titleText, $timestamp, $counter,
+       public function makeLogRecentChange( $logType, User $user, $titleText, $timestamp, $counter,
                $watchingUsers
        ) {
                $attribs = array_merge(
@@ -41,8 +41,9 @@ class TestRecentChangesHelper {
                                'rc_new_len' => null,
                                'rc_type' => 3,
                                'rc_logid' => 25,
-                               'rc_log_type' => 'delete',
-                               'rc_log_action' => 'delete'
+                               'rc_log_type' => $logType,
+                               'rc_log_action' => $logType,
+                               'rc_source' => 'mw.log'
                        )
                );
 
@@ -67,6 +68,27 @@ class TestRecentChangesHelper {
                return $this->makeRecentChange( $attribs, $counter, $watchingUsers );
        }
 
+       public function makeNewBotEditRecentChange( 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,
+                               'rc_type' => 1,
+                               'rc_bot' => 1,
+                               'rc_source' => 'mw.new'
+                       )
+               );
+
+               return $this->makeRecentChange( $attribs, $counter, $watchingUsers );
+       }
+
        private function makeRecentChange( $attribs, $counter, $watchingUsers ) {
                $change = new RecentChange();
                $change->setAttribs( $attribs );
@@ -101,21 +123,10 @@ class TestRecentChangesHelper {
                );
        }
 
-       public function getTestUser() {
-               $user = User::newFromName( 'TestRecentChangesUser' );
-
-               if ( !$user->getId() ) {
-                       $user->addToDatabase();
-               }
-
-               return $user;
-       }
-
-       public function getTestContext() {
+       public function getTestContext( User $user ) {
                $context = new RequestContext();
                $context->setLanguage( Language::factory( 'en' ) );
 
-               $user = $this->getTestUser();
                $context->setUser( $user );
 
                return $context;