jenkins-bot has submitted this change and it was merged. Change subject: Add tests for DifferenceEngine for revision loading ......................................................................
Add tests for DifferenceEngine for revision loading Change-Id: Ia206b396e96b52ba9ac4895aae0f2839dca6f958 --- A tests/phpunit/includes/diff/DifferenceEngineTest.php 1 file changed, 120 insertions(+), 0 deletions(-) Approvals: MaxSem: Looks good to me, approved jenkins-bot: Verified diff --git a/tests/phpunit/includes/diff/DifferenceEngineTest.php b/tests/phpunit/includes/diff/DifferenceEngineTest.php new file mode 100644 index 0000000..a10c024 --- /dev/null +++ b/tests/phpunit/includes/diff/DifferenceEngineTest.php @@ -0,0 +1,120 @@ +<?php + +/** + * @covers DifferenceEngine + * + * @todo tests for the rest of DifferenceEngine! + * + * @group Database + * + * @licence GNU GPL v2+ + * @author Katie Filbert < [email protected] > + */ +class DifferenceEngineTest extends MediaWikiTestCase { + + protected $context; + + private static $revisions; + + public function setUp() { + parent::setUp(); + + $title = $this->getTitle(); + + $this->context = new RequestContext(); + $this->context->setTitle( $title ); + + if ( !self::$revisions ) { + self::$revisions = $this->doEdits(); + } + } + + /** + * @return Title + */ + protected function getTitle() { + $namespace = $this->getDefaultWikitextNS(); + return Title::newFromText( 'Kitten', $namespace ); + } + + /** + * @return int[] revision ids + */ + protected function doEdits() { + $title = $this->getTitle(); + $page = WikiPage::factory( $title ); + + $strings = array( "it is a kitten", "two kittens", "three kittens", "four kittens" ); + $revisions = array(); + + foreach( $strings as $string ) { + $content = ContentHandler::makeContent( $string, $title ); + $page->doEditContent( $content, 'edit page' ); + $revisions[] = $page->getLatest(); + } + + return $revisions; + } + + public function testMapDiffPrevNext() { + $cases = $this->getMapDiffPrevNextCases(); + + foreach( $cases as $case ) { + list( $expected, $old, $new, $message ) = $case; + + $diffEngine = new DifferenceEngine( $this->context, $old, $new, 2, true, false ); + $diffMap = $diffEngine->mapDiffPrevNext( $old, $new ); + $this->assertEquals( $expected, $diffMap, $message ); + } + } + + private function getMapDiffPrevNextCases() { + $revs = self::$revisions; + + return array( + array( array( $revs[1], $revs[2] ), $revs[2], 'prev', 'diff=prev' ), + array( array( $revs[2], $revs[3] ), $revs[2], 'next', 'diff=next' ), + array( array( $revs[1], $revs[3] ), $revs[1], $revs[3], 'diff=' . $revs[3] ) + ); + } + + public function testLoadRevisionData() { + $cases = $this->getLoadRevisionDataCases(); + + foreach( $cases as $case ) { + list( $expectedOld, $expectedNew, $old, $new, $message ) = $case; + + $diffEngine = new DifferenceEngine( $this->context, $old, $new, 2, true, false ); + $diffEngine->loadRevisionData(); + + $this->assertEquals( $diffEngine->mOldid, $expectedOld, $message ); + $this->assertEquals( $diffEngine->mNewid, $expectedNew, $message ); + } + } + + private function getLoadRevisionDataCases() { + $revs = self::$revisions; + + return array( + array( $revs[2], $revs[3], $revs[3], 'prev', 'diff=prev' ), + array( $revs[2], $revs[3], $revs[2], 'next', 'diff=next' ), + array( $revs[1], $revs[3], $revs[1], $revs[3], 'diff=' . $revs[3] ), + array( $revs[1], $revs[3], $revs[1], 0, 'diff=0' ) + ); + } + + public function testGetOldid() { + $revs = self::$revisions; + + $diffEngine = new DifferenceEngine( $this->context, $revs[1], $revs[2], 2, true, false ); + $this->assertEquals( $revs[1], $diffEngine->getOldid(), 'diff get old id' ); + } + + public function testGetNewid() { + $revs = self::$revisions; + + $diffEngine = new DifferenceEngine( $this->context, $revs[1], $revs[2], 2, true, false ); + $this->assertEquals( $revs[2], $diffEngine->getNewid(), 'diff get new id' ); + } + +} -- To view, visit https://gerrit.wikimedia.org/r/92503 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ia206b396e96b52ba9ac4895aae0f2839dca6f958 Gerrit-PatchSet: 3 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Aude <[email protected]> Gerrit-Reviewer: Addshore <[email protected]> Gerrit-Reviewer: Aude <[email protected]> Gerrit-Reviewer: Bartosz DziewoĆski <[email protected]> Gerrit-Reviewer: Daniel Kinzler <[email protected]> Gerrit-Reviewer: Hashar <[email protected]> Gerrit-Reviewer: Hoo man <[email protected]> Gerrit-Reviewer: MaxSem <[email protected]> Gerrit-Reviewer: jenkins-bot _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
