From b102435731d1686a488c2a08a3ae6002fb687b9d Mon Sep 17 00:00:00 2001 From: addshore Date: Mon, 29 Feb 2016 22:54:01 +0000 Subject: [PATCH] Add CategoryMembershipChangeJobTest Change-Id: Ia04bb85260be7d2aaaf171a2c886633b66ee6e77 --- .../jobs/CategoryMembershipChangeJobTest.php | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 tests/phpunit/includes/jobqueue/jobs/CategoryMembershipChangeJobTest.php diff --git a/tests/phpunit/includes/jobqueue/jobs/CategoryMembershipChangeJobTest.php b/tests/phpunit/includes/jobqueue/jobs/CategoryMembershipChangeJobTest.php new file mode 100644 index 0000000000..50a24ada24 --- /dev/null +++ b/tests/phpunit/includes/jobqueue/jobs/CategoryMembershipChangeJobTest.php @@ -0,0 +1,86 @@ +setMwGlobals( 'wgRCWatchCategoryMembership', true ); + } + + public function addDBData() { + parent::addDBData(); + $insertResult = $this->insertPage( self::TITLE_STRING, 'UT Content' ); + $this->title = $insertResult['title']; + } + + private function runJobs() { + JobQueueGroup::destroySingletons(); + $jobs = new RunJobs; + $jobs->loadParamsAndArgs( null, [ 'quiet' => true ], null ); + $jobs->execute(); + } + + /** + * @param string $text new page text + * + * @return int|null + */ + private function editPageText( $text ) { + $page = WikiPage::factory( $this->title ); + $editResult = $page->doEditContent( + ContentHandler::makeContent( $text, $this->title ), + __METHOD__ + ); + /** @var Revision $revision */ + $revision = $editResult->value['revision']; + $this->runJobs(); + + return $revision->getId(); + } + + /** + * @param int $revId + * + * @return RecentChange|null + */ + private function getCategorizeRecentChangeForRevId( $revId ) { + return RecentChange::newFromConds( + [ + 'rc_type' => RC_CATEGORIZE, + 'rc_this_oldid' => $revId, + ], + __METHOD__ + ); + } + + public function testRun_normalCategoryAddedAndRemoved() { + $addedRevId = $this->editPageText( '[[Category:Normal]]' ); + $removedRevId = $this->editPageText( 'Blank' ); + + $this->assertEquals( + '[[:' . self::TITLE_STRING . ']] added to category', + $this->getCategorizeRecentChangeForRevId( $addedRevId )->getAttribute( 'rc_comment' ) + ); + $this->assertEquals( + '[[:' . self::TITLE_STRING . ']] removed from category', + $this->getCategorizeRecentChangeForRevId( $removedRevId )->getAttribute( 'rc_comment' ) + ); + } + +} -- 2.20.1