X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2Fskins%2FSkinTemplateTest.php;h=b843d17fbd26d896d1db4d63b671ea9d6654654e;hb=39cd742864b4cf225a0337843200c1b3558420a0;hp=9e3a62077396b5ae82c0db57af93a2add5e63116;hpb=0d167e2812e87625bae65b7e4825daa3cb3cb83f;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/includes/skins/SkinTemplateTest.php b/tests/phpunit/includes/skins/SkinTemplateTest.php index 9e3a620773..b843d17fbd 100644 --- a/tests/phpunit/includes/skins/SkinTemplateTest.php +++ b/tests/phpunit/includes/skins/SkinTemplateTest.php @@ -35,8 +35,66 @@ class SkinTemplateTest extends MediaWikiTestCase { 'text' => 'text' ], [], - 'Test makteListItem with normal values' + 'Test makeListItem with normal values' ] ]; } + + /** + * @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 ); + } }