From: Bartosz DziewoƄski Date: Sun, 17 Sep 2017 17:05:40 +0000 (+0000) Subject: Revert "Xml: Fix Xml::fieldset() when $content is not given" X-Git-Tag: 1.31.0-rc.0~2064^2 X-Git-Url: http://git.heureux-cyclage.org/?a=commitdiff_plain;h=15dc2f8eaafeb2ccfec848d4ce0770119494e067;p=lhc%2Fweb%2Fwiklou.git Revert "Xml: Fix Xml::fieldset() when $content is not given" Apparently that is intentional and documented. Huh. Whoops. This reverts commit 0f1cc3bb6e7c3be9b86d2c8736f7458cd40588f2. Also add test cases for this bizarre function. Change-Id: I0311f7c85cd575f2a66d50589ec364072be486fb --- diff --git a/includes/Xml.php b/includes/Xml.php index eadc7d14de..0091513125 100644 --- a/includes/Xml.php +++ b/includes/Xml.php @@ -615,9 +615,9 @@ class Xml { if ( $content !== false ) { $s .= $content . "\n"; + $s .= self::closeElement( 'fieldset' ) . "\n"; } - $s .= self::closeElement( 'fieldset' ) . "\n"; return $s; } diff --git a/tests/phpunit/includes/XmlTest.php b/tests/phpunit/includes/XmlTest.php index 25b754d2bc..c5572b46c6 100644 --- a/tests/phpunit/includes/XmlTest.php +++ b/tests/phpunit/includes/XmlTest.php @@ -477,4 +477,55 @@ class XmlTest extends MediaWikiTestCase { ] ) ); } + + /** + * @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' + ); + } }