From: addshore Date: Fri, 20 Jan 2017 14:00:28 +0000 (+0000) Subject: Add tests for SkinTemplate::setupSkinUserCss X-Git-Tag: 1.31.0-rc.0~4207^2 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22upgrade%22%2C%22reinstall=non%22%29%20.%20%22?a=commitdiff_plain;h=3968dc9379cac78e4bc4698057383a1c3aee4ba1;p=lhc%2Fweb%2Fwiklou.git Add tests for SkinTemplate::setupSkinUserCss Change-Id: I2033a98c3934a6e246b91338fd13472c4def0ddb --- diff --git a/includes/skins/SkinTemplate.php b/includes/skins/SkinTemplate.php index 575a9acf77..578d41818a 100644 --- a/includes/skins/SkinTemplate.php +++ b/includes/skins/SkinTemplate.php @@ -61,7 +61,7 @@ class SkinTemplate extends Skin { * * @param OutputPage $out */ - function setupSkinUserCss( OutputPage $out ) { + public function setupSkinUserCss( OutputPage $out ) { $moduleStyles = [ 'mediawiki.legacy.shared', 'mediawiki.legacy.commonPrint', diff --git a/tests/phpunit/includes/skins/SkinTemplateTest.php b/tests/phpunit/includes/skins/SkinTemplateTest.php index ff544cd23d..b843d17fbd 100644 --- a/tests/phpunit/includes/skins/SkinTemplateTest.php +++ b/tests/phpunit/includes/skins/SkinTemplateTest.php @@ -39,4 +39,62 @@ class SkinTemplateTest extends MediaWikiTestCase { ] ]; } + + /** + * @return PHPUnit_Framework_MockObject_MockObject|OutputPage + */ + private function getMockOutputPage( $isSyndicated, $html ) { + $mock = $this->getMock( OutputPage::class ); + $mock->expects( $this->once() ) + ->method( 'isSyndicated' ) + ->will( $this->returnValue( $isSyndicated ) ); + $mock->expects( $this->once() ) + ->method( 'getHTML' ) + ->will( $this->returnValue( $html ) ); + return $mock; + } + + public function provideSetupSkinUserCss() { + $defaultStyles = [ + 'mediawiki.legacy.shared', + 'mediawiki.legacy.commonPrint', + 'mediawiki.sectionAnchor', + ]; + $buttonStyle = 'mediawiki.ui.button'; + $feedStyle = 'mediawiki.feedlink'; + return [ + [ + $this->getMockOutputPage( false, '' ), + $defaultStyles + ], + [ + $this->getMockOutputPage( true, '' ), + array_merge( $defaultStyles, [ $feedStyle ] ) + ], + [ + $this->getMockOutputPage( false, 'FOO mw-ui-button BAR' ), + array_merge( $defaultStyles, [ $buttonStyle ] ) + ], + [ + $this->getMockOutputPage( true, 'FOO mw-ui-button BAR' ), + array_merge( $defaultStyles, [ $feedStyle, $buttonStyle ] ) + ], + ]; + } + + /** + * @param PHPUnit_Framework_MockObject_MockObject|OutputPage $outputPageMock + * @param string[] $expectedModuleStyles + * + * @covers SkinTemplate::setupSkinUserCss + * @dataProvider provideSetupSkinUserCss + */ + public function testSetupSkinUserCss( $outputPageMock, $expectedModuleStyles ) { + $outputPageMock->expects( $this->once() ) + ->method( 'addModuleStyles' ) + ->with( $expectedModuleStyles ); + + $skinTemplate = new SkinTemplate(); + $skinTemplate->setupSkinUserCss( $outputPageMock ); + } }