MediaWiki  1.28.0
XmlSelectTest.php
Go to the documentation of this file.
1 <?php
2 
7 
11  protected $select;
12 
13  protected function setUp() {
14  parent::setUp();
15  $this->select = new XmlSelect();
16  }
17 
18  protected function tearDown() {
19  parent::tearDown();
20  $this->select = null;
21  }
22 
26  public function testConstructWithoutParameters() {
27  $this->assertEquals( '<select></select>', $this->select->getHTML() );
28  }
29 
35  public function testConstructParameters( $name, $id, $default, $expected ) {
36  $this->select = new XmlSelect( $name, $id, $default );
37  $this->assertEquals( $expected, $this->select->getHTML() );
38  }
39 
48  public static function provideConstructionParameters() {
49  return [
55  # $name $id $default
56  [ false, false, false, '<select></select>' ],
57  [ false, false, 'foo', '<select></select>' ],
58  [ false, 'id', 'foo', '<select id="id"></select>' ],
59  [ false, 'id', false, '<select id="id"></select>' ],
60  [ 'name', 'id', false, '<select name="name" id="id"></select>' ],
61  [ 'name', 'id', 'foo', '<select name="name" id="id"></select>' ],
62  [ 'name', false, 'foo', '<select name="name"></select>' ],
63  [ 'name', false, false, '<select name="name"></select>' ],
64  ];
65  }
66 
70  public function testAddOption() {
71  $this->select->addOption( 'foo' );
72  $this->assertEquals(
73  '<select><option value="foo">foo</option></select>',
74  $this->select->getHTML()
75  );
76  }
77 
81  public function testAddOptionWithDefault() {
82  $this->select->addOption( 'foo', true );
83  $this->assertEquals(
84  '<select><option value="1">foo</option></select>',
85  $this->select->getHTML()
86  );
87  }
88 
92  public function testAddOptionWithFalse() {
93  $this->select->addOption( 'foo', false );
94  $this->assertEquals(
95  '<select><option value="foo">foo</option></select>',
96  $this->select->getHTML()
97  );
98  }
99 
103  public function testAddOptionWithValueZero() {
104  $this->select->addOption( 'foo', 0 );
105  $this->assertEquals(
106  '<select><option value="0">foo</option></select>',
107  $this->select->getHTML()
108  );
109  }
110 
114  public function testSetDefault() {
115  $this->select->setDefault( 'bar1' );
116  $this->select->addOption( 'foo1' );
117  $this->select->addOption( 'bar1' );
118  $this->select->addOption( 'foo2' );
119  $this->assertEquals(
120  '<select><option value="foo1">foo1</option>' . "\n" .
121  '<option value="bar1" selected="">bar1</option>' . "\n" .
122  '<option value="foo2">foo2</option></select>', $this->select->getHTML() );
123  }
124 
132  $this->select->addOption( 'foo1' );
133  $this->select->addOption( 'bar1' );
134  $this->select->addOption( 'foo2' );
135  $this->select->setDefault( 'bar1' ); # setting default after adding options
136  $this->assertEquals(
137  '<select><option value="foo1">foo1</option>' . "\n" .
138  '<option value="bar1" selected="">bar1</option>' . "\n" .
139  '<option value="foo2">foo2</option></select>', $this->select->getHTML() );
140  }
141 
146  public function testGetAttributes() {
147  # create some attributes
148  $this->select->setAttribute( 'dummy', 0x777 );
149  $this->select->setAttribute( 'string', 'euro €' );
150  $this->select->setAttribute( 1911, 'razor' );
151 
152  # verify we can retrieve them
153  $this->assertEquals(
154  $this->select->getAttribute( 'dummy' ),
155  0x777
156  );
157  $this->assertEquals(
158  $this->select->getAttribute( 'string' ),
159  'euro €'
160  );
161  $this->assertEquals(
162  $this->select->getAttribute( 1911 ),
163  'razor'
164  );
165 
166  # inexistent keys should give us 'null'
167  $this->assertEquals(
168  $this->select->getAttribute( 'I DO NOT EXIT' ),
169  null
170  );
171 
172  # verify string / integer
173  $this->assertEquals(
174  $this->select->getAttribute( '1911' ),
175  'razor'
176  );
177  $this->assertEquals(
178  $this->select->getAttribute( 'dummy' ),
179  0x777
180  );
181  }
182 }
testAddOptionWithDefault()
XmlSelect::addOption.
testConstructParameters($name, $id, $default, $expected)
Parameters are $name (false), $id (false), $default (false) provideConstructionParameters XmlSelect::...
Class for generating HTML