assertIsBool( $instance->hasContents() ); } public function testTab_Contents() { $instance = new HtmlTabs(); $instance->setActiveTab( 'foo' ); $instance->tab( 'foo', 'FOO' ); $instance->content( 'foo', '< ... bar ... >' ); $actual = $instance->buildHTML( [ 'class' => 'foo-bar' ] ); // MW 1.39-1.40 produces self-closing tag, which is invalid HTML $actual = str_replace( '/>', '>', $actual ); $this->assertContains( '
' . '' . '' . '
< ... bar ... >
' . '
', $actual ); } public function testTab_Contents_Subtab() { if ( version_compare( MW_VERSION, '1.41', '>=' ) ) { $this->markTestSkipped( 'Check assertions for MW 1.41 and higher versions.' ); } $instance = new HtmlTabs(); $instance->setActiveTab( 'foo' ); $instance->isSubTab(); $instance->tab( 'foo', 'FOO' ); $instance->content( 'foo', '< ... bar ... >' ); $actual = $instance->buildHTML( [ 'class' => 'foo-bar' ] ); // MW 1.39-1.40 produces self-closing tag, which is invalid HTML $actual = str_replace( htmlspecialchars( '/>' ), htmlspecialchars( '>' ), $actual ); $this->assertContains( '
' . '
< ... bar ... >
', $actual ); } public function testTab_Contents_AutoChecked() { $instance = new HtmlTabs(); $instance->tab( 'foo', 'FOO' ); $instance->content( 'foo', '< ... bar ... >' ); $actual = $instance->buildHTML( [ 'class' => 'foo-bar' ] ); // MW 1.39-1.40 produces self-closing tag, which is invalid HTML $actual = str_replace( '/>', '>', $actual ); $this->assertContains( '
' . '' . '' . '
< ... bar ... >
' . '
', $actual ); } public function testTab_Contents_Hidden() { $instance = new HtmlTabs(); $instance->tab( 'foo', 'FOO', [ 'hide' => true ] ); $instance->content( 'foo', '< ... bar ... >' ); $this->assertContains( '
', $instance->buildHTML( [ 'class' => 'foo-bar' ] ) ); } public function testTab_WithExtraHtml() { $instance = new HtmlTabs(); $instance->tab( 'foo', 'FOO' ); $instance->content( 'foo', '< ... bar ... >' ); $instance->html( 'Foobar' ); $this->assertContains( 'Foobar', $instance->buildHTML() ); } public function testIsRTL() { $instance = new HtmlTabs(); $instance->isRTL( true ); $instance->tab( 'foo', 'FOO' ); $instance->content( 'foo', '< ... bar ... >' ); $this->assertContains( '
', $instance->buildHTML() ); } }