createMock( OutputPage::class ); $output->expects( $this->once() ) ->method( 'addModules' ) ->with( 'mediawiki.checkboxtoggle' ); $output->expects( $this->once() ) ->method( 'addModuleStyles' ) ->with( 'mediawiki.checkboxtoggle.styles' ); new ListToggle( $output ); } /** * @covers ListToggle::getHTML */ public function testGetHTML() { $language = $this->createMock( Language::class ); $language->method( 'commaList' ) ->willReturnCallback( static function ( array $list ) { return implode( '(comma-separator)', $list ); } ); $output = $this->createMock( OutputPage::class ); $output->method( 'msg' ) ->willReturnCallback( static function ( $key ) { return new class( $key ) extends Message { protected function fetchMessage() { return "($this->key$*)"; } public function getLanguage() { return new class() extends LanguageQqx { public function __construct() { } public function getCode() { return 'qqx'; } }; } protected function transformText( $string ) { return $string; } }; } ); $output->expects( $this->once() ) ->method( 'getLanguage' ) ->willReturn( $language ); $listToggle = new ListToggle( $output ); $html = $listToggle->getHTML(); $this->assertEquals( '
' . '(checkbox-select: (checkbox-all)(comma-separator)' . '' . '(checkbox-none)(comma-separator)(checkbox-invert))
', $html ); } }