class XmlTest extends MediaWikiTestCase {
private static $oldLang;
+ private static $oldNamespaces;
- public function setUp() {
- global $wgLang, $wgLanguageCode;
-
- self::$oldLang = $wgLang;
- $wgLanguageCode = 'en';
- $wgLang = Language::factory( $wgLanguageCode );
- }
-
- public function tearDown() {
- global $wgLang, $wgLanguageCode;
- $wgLang = self::$oldLang;
- $wgLanguageCode = $wgLang->getCode();
+ protected function setUp() {
+ parent::setUp();
+
+ $langObj = Language::factory( 'en' );
+ $langObj->setNamespaces( array(
+ -2 => 'Media',
+ -1 => 'Special',
+ 0 => '',
+ 1 => 'Talk',
+ 2 => 'User',
+ 3 => 'User_talk',
+ 4 => 'MyWiki',
+ 5 => 'MyWiki_Talk',
+ 6 => 'File',
+ 7 => 'File_talk',
+ 8 => 'MediaWiki',
+ 9 => 'MediaWiki_talk',
+ 10 => 'Template',
+ 11 => 'Template_talk',
+ 100 => 'Custom',
+ 101 => 'Custom_talk',
+ ) );
+
+ $this->setMwGlobals( array(
+ 'wgLang' => $langObj,
+ ) );
}
public function testExpandAttributes() {
$nextMonth = $curMonth + 1;
if( $nextMonth == 13 ) { $nextMonth = 1; }
-
$this->assertEquals(
- '<label for="year">From year (and earlier):</label> <input name="year" size="4" value="2011" id="year" maxlength="4" /> <label for="month">From month (and earlier):</label> <select id="month" name="month" class="mw-month-selector"><option value="-1">all</option>
-<option value="1">January</option>
-<option value="2" selected="selected">February</option>
-<option value="3">March</option>
-<option value="4">April</option>
-<option value="5">May</option>
-<option value="6">June</option>
-<option value="7">July</option>
-<option value="8">August</option>
-<option value="9">September</option>
-<option value="10">October</option>
-<option value="11">November</option>
-<option value="12">December</option></select>',
+ '<label for="year">From year (and earlier):</label> <input id="year" maxlength="4" size="7" type="number" value="2011" name="year" /> <label for="month">From month (and earlier):</label> <select id="month" name="month" class="mw-month-selector"><option value="-1">all</option>' . "\n" .
+'<option value="1">January</option>' . "\n" .
+'<option value="2" selected="">February</option>' . "\n" .
+'<option value="3">March</option>' . "\n" .
+'<option value="4">April</option>' . "\n" .
+'<option value="5">May</option>' . "\n" .
+'<option value="6">June</option>' . "\n" .
+'<option value="7">July</option>' . "\n" .
+'<option value="8">August</option>' . "\n" .
+'<option value="9">September</option>' . "\n" .
+'<option value="10">October</option>' . "\n" .
+'<option value="11">November</option>' . "\n" .
+'<option value="12">December</option></select>',
Xml::dateMenu( 2011, 02 ),
"Date menu for february 2011"
);
$this->assertEquals(
- '<label for="year">From year (and earlier):</label> <input name="year" size="4" value="2011" id="year" maxlength="4" /> <label for="month">From month (and earlier):</label> <select id="month" name="month" class="mw-month-selector"><option value="-1">all</option>
-<option value="1">January</option>
-<option value="2">February</option>
-<option value="3">March</option>
-<option value="4">April</option>
-<option value="5">May</option>
-<option value="6">June</option>
-<option value="7">July</option>
-<option value="8">August</option>
-<option value="9">September</option>
-<option value="10">October</option>
-<option value="11">November</option>
-<option value="12">December</option></select>',
+ '<label for="year">From year (and earlier):</label> <input id="year" maxlength="4" size="7" type="number" value="2011" name="year" /> <label for="month">From month (and earlier):</label> <select id="month" name="month" class="mw-month-selector"><option value="-1">all</option>' . "\n" .
+'<option value="1">January</option>' . "\n" .
+'<option value="2">February</option>' . "\n" .
+'<option value="3">March</option>' . "\n" .
+'<option value="4">April</option>' . "\n" .
+'<option value="5">May</option>' . "\n" .
+'<option value="6">June</option>' . "\n" .
+'<option value="7">July</option>' . "\n" .
+'<option value="8">August</option>' . "\n" .
+'<option value="9">September</option>' . "\n" .
+'<option value="10">October</option>' . "\n" .
+'<option value="11">November</option>' . "\n" .
+'<option value="12">December</option></select>',
Xml::dateMenu( 2011, -1),
"Date menu with negative month for 'All'"
);
Xml::dateMenu( '' , $curMonth ),
"Date menu year is the current one when not specified"
);
+
+ $wantedYear = $nextMonth == 1 ? $curYear : $prevYear;
$this->assertEquals(
- Xml::dateMenu( $prevYear, $nextMonth ),
+ Xml::dateMenu( $wantedYear, $nextMonth ),
Xml::dateMenu( '', $nextMonth ),
"Date menu next month is 11 months ago"
);
- # @todo FIXME: Please note there is no year there!
$this->assertEquals(
- '<label for="year">From year (and earlier):</label> <input name="year" size="4" value="" id="year" maxlength="4" /> <label for="month">From month (and earlier):</label> <select id="month" name="month" class="mw-month-selector"><option value="-1">all</option>
-<option value="1">January</option>
-<option value="2">February</option>
-<option value="3">March</option>
-<option value="4">April</option>
-<option value="5">May</option>
-<option value="6">June</option>
-<option value="7">July</option>
-<option value="8">August</option>
-<option value="9">September</option>
-<option value="10">October</option>
-<option value="11">November</option>
-<option value="12">December</option></select>',
- Xml::dateMenu( '', ''),
+ '<label for="year">From year (and earlier):</label> <input id="year" maxlength="4" size="7" type="number" name="year" /> <label for="month">From month (and earlier):</label> <select id="month" name="month" class="mw-month-selector"><option value="-1">all</option>' . "\n" .
+'<option value="1">January</option>' . "\n" .
+'<option value="2">February</option>' . "\n" .
+'<option value="3">March</option>' . "\n" .
+'<option value="4">April</option>' . "\n" .
+'<option value="5">May</option>' . "\n" .
+'<option value="6">June</option>' . "\n" .
+'<option value="7">July</option>' . "\n" .
+'<option value="8">August</option>' . "\n" .
+'<option value="9">September</option>' . "\n" .
+'<option value="10">October</option>' . "\n" .
+'<option value="11">November</option>' . "\n" .
+'<option value="12">December</option></select>',
+ Xml::dateMenu( '', '' ),
"Date menu with neither year or month"
);
}
);
}
+ function testLanguageSelector() {
+ $select = Xml::languageSelector( 'en', true, null,
+ array( 'id' => 'testlang' ), wfMessage( 'yourlanguage' ) );
+ $this->assertEquals(
+ '<label for="testlang">Language:</label>',
+ $select[0]
+ );
+ }
+
#
# JS
#
function testEncodeJsVarArray() {
$this->assertEquals(
- '["a", 1]',
+ '["a",1]',
Xml::encodeJsVar( array( 'a', 1 ) ),
'encodeJsVar() with array'
);
$this->assertEquals(
- '{"a": "a", "b": 1}',
+ '{"a":"a","b":1}',
Xml::encodeJsVar( array( 'a' => 'a', 'b' => 1 ) ),
'encodeJsVar() with associative array'
);
function testEncodeJsVarObject() {
$this->assertEquals(
- '{"a": "a", "b": 1}',
+ '{"a":"a","b":1}',
Xml::encodeJsVar( (object)array( 'a' => 'a', 'b' => 1 ) ),
'encodeJsVar() with object'
);