From 15dc2f8eaafeb2ccfec848d4ce0770119494e067 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bartosz=20Dziewo=C5=84ski?= Date: Sun, 17 Sep 2017 17:05:40 +0000 Subject: [PATCH] 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 --- includes/Xml.php | 2 +- tests/phpunit/includes/XmlTest.php | 51 ++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) 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' + ); + } } -- 2.20.1