X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2Fskins%2FSkinTemplateTest.php;h=e8260ac2eeac7651d568464bbbc70796bd514e8a;hp=ff544cd23d484d09f523e56823d635b0db793402;hb=a0947c9507065a83afe52b078f0f6d1c6163875e;hpb=1d277b7c971ccb3857404e2db6131d0e3cf36d18 diff --git a/tests/phpunit/includes/skins/SkinTemplateTest.php b/tests/phpunit/includes/skins/SkinTemplateTest.php index ff544cd23d..e8260ac2ee 100644 --- a/tests/phpunit/includes/skins/SkinTemplateTest.php +++ b/tests/phpunit/includes/skins/SkinTemplateTest.php @@ -39,4 +39,64 @@ class SkinTemplateTest extends MediaWikiTestCase { ] ]; } + + /** + * @return PHPUnit_Framework_MockObject_MockObject|OutputPage + */ + private function getMockOutputPage( $isSyndicated, $html ) { + $mock = $this->getMockBuilder( OutputPage::class ) + ->disableOriginalConstructor() + ->getMock(); + $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 ); + } }