[MediaWiki-commits] [Gerrit] mediawiki...PageImages[master]: Provide test case for getPageImageCandidates
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/325458 ) Change subject: Provide test case for getPageImageCandidates .. Provide test case for getPageImageCandidates Additional changes: * Add test @covers statements for existing tests for code coverage purposes Change-Id: I1a0d2d331c79df3e5505ae54d27f23e1cb5b910c --- M tests/phpunit/LinksUpdateHookHandlerTest.php 1 file changed, 64 insertions(+), 3 deletions(-) Approvals: Pmiazga: Looks good to me, but someone else must approve jenkins-bot: Verified Phuedx: Looks good to me, approved diff --git a/tests/phpunit/LinksUpdateHookHandlerTest.php b/tests/phpunit/LinksUpdateHookHandlerTest.php index 08a70d4..919f1a6 100644 --- a/tests/phpunit/LinksUpdateHookHandlerTest.php +++ b/tests/phpunit/LinksUpdateHookHandlerTest.php @@ -6,9 +6,10 @@ use PageImages; use PageImages\Hooks\LinksUpdateHookHandler; use ParserOutput; -use PHPUnit_Framework_TestCase; +use MediaWikiTestCase; use RepoGroup; use TestingAccessWrapper; +use Title; /** * @covers PageImages\Hooks\LinksUpdateHookHandler @@ -18,7 +19,7 @@ * @license WTFPL 2.0 * @author Thiemo Mättig */ -class LinksUpdateHookHandlerTest extends PHPUnit_Framework_TestCase { +class LinksUpdateHookHandlerTest extends MediaWikiTestCase { public function tearDown() { // remove mock added in testGetMetadata() @@ -28,18 +29,54 @@ /** * @param array $images +* @param [false|array] $images in lead section. (optional) * @return LinksUpdate */ - private function getLinksUpdate( array $images ) { + private function getLinksUpdate( array $images, $leadImages = false ) { $parserOutput = new ParserOutput(); $parserOutput->setExtensionData( 'pageImages', $images ); + $parserOutputLead = new ParserOutput(); + $parserOutputLead->setExtensionData( 'pageImages', $leadImages || $images ); + + $rev = $this->getMockBuilder( 'Revision' ) + ->disableOriginalConstructor() + ->getMock(); + + $content = $this->getMockBuilder( 'AbstractContent' ) + ->disableOriginalConstructor() + ->getMock(); + + $sectionContent = $this->getMockBuilder( 'AbstractContent' ) + ->disableOriginalConstructor() + ->getMock(); $linksUpdate = $this->getMockBuilder( 'LinksUpdate' ) ->disableOriginalConstructor() ->getMock(); + + $linksUpdate->expects( $this->any() ) + ->method( 'getTitle' ) + ->will( $this->returnValue( new Title( 'LinksUpdateHandlerTest' ) ) ); + $linksUpdate->expects( $this->any() ) ->method( 'getParserOutput' ) ->will( $this->returnValue( $parserOutput ) ); + + $linksUpdate->expects( $this->any() ) + ->method( 'getRevision' ) + ->will( $this->returnValue( $rev ) ); + + $rev->expects( $this->any() ) + ->method( 'getContent' ) + ->will( $this->returnValue( $content ) ); + + $content->expects( $this->any() ) + ->method( 'getSection' ) + ->will( $this->returnValue( $sectionContent ) ); + + $sectionContent->expects( $this->any() ) + ->method( 'getParserOutput' ) + ->will( $this->returnValue( $parserOutputLead ) ); return $linksUpdate; } @@ -69,6 +106,7 @@ /** * @dataProvider provideDoLinksUpdate +* @covers LinksUpdateHookHandler::doLinksUpdate * @param $images * @param $expectedFreeFileName * @param $expectedNonFreeFileName @@ -154,6 +192,27 @@ } /** +* @covers LinksUpdateHookHandler::getPageImageCandidates +*/ + public function testGetPageImageCandidates() { + $candidates = [ + [ 'filename' => 'A.jpg', 'score' => 100, 'isFree' => false ], + [ 'filename' => 'B.jpg', 'score' => 90, 'isFree' => false ], + ]; + $linksUpdate = $this->getLinksUpdate( $candidates, array_slice( $candidates, 0, 1 ) ); + + // should get without lead. + $handler = new LinksUpdateHookHandler(); + $this->setMwGlobals( 'wgPageImagesLeadSectionOnly', false ); + $images = $handler->getPageImageCandidates( $linksUpdate ); + $this->assertTrue( count( $images ) === 2, 'All images are returned.' ); + + $this->setMwGlobals( 'wgPa
[MediaWiki-commits] [Gerrit] mediawiki...PageImages[master]: Provide test case for getPageImageCandidates
Jdlrobson has uploaded a new change for review. https://gerrit.wikimedia.org/r/325458 Change subject: Provide test case for getPageImageCandidates .. Provide test case for getPageImageCandidates Change-Id: I1a0d2d331c79df3e5505ae54d27f23e1cb5b910c --- M tests/phpunit/LinksUpdateHookHandlerTest.php 1 file changed, 60 insertions(+), 4 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/PageImages refs/changes/58/325458/1 diff --git a/tests/phpunit/LinksUpdateHookHandlerTest.php b/tests/phpunit/LinksUpdateHookHandlerTest.php index 5655633..b43f6bb 100644 --- a/tests/phpunit/LinksUpdateHookHandlerTest.php +++ b/tests/phpunit/LinksUpdateHookHandlerTest.php @@ -6,10 +6,10 @@ use PageImages; use PageImages\Hooks\LinksUpdateHookHandler; use ParserOutput; -use PHPUnit_Framework_TestCase; +use MediaWikiTestCase; use RepoGroup; use TestingAccessWrapper; - +use Title; /** * @covers PageImages\Hooks\LinksUpdateHookHandler @@ -19,7 +19,7 @@ * @license WTFPL 2.0 * @author Thiemo Mättig */ -class LinksUpdateHookHandlerTest extends PHPUnit_Framework_TestCase { +class LinksUpdateHookHandlerTest extends MediaWikiTestCase { public function tearDown() { // remove mock added in testGetMetadata() @@ -29,18 +29,54 @@ /** * @param array $images +* @param [false|array] $images in lead section. (optional) * @return LinksUpdate */ - private function getLinksUpdate( array $images ) { + private function getLinksUpdate( array $images, $leadImages = false ) { $parserOutput = new ParserOutput(); $parserOutput->setExtensionData( 'pageImages', $images ); + $parserOutputLead = new ParserOutput(); + $parserOutputLead->setExtensionData( 'pageImages', $leadImages || $images ); + + $rev = $this->getMockBuilder( 'Revision' ) + ->disableOriginalConstructor() + ->getMock(); + + $content = $this->getMockBuilder( 'AbstractContent' ) + ->disableOriginalConstructor() + ->getMock(); + + $sectionContent = $this->getMockBuilder( 'AbstractContent' ) + ->disableOriginalConstructor() + ->getMock(); $linksUpdate = $this->getMockBuilder( 'LinksUpdate' ) ->disableOriginalConstructor() ->getMock(); + + $linksUpdate->expects( $this->any() ) + ->method( 'getTitle' ) + ->will( $this->returnValue( new Title( 'LinksUpdateHandlerTest' ) ) ); + $linksUpdate->expects( $this->any() ) ->method( 'getParserOutput' ) ->will( $this->returnValue( $parserOutput ) ); + + $linksUpdate->expects( $this->any() ) + ->method( 'getRevision' ) + ->will( $this->returnValue( $rev ) ); + + $rev->expects( $this->any() ) + ->method( 'getContent' ) + ->will( $this->returnValue( $content ) ); + + $content->expects( $this->any() ) + ->method( 'getSection' ) + ->will( $this->returnValue( $sectionContent ) ); + + $sectionContent->expects( $this->any() ) + ->method( 'getParserOutput' ) + ->will( $this->returnValue( $parserOutputLead ) ); return $linksUpdate; } @@ -155,6 +191,26 @@ } /** +*/ + public function testGetPageImageCandidates() { + $candidates = [ + [ 'filename' => 'A.jpg', 'score' => 100, 'isFree' => false ], + [ 'filename' => 'B.jpg', 'score' => 90, 'isFree' => false ], + ]; + $linksUpdate = $this->getLinksUpdate( $candidates, array_slice( $candidates, 0, 1 ) ); + + // should get without lead. + $handler = new LinksUpdateHookHandler(); + $this->setMwGlobals( 'wgPageImagesLeadSectionOnly', false ); + $images = $handler->getPageImageCandidates( $linksUpdate ); + $this->assertTrue( count( $images ) === 2, 'All images are returned.' ); + + $this->setMwGlobals( 'wgPageImagesLeadSectionOnly', true ); + $images = $handler->getPageImageCandidates( $linksUpdate ); + $this->assertTrue( count( $images ) === 1, 'Only lead images are returned.' ); + } + + /** * @dataProvider provideGetScore */ public function testGetScore( $image, $scoreFromTable, $position, $expected ) { -- To view, visit https://gerrit.wikimedia.org/r/325458 To unsubscribe, v