.done( function () {
assert.strictEqual( isAwesomeDone, true, 'test.promise module should\'ve caused isAwesomeDone to be true' );
delete mw.loader.testCallback;
-
} )
.fail( function () {
assert.ok( false, 'Error callback fired while loader.using "test.promise" module' );
} );
} );
+ QUnit.test( '.using() Error: Circular dependency', function ( assert ) {
+ var done = assert.async();
+
+ mw.loader.register( [
+ [ 'test.circle1', '0', [ 'test.circle2' ] ],
+ [ 'test.circle2', '0', [ 'test.circle3' ] ],
+ [ 'test.circle3', '0', [ 'test.circle1' ] ]
+ ] );
+ mw.loader.using( 'test.circle3' ).then(
+ function done() {
+ assert.ok( false, 'Unexpected resolution, expected error.' );
+ },
+ function fail( e ) {
+ assert.ok( /Circular/.test( String( e ) ), 'Detect circular dependency' );
+ }
+ )
+ .always( done );
+ } );
+
+ QUnit.test( '.load() - Error: Circular dependency', function ( assert ) {
+ mw.loader.register( [
+ [ 'test.circleA', '0', [ 'test.circleB' ] ],
+ [ 'test.circleB', '0', [ 'test.circleC' ] ],
+ [ 'test.circleC', '0', [ 'test.circleA' ] ]
+ ] );
+ assert.throws( function () {
+ mw.loader.load( 'test.circleC' );
+ }, /Circular/, 'Detect circular dependency' );
+ } );
+
+ QUnit.test( '.using() - Error: Unregistered', function ( assert ) {
+ var done = assert.async();
+
+ mw.loader.using( 'test.using.unreg' ).then(
+ function done() {
+ assert.ok( false, 'Unexpected resolution, expected error.' );
+ },
+ function fail( e ) {
+ assert.ok( /Unknown/.test( String( e ) ), 'Detect unknown dependency' );
+ }
+ ).always( done );
+ } );
+
+ QUnit.test( '.load() - Error: Unregistered (ignored)', 0, function ( assert ) {
+ mw.loader.load( 'test.using.unreg2' );
+ } );
+
QUnit.test( '.implement( styles={ "css": [text, ..] } )', 2, function ( assert ) {
var $element = $( '<div class="mw-test-implement-a"></div>' ).appendTo( '#qunit-fixture' );
url: {
print: [ urlStyleTest( '.mw-test-implement-b1', 'text-align', 'center' ) ],
screen: [
- // bug 40834: Make sure it actually works with more than 1 stylesheet reference
+ // T42834: Make sure it actually works with more than 1 stylesheet reference
urlStyleTest( '.mw-test-implement-b2', 'float', 'left' ),
urlStyleTest( '.mw-test-implement-b3', 'float', 'right' )
]
'test.implement.d',
function () {
assertStyleAsync( assert, $element, 'float', 'right', function () {
- assert.notEqual( $element2.css( 'text-align' ), 'center', 'print style is not applied (bug 40500)' );
+ assert.notEqual( $element2.css( 'text-align' ), 'center', 'print style is not applied (T42500)' );
done();
} );
},
mw.loader.load( 'test.implement.d' );
} );
- // @import (bug 31676)
+ // @import (T33676)
QUnit.test( '.implement( styles has @import )', 7, function ( assert ) {
var isJsExecuted, $element,
done = assert.async();
} );
QUnit.test( '.implement( only messages )', 2, function ( assert ) {
- assert.assertFalse( mw.messages.exists( 'bug_29107' ), 'Verify that the test message doesn\'t exist yet' );
+ assert.assertFalse( mw.messages.exists( 'T31107' ), 'Verify that the test message doesn\'t exist yet' );
- // jscs: disable requireCamelCaseOrUpperCaseIdentifiers
- mw.loader.implement( 'test.implement.msgs', [], {}, { bug_29107: 'loaded' } );
- // jscs: enable requireCamelCaseOrUpperCaseIdentifiers
+ mw.loader.implement( 'test.implement.msgs', [], {}, { T31107: 'loaded' } );
return mw.loader.using( 'test.implement.msgs', function () {
- assert.ok( mw.messages.exists( 'bug_29107' ), 'Bug 29107: messages-only module should implement ok' );
+ assert.ok( mw.messages.exists( 'T31107' ), 'T31107: messages-only module should implement ok' );
}, function () {
assert.ok( false, 'Error callback fired while implementing "test.implement.msgs" module' );
} );
assert.strictEqual( mw.track.callCount, 1 );
} );
- QUnit.test( 'Circular dependency', 1, function ( assert ) {
- mw.loader.register( [
- [ 'test.circle1', '0', [ 'test.circle2' ] ],
- [ 'test.circle2', '0', [ 'test.circle3' ] ],
- [ 'test.circle3', '0', [ 'test.circle1' ] ]
- ] );
- assert.throws( function () {
- mw.loader.using( 'test.circle3' );
- }, /Circular/, 'Detect circular dependency' );
- } );
-
QUnit.test( 'Out-of-order implementation', 9, function ( assert ) {
mw.loader.register( [
[ 'test.module4', '0' ],
mw.loader.load( target );
} );
+ QUnit.test( 'Empty string module name - T28804', function ( assert ) {
+ var done = false;
+
+ assert.strictEqual( mw.loader.getState( '' ), null, 'State (unregistered)' );
+
+ mw.loader.register( '', 'v1' );
+ assert.strictEqual( mw.loader.getState( '' ), 'registered', 'State (registered)' );
+ assert.strictEqual( mw.loader.getVersion( '' ), 'v1', 'Version' );
+
+ mw.loader.implement( '', function () {
+ done = true;
+ } );
+
+ return mw.loader.using( '', function () {
+ assert.strictEqual( done, true, 'script ran' );
+ assert.strictEqual( mw.loader.getState( '' ), 'ready', 'State (ready)' );
+ } );
+ } );
+
QUnit.test( 'Executing race - T112232', 2, function ( assert ) {
var done = false;