X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2FXmlTest.php;h=c5572b46c6c79a68fa255152bfc80d47ae39261f;hb=d95a61abba0b9c2671629e2a62ec0d9b574a042b;hp=184dd438d260dd4554a00c7c6b8b075acc4c4a2b;hpb=6cdcc7416c64a635df9aa15170d2df13ecbbd82d;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/includes/XmlTest.php b/tests/phpunit/includes/XmlTest.php index 184dd438d2..c5572b46c6 100644 --- a/tests/phpunit/includes/XmlTest.php +++ b/tests/phpunit/includes/XmlTest.php @@ -397,4 +397,135 @@ class XmlTest extends MediaWikiTestCase { 'encodeJsVar() with float-like string' ); } + + /** + * @covers Xml::listDropDown + */ + public function testListDropDown() { + $this->assertEquals( + '', + Xml::listDropDown( + // name + 'test-name', + // source list + "* Foo\n** Foo 1\n** Example\n* Bar\n** Bar 1", + // other + 'other reasons', + // selected + 'Example', + // class + 'test-css', + // tabindex + 2 + ) + ); + } + + /** + * @covers Xml::listDropDownOptions + */ + public function testListDropDownOptions() { + $this->assertEquals( + [ + 'other reasons' => 'other', + 'Foo' => [ + 'Foo 1' => 'Foo 1', + 'Example' => 'Example', + ], + 'Bar' => [ + 'Bar 1' => 'Bar 1', + ], + ], + Xml::listDropDownOptions( + "* Foo\n** Foo 1\n** Example\n* Bar\n** Bar 1", + [ 'other' => 'other reasons' ] + ) + ); + } + + /** + * @covers Xml::listDropDownOptionsOoui + */ + public function testListDropDownOptionsOoui() { + $this->assertEquals( + [ + [ 'data' => 'other', 'label' => 'other reasons' ], + [ 'optgroup' => 'Foo' ], + [ 'data' => 'Foo 1', 'label' => 'Foo 1' ], + [ 'data' => 'Example', 'label' => 'Example' ], + [ 'optgroup' => 'Bar' ], + [ 'data' => 'Bar 1', 'label' => 'Bar 1' ], + ], + Xml::listDropDownOptionsOoui( [ + 'other reasons' => 'other', + 'Foo' => [ + 'Foo 1' => 'Foo 1', + 'Example' => 'Example', + ], + 'Bar' => [ + 'Bar 1' => 'Bar 1', + ], + ] ) + ); + } + + /** + * @covers Xml::fieldset + */ + public function testFieldset() { + $this->assertEquals( + "
\n", + Xml::fieldset(), + 'Opening tag' + ); + $this->assertEquals( + "
\n", + Xml::fieldset( false ), + 'Opening tag (false means no legend)' + ); + $this->assertEquals( + "
\n", + Xml::fieldset( '' ), + 'Opening tag (empty string also means no legend)' + ); + $this->assertEquals( + "
\nFoo\n", + Xml::fieldset( 'Foo' ), + 'Opening tag with legend' + ); + $this->assertEquals( + "
\nFoo\nBar\n
\n", + Xml::fieldset( 'Foo', 'Bar' ), + 'Entire element with legend' + ); + $this->assertEquals( + "
\nFoo\n", + Xml::fieldset( 'Foo', false ), + 'Opening tag with legend (false means no content and no closing tag)' + ); + $this->assertEquals( + "
\nFoo\n\n
\n", + Xml::fieldset( 'Foo', '' ), + 'Entire element with legend but no content (empty string generates a closing tag)' + ); + $this->assertEquals( + "
\nFoo\nBar\n
\n", + Xml::fieldset( 'Foo', 'Bar', [ 'class' => 'bar' ] ), + 'Opening tag with legend and attributes' + ); + $this->assertEquals( + "
\nFoo\n", + Xml::fieldset( 'Foo', false, [ 'class' => 'bar' ] ), + 'Entire element with legend and attributes' + ); + } }