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, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1a0d2d331c79df3e5505ae54d27f23e1cb5b910c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/PageImages
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <jrob...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to