hello = mw.message( 'hello' );
- // https://bugzilla.wikimedia.org/show_bug.cgi?id=44459
+ // https://phabricator.wikimedia.org/T46459
assert.equal( hello.format, 'text', 'Message property "format" defaults to "text"' );
assert.strictEqual( hello.map, mw.messages, 'Message property "map" defaults to the global instance in mw.messages' );
assert.equal( hello.key, 'hello', 'Message property "key" (currect key)' );
assert.deepEqual( hello.parameters, [], 'Message property "parameters" defaults to an empty array' );
- // Todo
+ // TODO
assert.ok( hello.params, 'Message prototype "params"' );
hello.format = 'plain';
// This bug was actually already fixed in 1.18 and later when discovered in 1.17.
// Test is for regressions!
- // Forge an URL to the test callback script
+ // Forge a URL to the test callback script
var target = QUnit.fixurl(
mw.config.get( 'wgServer' ) + mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/qunitOkCall.js'
);
mw.loader.load( target );
} );
+ QUnit.asyncTest( 'mw.loader( "/absolute-path" )', 2, function ( assert ) {
+ // Forge a URL to the test callback script
+ var target = QUnit.fixurl(
+ mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/qunitOkCall.js'
+ );
+
+ // Confirm that mw.loader.load() works with absolute-paths (relative to current hostname)
+ assert.equal( target.slice( 0, 1 ), '/', 'URL is relative to document root' );
+
+ // Async!
+ // The target calls QUnit.start
+ mw.loader.load( target );
+ } );
+
+ QUnit.asyncTest( 'mw.loader() executing race (T112232)', 2, function ( assert ) {
+ var done = false;
+
+ // The red herring schedules its CSS buffer first. In T112232, a bug in the
+ // state machine would cause the job for testRaceLoadMe to run with an earlier job.
+ mw.loader.implement(
+ 'testRaceRedHerring',
+ function () {},
+ { css: [ '.mw-testRaceRedHerring {}' ] }
+ );
+ mw.loader.implement(
+ 'testRaceLoadMe',
+ function () {
+ done = true;
+ },
+ { css: [ '.mw-testRaceLoadMe { float: left; }' ] }
+ );
+
+ mw.loader.load( [ 'testRaceRedHerring', 'testRaceLoadMe' ] );
+ mw.loader.using( 'testRaceLoadMe', function () {
+ assert.strictEqual( done, true, 'script ran' );
+ assert.strictEqual( mw.loader.getState( 'testRaceLoadMe' ), 'ready', 'state' );
+ } ).always( QUnit.start );
+ } );
+
QUnit.test( 'mw.html', 13, function ( assert ) {
assert.throws( function () {
mw.html.escape();