Merge "resourceloader: Remove $wgResourceLoaderLESSVars support"
[lhc/web/wiklou.git] / tests / phpunit / includes / XmlSelectTest.php
index 08c031f..52e20bd 100644 (file)
@@ -1,14 +1,17 @@
 <?php
 
-// TODO
+/**
+ * @group Xml
+ */
 class XmlSelectTest extends MediaWikiTestCase {
+
+       /**
+        * @var XmlSelect
+        */
        protected $select;
 
        protected function setUp() {
                parent::setUp();
-               $this->setMwGlobals( array(
-                       'wgWellFormedXml' => true,
-               ) );
                $this->select = new XmlSelect();
        }
 
@@ -17,8 +20,9 @@ class XmlSelectTest extends MediaWikiTestCase {
                $this->select = null;
        }
 
-       ### START OF TESTS ###
-
+       /**
+        * @covers XmlSelect::__construct
+        */
        public function testConstructWithoutParameters() {
                $this->assertEquals( '<select></select>', $this->select->getHTML() );
        }
@@ -26,6 +30,7 @@ class XmlSelectTest extends MediaWikiTestCase {
        /**
         * Parameters are $name (false), $id (false), $default (false)
         * @dataProvider provideConstructionParameters
+        * @covers XmlSelect::__construct
         */
        public function testConstructParameters( $name, $id, $default, $expected ) {
                $this->select = new XmlSelect( $name, $id, $default );
@@ -39,50 +44,73 @@ class XmlSelectTest extends MediaWikiTestCase {
         *  - $id      (default: false)
         *  - $default (default: false)
         * Provides a fourth parameters representing the expected HTML output
-        *
         */
        public static function provideConstructionParameters() {
-               return array(
+               return [
                        /**
                         * Values are set following a 3-bit Gray code where two successive
                         * values differ by only one value.
-                        * See http://en.wikipedia.org/wiki/Gray_code
+                        * See https://en.wikipedia.org/wiki/Gray_code
                         */
                        #      $name   $id    $default
-                       array( false, false, false, '<select></select>' ),
-                       array( false, false, 'foo', '<select></select>' ),
-                       array( false, 'id', 'foo', '<select id="id"></select>' ),
-                       array( false, 'id', false, '<select id="id"></select>' ),
-                       array( 'name', 'id', false, '<select name="name" id="id"></select>' ),
-                       array( 'name', 'id', 'foo', '<select name="name" id="id"></select>' ),
-                       array( 'name', false, 'foo', '<select name="name"></select>' ),
-                       array( 'name', false, false, '<select name="name"></select>' ),
-               );
+                       [ false, false, false, '<select></select>' ],
+                       [ false, false, 'foo', '<select></select>' ],
+                       [ false, 'id', 'foo', '<select id="id"></select>' ],
+                       [ false, 'id', false, '<select id="id"></select>' ],
+                       [ 'name', 'id', false, '<select name="name" id="id"></select>' ],
+                       [ 'name', 'id', 'foo', '<select name="name" id="id"></select>' ],
+                       [ 'name', false, 'foo', '<select name="name"></select>' ],
+                       [ 'name', false, false, '<select name="name"></select>' ],
+               ];
        }
 
-       # Begin XmlSelect::addOption() similar to Xml::option
+       /**
+        * @covers XmlSelect::addOption
+        */
        public function testAddOption() {
                $this->select->addOption( 'foo' );
-               $this->assertEquals( '<select><option value="foo">foo</option></select>', $this->select->getHTML() );
+               $this->assertEquals(
+                       '<select><option value="foo">foo</option></select>',
+                       $this->select->getHTML()
+               );
        }
 
+       /**
+        * @covers XmlSelect::addOption
+        */
        public function testAddOptionWithDefault() {
                $this->select->addOption( 'foo', true );
-               $this->assertEquals( '<select><option value="1">foo</option></select>', $this->select->getHTML() );
+               $this->assertEquals(
+                       '<select><option value="1">foo</option></select>',
+                       $this->select->getHTML()
+               );
        }
 
+       /**
+        * @covers XmlSelect::addOption
+        */
        public function testAddOptionWithFalse() {
                $this->select->addOption( 'foo', false );
-               $this->assertEquals( '<select><option value="foo">foo</option></select>', $this->select->getHTML() );
+               $this->assertEquals(
+                       '<select><option value="foo">foo</option></select>',
+                       $this->select->getHTML()
+               );
        }
 
+       /**
+        * @covers XmlSelect::addOption
+        */
        public function testAddOptionWithValueZero() {
                $this->select->addOption( 'foo', 0 );
-               $this->assertEquals( '<select><option value="0">foo</option></select>', $this->select->getHTML() );
+               $this->assertEquals(
+                       '<select><option value="0">foo</option></select>',
+                       $this->select->getHTML()
+               );
        }
 
-       # End XmlSelect::addOption() similar to Xml::option
-
+       /**
+        * @covers XmlSelect::setDefault
+        */
        public function testSetDefault() {
                $this->select->setDefault( 'bar1' );
                $this->select->addOption( 'foo1' );
@@ -98,6 +126,7 @@ class XmlSelectTest extends MediaWikiTestCase {
         * Adding default later on should set the correct selection or
         * raise an exception.
         * To handle this, we need to render the options in getHtml()
+        * @covers XmlSelect::setDefault
         */
        public function testSetDefaultAfterAddingOptions() {
                $this->select->addOption( 'foo1' );
@@ -110,6 +139,10 @@ class XmlSelectTest extends MediaWikiTestCase {
                                '<option value="foo2">foo2</option></select>', $this->select->getHTML() );
        }
 
+       /**
+        * @covers XmlSelect::setAttribute
+        * @covers XmlSelect::getAttribute
+        */
        public function testGetAttributes() {
                # create some attributes
                $this->select->setAttribute( 'dummy', 0x777 );
@@ -130,7 +163,7 @@ class XmlSelectTest extends MediaWikiTestCase {
                        'razor'
                );
 
-               # inexistant keys should give us 'null'
+               # inexistent keys should give us 'null'
                $this->assertEquals(
                        $this->select->getAttribute( 'I DO NOT EXIT' ),
                        null