* Making Language::namespaceNames explicitly public. It already was but since is being used as such outside the class
var $mMagicExtensions = array(), $mMagicHookDone = false;
private $mHtmlCode = null;
- var $mNamespaceIds, $namespaceNames, $namespaceAliases;
+ var $mNamespaceIds, $namespaceAliases;
var $dateFormatStrings = array();
var $mExtendedSpecialPageAliases;
+ public $namespaceNames;
+
/**
* ReplacementArray object caches
*/
class XmlTest extends MediaWikiTestCase {
private static $oldLang;
+ private static $oldNamespaces;
public function setUp() {
- global $wgLang;
+ global $wgLang, $wgContLang;
self::$oldLang = $wgLang;
$wgLang = Language::factory( 'en' );
+
+ // Hardcode namespaces during test runs,
+ // so that html output based on existing namespaces
+ // can be properly evaluated.
+ self::$oldNamespaces = $wgContLang->namespaceNames;
+ $wgContLang->namespaceNames = 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',
+ );
}
public function tearDown() {
- global $wgLang;
+ global $wgLang, $wgContLang;
$wgLang = self::$oldLang;
+ $wgContLang->namespaceNames = self::$oldNamespaces;
}
public function testExpandAttributes() {
);
}
+ function testNamespaceSelector() {
+ $this->assertEquals(
+ '<select id="namespace" name="namespace" class="namespaceselector">
+<option value="0">(Main)</option>
+<option value="1">Talk</option>
+<option value="2">User</option>
+<option value="3">User talk</option>
+<option value="4">MyWiki</option>
+<option value="5">MyWiki Talk</option>
+<option value="6">File</option>
+<option value="7">File talk</option>
+<option value="8">MediaWiki</option>
+<option value="9">MediaWiki talk</option>
+<option value="10">Template</option>
+<option value="11">Template talk</option>
+<option value="100">Custom</option>
+<option value="101">Custom talk</option>
+</select>',
+ Xml::namespaceSelector(),
+ 'Basic namespace selector without custom options'
+ );
+ $this->assertEquals(
+ '<label for="myname">Select a namespace:</label> <select id="namespace" name="myname" class="namespaceselector">
+<option value="all">all</option>
+<option value="0">(Main)</option>
+<option value="1">Talk</option>
+<option value="2" selected="">User</option>
+<option value="3">User talk</option>
+<option value="4">MyWiki</option>
+<option value="5">MyWiki Talk</option>
+<option value="6">File</option>
+<option value="7">File talk</option>
+<option value="8">MediaWiki</option>
+<option value="9">MediaWiki talk</option>
+<option value="10">Template</option>
+<option value="11">Template talk</option>
+<option value="100">Custom</option>
+<option value="101">Custom talk</option>
+</select>',
+ Xml::namespaceSelector( $selected = '2', $all = 'all', $element_name = 'myname', $label = 'Select a namespace:' ),
+ 'Basic namespace selector with custom values'
+ );
+ }
+
+
#
# textarea
#
test( 'getParamValue', function() {
expect(5);
- var url1 = 'http://mediawiki.org/?foo=wrong&foo=right#&foo=bad';
+ var url1 = 'http://example.org/?foo=wrong&foo=right#&foo=bad';
equal( mw.util.getParamValue( 'foo', url1 ), 'right', 'Use latest one, ignore hash' );
strictEqual( mw.util.getParamValue( 'bar', url1 ), null, 'Return null when not found' );
- var url2 = 'http://mediawiki.org/#&foo=bad';
+ var url2 = 'http://example.org/#&foo=bad';
strictEqual( mw.util.getParamValue( 'foo', url2 ), null, 'Ignore hash if param is not in querystring but in hash (bug 27427)' );
- var url3 = 'example.com?' + $.param({ 'TEST': 'a b+c' });
+ var url3 = 'example.org?' + $.param({ 'TEST': 'a b+c' });
strictEqual( mw.util.getParamValue( 'TEST', url3 ), 'a b+c', 'Bug 30441: getParamValue must understand "+" encoding of space' );
- var url4 = 'example.com?' + $.param({ 'TEST': 'a b+c d' }); // check for sloppy code from r95332 :)
+ var url4 = 'example.org?' + $.param({ 'TEST': 'a b+c d' }); // check for sloppy code from r95332 :)
strictEqual( mw.util.getParamValue( 'TEST', url4 ), 'a b+c d', 'Bug 30441: getParamValue must understand "+" encoding of space (multiple spaces)' );
});
$mwPanel = $(mwPanel).appendTo( 'body' ),
$vectorTabs = $(vectorTabs).appendTo( 'body' );
- var tbRL = mw.util.addPortletLink( 'p-test-tb', 'http://mediawiki.org/wiki/ResourceLoader',
+ var tbRL = mw.util.addPortletLink( 'p-test-tb', '//mediawiki.org/wiki/ResourceLoader',
'ResourceLoader', 't-rl', 'More info about ResourceLoader on MediaWiki.org ', 'l' );
ok( $.isDomElement( tbRL ), 'addPortletLink returns a valid DOM Element according to $.isDomElement' );
- var tbMW = mw.util.addPortletLink( 'p-test-tb', 'http://mediawiki.org/',
+ var tbMW = mw.util.addPortletLink( 'p-test-tb', '//mediawiki.org/',
'MediaWiki.org', 't-mworg', 'Go to MediaWiki.org ', 'm', tbRL ),
$tbMW = $( tbMW );
equal( $tbMW.closest( '.portlet' ).attr( 'id' ), 'p-test-tb', 'Link was inserted within correct portlet' );
equal( $tbMW.next().attr( 'id' ), 't-rl', 'Link is in the correct position (by passing nextnode)' );
- var tbRLDM = mw.util.addPortletLink( 'p-test-tb', 'http://mediawiki.org/wiki/RL/DM',
+ var tbRLDM = mw.util.addPortletLink( 'p-test-tb', '//mediawiki.org/wiki/RL/DM',
'Default modules', 't-rldm', 'List of all default modules ', 'd', '#t-rl' );
equal( $( tbRLDM ).next().attr( 'id' ), 't-rl', 'Link is in the correct position (by passing CSS selector)' );