test: Always use strict equalities
Replace assert.(not)ok/(not)equal with strict equality checks: assert.true/false/(not)strictEqual. Will be enforced in upcoming eslint-config-wikimedia release. Change-Id: I4a9523b72834524a4b4e4339d5b175a8346a646c
This commit is contained in:
parent
ba7ac9f655
commit
e2c4f1ef0d
18 changed files with 126 additions and 139 deletions
|
|
@ -61,10 +61,10 @@
|
|||
// Glue code for nicer integration with QUnit setup/teardown
|
||||
// Inspired by http://sinonjs.org/releases/sinon-qunit-1.0.0.js
|
||||
sinon.assert.fail = function ( msg ) {
|
||||
QUnit.assert.ok( false, msg );
|
||||
QUnit.assert.true( false, msg );
|
||||
};
|
||||
sinon.assert.pass = function ( msg ) {
|
||||
QUnit.assert.ok( true, msg );
|
||||
QUnit.assert.true( true, msg );
|
||||
};
|
||||
sinon.config = {
|
||||
injectIntoThis: true,
|
||||
|
|
@ -614,7 +614,7 @@
|
|||
}
|
||||
} );
|
||||
QUnit.test( 'beforeEach', function ( assert ) {
|
||||
assert.ok( this.mwHtmlLive, 'setup() ran' );
|
||||
assert.notStrictEqual( this.mwHtmlLive, undefined, 'setup() ran' );
|
||||
mw.html = null;
|
||||
} );
|
||||
QUnit.test( 'afterEach', function ( assert ) {
|
||||
|
|
@ -632,7 +632,7 @@
|
|||
}
|
||||
} );
|
||||
QUnit.test( 'setup', function ( assert ) {
|
||||
assert.ok( this.mwHtmlLive, 'setup() ran' );
|
||||
assert.notStrictEqual( this.mwHtmlLive, undefined, 'setup() ran' );
|
||||
mw.html = null;
|
||||
} );
|
||||
QUnit.test( 'teardown', function ( assert ) {
|
||||
|
|
@ -644,7 +644,7 @@
|
|||
QUnit.module( 'testrunner-nested', function () {
|
||||
QUnit.module( 'testrunner-nested-inner', function () {
|
||||
QUnit.test( 'Dummy', function ( assert ) {
|
||||
assert.ok( true, 'Nested modules supported' );
|
||||
assert.true( true, 'Nested modules supported' );
|
||||
} );
|
||||
} );
|
||||
} );
|
||||
|
|
@ -662,7 +662,7 @@
|
|||
QUnit.test(
|
||||
'`after` hook for module `testrunner-hooks` was executed',
|
||||
function ( assert ) {
|
||||
assert.ok( afterHookWasExecuted );
|
||||
assert.true( afterHookWasExecuted );
|
||||
}
|
||||
);
|
||||
},
|
||||
|
|
@ -672,7 +672,7 @@
|
|||
} );
|
||||
|
||||
QUnit.test( '`before` hook was executed', function ( assert ) {
|
||||
assert.ok( beforeHookWasExecuted );
|
||||
assert.true( beforeHookWasExecuted );
|
||||
} );
|
||||
} );
|
||||
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@
|
|||
// The "a" could be capitalized, and the prefix could be anything, e.g. a simple "^" for ctrl-
|
||||
// (no browser is known using such a short prefix, though) or "Alt+Umschalt+" in German Firefox.
|
||||
result = /^Title \[(.+)[aA]\]$/.exec( title );
|
||||
assert.ok( result, 'title should match expected structure.' );
|
||||
assert.notEqual( result[ 1 ], 'test-', 'Prefix used for testing shouldn\'t be used in production.' );
|
||||
assert.notStrictEqual( result, null, 'title should match expected structure.' );
|
||||
assert.notStrictEqual( result[ 1 ], 'test-', 'Prefix used for testing shouldn\'t be used in production.' );
|
||||
} );
|
||||
|
||||
QUnit.test( 'updateTooltipAccessKeys - no access key', function ( assert ) {
|
||||
|
|
|
|||
|
|
@ -224,8 +224,7 @@
|
|||
|
||||
function among( actual, expected, message ) {
|
||||
if ( Array.isArray( expected ) ) {
|
||||
// eslint-disable-next-line qunit/no-ok-equality
|
||||
assert.ok( expected.indexOf( actual ) !== -1, message + ' (got ' + actual + '; expected one of ' + expected.join( ', ' ) + ')' );
|
||||
assert.true( expected.indexOf( actual ) !== -1, message + ' (got ' + actual + '; expected one of ' + expected.join( ', ' ) + ')' );
|
||||
} else {
|
||||
assert.strictEqual( actual, expected, message );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
var api = new mw.ForeignApi( '//localhost:4242/w/api.php' );
|
||||
|
||||
this.server.respond( function ( request ) {
|
||||
assert.ok( request.url.match( /origin=/ ), 'origin is included in GET requests' );
|
||||
assert.true( /origin=/.test( request.url ), 'origin is included in GET requests' );
|
||||
request.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
|
||||
} );
|
||||
|
||||
|
|
@ -21,8 +21,8 @@
|
|||
var api = new mw.ForeignApi( '//localhost:4242/w/api.php' );
|
||||
|
||||
this.server.respond( function ( request ) {
|
||||
assert.ok( request.requestBody.match( /origin=/ ), 'origin is included in POST request body' );
|
||||
assert.ok( request.url.match( /origin=/ ), 'origin is included in POST request URL, too' );
|
||||
assert.true( /origin=/.test( request.requestBody ), 'origin is included in POST request body' );
|
||||
assert.true( /origin=/.test( request.url ), 'origin is included in POST request URL, too' );
|
||||
request.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
|
||||
} );
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
this.server.respond( function ( request ) {
|
||||
assert.strictEqual( request.method, 'POST', 'Method should be POST' );
|
||||
assert.strictEqual( request.url, 'http://test.example.com/rest.php/test/bla/bla/bla', 'Url should be correct' );
|
||||
assert.ok( /^application\/json/.test( request.requestHeaders[ 'Content-Type' ] ), 'Should set JSON content-type' );
|
||||
assert.true( /^application\/json/.test( request.requestHeaders[ 'Content-Type' ] ), 'Should set JSON content-type' );
|
||||
assert.strictEqual( request.requestHeaders.authorization, 'my_token', 'Should pass request header' );
|
||||
assert.deepEqual( JSON.parse( request.requestBody ), { param: 'value' }, 'Body should be correct' );
|
||||
request.respond( 201, { 'Content-Type': 'application/json' }, '{}' );
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
api.saveOption( 'foo', 'bar' );
|
||||
|
||||
assert.ok( stub.calledOnce, '#saveOptions called once' );
|
||||
assert.true( stub.calledOnce, '#saveOptions called once' );
|
||||
assert.deepEqual( stub.getCall( 0 ).args, [ { foo: 'bar' } ], '#saveOptions called correctly' );
|
||||
} );
|
||||
|
||||
|
|
@ -50,32 +50,32 @@
|
|||
// reset an option, not bundleable
|
||||
'action=options&format=json&formatversion=2&optionname=foo%7Cbar%3Dquux&token=%2B%5C'
|
||||
].indexOf( request.requestBody ) !== -1 ) {
|
||||
assert.ok( true, 'Repond to ' + request.requestBody );
|
||||
assert.true( true, 'Repond to ' + request.requestBody );
|
||||
request.respond( 200, { 'Content-Type': 'application/json' },
|
||||
'{ "options": "success" }' );
|
||||
} else {
|
||||
assert.ok( false, 'Unexpected request: ' + request.requestBody );
|
||||
assert.true( false, 'Unexpected request: ' + request.requestBody );
|
||||
}
|
||||
} );
|
||||
|
||||
return QUnit.whenPromisesComplete(
|
||||
api.saveOptions( {} ).then( function () {
|
||||
assert.ok( true, 'Request completed: empty case' );
|
||||
assert.true( true, 'Request completed: empty case' );
|
||||
} ),
|
||||
api.saveOptions( { foo: 'bar' } ).then( function () {
|
||||
assert.ok( true, 'Request completed: simple' );
|
||||
assert.true( true, 'Request completed: simple' );
|
||||
} ),
|
||||
api.saveOptions( { foo: 'bar', baz: 'quux' } ).then( function () {
|
||||
assert.ok( true, 'Request completed: two options' );
|
||||
assert.true( true, 'Request completed: two options' );
|
||||
} ),
|
||||
api.saveOptions( { foo: 'bar|quux', bar: 'a|b|c', baz: 'quux' } ).then( function () {
|
||||
assert.ok( true, 'Request completed: not bundleable' );
|
||||
assert.true( true, 'Request completed: not bundleable' );
|
||||
} ),
|
||||
api.saveOptions( { foo: null } ).then( function () {
|
||||
assert.ok( true, 'Request completed: reset an option' );
|
||||
assert.true( true, 'Request completed: reset an option' );
|
||||
} ),
|
||||
api.saveOptions( { 'foo|bar=quux': null } ).then( function () {
|
||||
assert.ok( true, 'Request completed: reset an option, not bundleable' );
|
||||
assert.true( true, 'Request completed: reset an option, not bundleable' );
|
||||
} )
|
||||
);
|
||||
} );
|
||||
|
|
@ -112,38 +112,38 @@
|
|||
// reset an option, not bundleable
|
||||
'action=options&format=json&formatversion=2&optionname=foo%7Cbar%3Dquux&token=%2B%5C'
|
||||
].indexOf( request.requestBody ) !== -1 ) {
|
||||
assert.ok( true, 'Repond to ' + request.requestBody );
|
||||
assert.true( true, 'Repond to ' + request.requestBody );
|
||||
request.respond(
|
||||
200,
|
||||
{ 'Content-Type': 'application/json' },
|
||||
'{ "options": "success" }'
|
||||
);
|
||||
} else {
|
||||
assert.ok( false, 'Unexpected request: ' + request.requestBody );
|
||||
assert.true( false, 'Unexpected request: ' + request.requestBody );
|
||||
}
|
||||
} );
|
||||
|
||||
return QUnit.whenPromisesComplete(
|
||||
api.saveOptions( {} ).done( function () {
|
||||
assert.ok( true, 'Request completed: empty case' );
|
||||
assert.true( true, 'Request completed: empty case' );
|
||||
} ),
|
||||
api.saveOptions( { foo: 'bar' } ).done( function () {
|
||||
assert.ok( true, 'Request completed: simple' );
|
||||
assert.true( true, 'Request completed: simple' );
|
||||
} ),
|
||||
api.saveOptions( { foo: 'bar', baz: 'quux' } ).done( function () {
|
||||
assert.ok( true, 'Request completed: two options' );
|
||||
assert.true( true, 'Request completed: two options' );
|
||||
} ),
|
||||
api.saveOptions( { foo: 'bar|quux', bar: 'a|b|c', baz: 'quux' } ).done( function () {
|
||||
assert.ok( true, 'Request completed: bundleable with unit separator' );
|
||||
assert.true( true, 'Request completed: bundleable with unit separator' );
|
||||
} ),
|
||||
api.saveOptions( { foo: 'bar|quux', bar: 'a|b|c', 'baz=baz': 'quux' } ).done( function () {
|
||||
assert.ok( true, 'Request completed: not bundleable with unit separator' );
|
||||
assert.true( true, 'Request completed: not bundleable with unit separator' );
|
||||
} ),
|
||||
api.saveOptions( { foo: null } ).done( function () {
|
||||
assert.ok( true, 'Request completed: reset an option' );
|
||||
assert.true( true, 'Request completed: reset an option' );
|
||||
} ),
|
||||
api.saveOptions( { 'foo|bar=quux': null } ).done( function () {
|
||||
assert.ok( true, 'Request completed: reset an option, not bundleable' );
|
||||
assert.true( true, 'Request completed: reset an option, not bundleable' );
|
||||
} )
|
||||
);
|
||||
} );
|
||||
|
|
|
|||
|
|
@ -83,10 +83,10 @@
|
|||
|
||||
this.server.respond( function ( request ) {
|
||||
if ( window.FormData ) {
|
||||
assert.notOk( request.url.match( /action=/ ), 'Request has no query string' );
|
||||
assert.ok( request.requestBody instanceof FormData, 'Request uses FormData body' );
|
||||
assert.false( /action=/.test( request.url ), 'Request has no query string' );
|
||||
assert.true( request.requestBody instanceof FormData, 'Request uses FormData body' );
|
||||
} else {
|
||||
assert.notOk( request.url.match( /action=test/ ), 'Request has no query string' );
|
||||
assert.false( /action=test/.test( request.url ), 'Request has no query string' );
|
||||
assert.strictEqual( request.requestBody, 'action=test&format=json', 'Request uses query string body' );
|
||||
}
|
||||
request.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
|
||||
|
|
@ -133,8 +133,8 @@
|
|||
var api = new mw.Api();
|
||||
|
||||
this.server.respond( function ( request ) {
|
||||
assert.notOk( request.url.match( /foo/ ), 'foo query parameter is not present' );
|
||||
assert.ok( request.url.match( /bar=true/ ), 'bar query parameter is present with value true' );
|
||||
assert.false( /foo/.test( request.url ), 'foo query parameter is not present' );
|
||||
assert.true( /bar=true/.test( request.url ), 'bar query parameter is present with value true' );
|
||||
request.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
|
||||
} );
|
||||
|
||||
|
|
@ -149,7 +149,7 @@
|
|||
// a request as it should be retrieved from mw.user.tokens.
|
||||
return api.getToken( 'csrf' )
|
||||
.then( function ( token ) {
|
||||
assert.ok( token.length, 'Got a token' );
|
||||
assert.true( token.length > 0, 'Got a token' );
|
||||
}, function ( err ) {
|
||||
assert.strictEqual( err, '', 'API error' );
|
||||
} )
|
||||
|
|
@ -364,7 +364,7 @@
|
|||
return api.postWithToken( 'csrf',
|
||||
{ action: 'example' },
|
||||
function () {
|
||||
assert.ok( false, 'This parameter cannot be a callback' );
|
||||
assert.true( false, 'This parameter cannot be a callback' );
|
||||
}
|
||||
);
|
||||
} ).then( function ( data ) {
|
||||
|
|
@ -473,7 +473,7 @@
|
|||
this.api.abort();
|
||||
assert.strictEqual( this.requests.length, 2, 'Check both requests triggered' );
|
||||
this.requests.forEach( function ( request, i ) {
|
||||
assert.ok( request.abort.calledOnce, 'abort request number ' + i );
|
||||
assert.true( request.abort.calledOnce, 'abort request number ' + i );
|
||||
} );
|
||||
} );
|
||||
}() );
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
QUnit.test( 'Basic functionality', function ( assert ) {
|
||||
var api = new mw.Api();
|
||||
assert.ok( api.upload );
|
||||
assert.strictEqual( typeof api.upload, 'function' );
|
||||
assert.throws( function () {
|
||||
api.upload();
|
||||
} );
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
this.server.respond( function ( request ) {
|
||||
assert.strictEqual( request.method, 'GET' );
|
||||
assert.ok(
|
||||
assert.true(
|
||||
/rest.php\/test\/rest\/path\?queryParam=%2Fslash-will-be-encoded%3F$/.test( request.url ),
|
||||
'Should have correct request URL'
|
||||
);
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
} );
|
||||
|
||||
this.server.respond( function ( request ) {
|
||||
assert.ok( /test.php\/test\/rest\/path$/.test( request.url ), 'Should have correct request URL' );
|
||||
assert.true( /test.php\/test\/rest\/path$/.test( request.url ), 'Should have correct request URL' );
|
||||
request.respond( 200, { 'Content-Type': 'application/json' }, '{}' );
|
||||
} );
|
||||
|
||||
|
|
@ -50,8 +50,8 @@
|
|||
|
||||
this.server.respond( function ( request ) {
|
||||
assert.strictEqual( request.method, 'POST', 'Method should be POST' );
|
||||
assert.ok( /rest.php\/test\/bla\/bla\/bla$/.test( request.url ), 'Url should be correct' );
|
||||
assert.ok( /^application\/json/.test( request.requestHeaders[ 'Content-Type' ] ), 'Should set JSON content-type' );
|
||||
assert.true( /rest.php\/test\/bla\/bla\/bla$/.test( request.url ), 'Url should be correct' );
|
||||
assert.true( /^application\/json/.test( request.requestHeaders[ 'Content-Type' ] ), 'Should set JSON content-type' );
|
||||
assert.strictEqual( request.requestHeaders.authorization, 'my_token', 'Should pass request header' );
|
||||
assert.deepEqual( JSON.parse( request.requestBody ), { param: 'value' }, 'Body should be correct' );
|
||||
request.respond( 201, { 'Content-Type': 'application/json' }, '{}' );
|
||||
|
|
@ -99,7 +99,7 @@
|
|||
this.api.abort();
|
||||
assert.strictEqual( this.requests.length, 2, 'Check both requests triggered' );
|
||||
this.requests.forEach( function ( request, i ) {
|
||||
assert.ok( request.abort.calledOnce, 'abort request number ' + i );
|
||||
assert.true( request.abort.calledOnce, 'abort request number ' + i );
|
||||
} );
|
||||
} );
|
||||
}() );
|
||||
|
|
|
|||
|
|
@ -281,7 +281,7 @@
|
|||
model.initializeFilters( filterDefinition, viewsDefinition );
|
||||
|
||||
// Test that all items were created
|
||||
assert.ok(
|
||||
assert.true(
|
||||
Object.keys( baseFilterRepresentation ).every( function ( filterName ) {
|
||||
return model.getItemByName( filterName ) instanceof mw.rcfilters.dm.FilterItem;
|
||||
} ),
|
||||
|
|
@ -542,7 +542,7 @@
|
|||
} );
|
||||
|
||||
foundMatches = model.findMatches( 'foo' );
|
||||
assert.ok(
|
||||
assert.true(
|
||||
$.isEmptyObject( foundMatches ),
|
||||
'findMatches returns an empty object when no results found'
|
||||
);
|
||||
|
|
|
|||
|
|
@ -240,12 +240,9 @@
|
|||
foo: 'quux',
|
||||
pif: 'paf'
|
||||
} );
|
||||
// eslint-disable-next-line qunit/no-ok-equality
|
||||
assert.ok( uri.toString().indexOf( 'foo=quux' ) !== -1, 'extend query arguments' );
|
||||
// eslint-disable-next-line qunit/no-ok-equality
|
||||
assert.notOk( uri.toString().indexOf( 'foo=bar' ) !== -1, 'extend query arguments' );
|
||||
// eslint-disable-next-line qunit/no-ok-equality
|
||||
assert.ok( uri.toString().indexOf( 'pif=paf' ) !== -1, 'extend query arguments' );
|
||||
assert.true( uri.toString().indexOf( 'foo=quux' ) !== -1, 'extend query arguments' );
|
||||
assert.false( uri.toString().indexOf( 'foo=bar' ) !== -1, 'extend query arguments' );
|
||||
assert.true( uri.toString().indexOf( 'pif=paf' ) !== -1, 'extend query arguments' );
|
||||
} );
|
||||
|
||||
QUnit.test( '.getQueryString()', function ( assert ) {
|
||||
|
|
@ -338,8 +335,8 @@
|
|||
assert.notStrictEqual( clone, original, 'clone is a different object when compared by reference' );
|
||||
|
||||
clone.host = 'bar.example.org';
|
||||
assert.notEqual( original.host, clone.host, 'manipulating clone did not effect original' );
|
||||
assert.notEqual( original.toString(), clone.toString(), 'Stringified url no longer matches original' );
|
||||
assert.notStrictEqual( original.host, clone.host, 'manipulating clone did not effect original' );
|
||||
assert.notStrictEqual( original.toString(), clone.toString(), 'Stringified url no longer matches original' );
|
||||
|
||||
clone.query.three = 3;
|
||||
|
||||
|
|
@ -361,10 +358,8 @@
|
|||
|
||||
// Verify parts and total length instead of entire string because order
|
||||
// of iteration can vary.
|
||||
// eslint-disable-next-line qunit/no-ok-equality
|
||||
assert.ok( uri.toString().indexOf( 'm=bar' ) !== -1, 'toString preserves other values' );
|
||||
// eslint-disable-next-line qunit/no-ok-equality
|
||||
assert.ok( uri.toString().indexOf( 'n=x&n=y&n=z' ) !== -1, 'toString parameter includes all values of an array query parameter' );
|
||||
assert.true( uri.toString().indexOf( 'm=bar' ) !== -1, 'toString preserves other values' );
|
||||
assert.true( uri.toString().indexOf( 'n=x&n=y&n=z' ) !== -1, 'toString parameter includes all values of an array query parameter' );
|
||||
assert.strictEqual( uri.toString().length, 'http://www.example.com/dir/?m=bar&n=x&n=y&n=z'.length, 'toString matches expected string' );
|
||||
|
||||
uri = new mw.Uri( 'http://www.example.com/dir/?m=foo&m=bar&n=1', {
|
||||
|
|
@ -376,10 +371,8 @@
|
|||
|
||||
// Verify parts and total length instead of entire string because order
|
||||
// of iteration can vary.
|
||||
// eslint-disable-next-line qunit/no-ok-equality
|
||||
assert.ok( uri.toString().indexOf( 'm=foo&m=bar' ) !== -1, 'toString preserves other values' );
|
||||
// eslint-disable-next-line qunit/no-ok-equality
|
||||
assert.ok( uri.toString().indexOf( 'n=x&n=y&n=z' ) !== -1, 'toString parameter includes all values of an array query parameter' );
|
||||
assert.true( uri.toString().indexOf( 'm=foo&m=bar' ) !== -1, 'toString preserves other values' );
|
||||
assert.true( uri.toString().indexOf( 'n=x&n=y&n=z' ) !== -1, 'toString parameter includes all values of an array query parameter' );
|
||||
assert.strictEqual( uri.toString().length, 'http://www.example.com/dir/?m=foo&m=bar&n=x&n=y&n=z'.length, 'toString matches expected string' );
|
||||
|
||||
// Remove query values
|
||||
|
|
@ -489,19 +482,15 @@
|
|||
assert.strictEqual( uri.getHostPort(), 'www.example.com:81', 'hostport equal to host:port' );
|
||||
|
||||
queryString = uri.getQueryString();
|
||||
// eslint-disable-next-line qunit/no-ok-equality
|
||||
assert.ok( queryString.indexOf( 'q1=0' ) !== -1, 'query param with numbers' );
|
||||
// eslint-disable-next-line qunit/no-ok-equality
|
||||
assert.ok( queryString.indexOf( 'test1' ) !== -1, 'query param with null value is included' );
|
||||
// eslint-disable-next-line qunit/no-ok-equality
|
||||
assert.notOk( queryString.indexOf( 'test1=' ) !== -1, 'query param with null value does not generate equals sign' );
|
||||
// eslint-disable-next-line qunit/no-ok-equality
|
||||
assert.ok( queryString.indexOf( 'test2=value+%28escaped%29' ) !== -1, 'query param is url escaped' );
|
||||
assert.true( queryString.indexOf( 'q1=0' ) !== -1, 'query param with numbers' );
|
||||
assert.true( queryString.indexOf( 'test1' ) !== -1, 'query param with null value is included' );
|
||||
assert.false( queryString.indexOf( 'test1=' ) !== -1, 'query param with null value does not generate equals sign' );
|
||||
assert.true( queryString.indexOf( 'test2=value+%28escaped%29' ) !== -1, 'query param is url escaped' );
|
||||
|
||||
relativePath = uri.getRelativePath();
|
||||
assert.ok( relativePath.indexOf( uri.path ) >= 0, 'path in relative path' );
|
||||
assert.ok( relativePath.indexOf( uri.getQueryString() ) >= 0, 'query string in relative path' );
|
||||
assert.ok( relativePath.indexOf( mw.Uri.encode( uri.fragment ) ) >= 0, 'escaped fragment in relative path' );
|
||||
assert.true( relativePath.indexOf( uri.path ) >= 0, 'path in relative path' );
|
||||
assert.true( relativePath.indexOf( uri.getQueryString() ) >= 0, 'query string in relative path' );
|
||||
assert.true( relativePath.indexOf( mw.Uri.encode( uri.fragment ) ) >= 0, 'escaped fragment in relative path' );
|
||||
} );
|
||||
|
||||
QUnit.test( 'Parse a uri with an @ symbol in the path and query', function ( assert ) {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
mw.errorLogger.installGlobalHandler( w );
|
||||
|
||||
assert.ok( w.onerror, 'Global handler has been installed' );
|
||||
assert.strictEqual( typeof w.onerror, 'function', 'Global handler has been installed' );
|
||||
assert.strictEqual(
|
||||
w.onerror(
|
||||
errorMessage,
|
||||
|
|
|
|||
|
|
@ -1273,7 +1273,7 @@
|
|||
mw.messages.set( 'object-double-replace', 'Foo 1: $1 2: $1' );
|
||||
$messageArgument = $( '<div class="bar">></div>' );
|
||||
$message = $( '<span>' ).msg( 'object-double-replace', $messageArgument );
|
||||
assert.ok(
|
||||
assert.true(
|
||||
$message[ 0 ].contains( $messageArgument[ 0 ] ),
|
||||
'The original jQuery object is actually in the DOM'
|
||||
);
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
} ) );
|
||||
|
||||
QUnit.test( 'options', function ( assert ) {
|
||||
assert.ok( mw.user.options instanceof mw.Map, 'options instance of mw.Map' );
|
||||
assert.true( mw.user.options instanceof mw.Map, 'options instance of mw.Map' );
|
||||
} );
|
||||
|
||||
QUnit.test( 'getters (anonymous)', function ( assert ) {
|
||||
|
|
@ -95,7 +95,7 @@
|
|||
assert.strictEqual( result.length, 20, 'size' );
|
||||
|
||||
result2 = mw.user.generateRandomSessionId();
|
||||
assert.notEqual( result, result2, 'different when called multiple times' );
|
||||
assert.notStrictEqual( result, result2, 'different when called multiple times' );
|
||||
|
||||
} );
|
||||
|
||||
|
|
@ -118,7 +118,7 @@
|
|||
assert.strictEqual( result.length, 20, 'size' );
|
||||
|
||||
result2 = mw.user.generateRandomSessionId();
|
||||
assert.notEqual( result, result2, 'different when called multiple times' );
|
||||
assert.notStrictEqual( result, result2, 'different when called multiple times' );
|
||||
} );
|
||||
|
||||
QUnit.test( 'getPageviewToken', function ( assert ) {
|
||||
|
|
|
|||
|
|
@ -601,14 +601,14 @@
|
|||
mw.util.setOptionsForTest( { GenerateThumbnailOnParse: false } );
|
||||
data = mw.util.parseImageUrl( thisCase.url );
|
||||
if ( thisCase.name !== undefined ) {
|
||||
assert.ok( data, 'Parses successfully' );
|
||||
assert.notStrictEqual( data, null, 'Parses successfully' );
|
||||
assert.strictEqual( data.name, thisCase.name, 'File name is correct' );
|
||||
assert.strictEqual( data.width, thisCase.width, 'Width is correct' );
|
||||
if ( thisCase.resizedUrl ) {
|
||||
assert.ok( data.resizeUrl, 'resizeUrl is set' );
|
||||
assert.strictEqual( typeof data.resizeUrl, 'function', 'resizeUrl is set' );
|
||||
assert.strictEqual( data.resizeUrl( 1000 ), thisCase.resizedUrl, 'Resized URL is correct' );
|
||||
} else {
|
||||
assert.notOk( data.resizeUrl, 'resizeUrl is not set' );
|
||||
assert.strictEqual( data.resizeUrl, null, 'resizeUrl is not set' );
|
||||
}
|
||||
} else {
|
||||
assert.strictEqual( data, null, thisCase.typeOfUrl + ', should not produce an mw.Title object' );
|
||||
|
|
@ -622,7 +622,7 @@
|
|||
mw.util.setOptionsForTest( { GenerateThumbnailOnParse: true } );
|
||||
this.sandbox.stub( mw.config.values, 'wgScript', '/w' );
|
||||
resizeUrl = mw.util.parseImageUrl( '//upload.wikimedia.org/wikipedia/commons/thumb/b/bf/Princess_Alexandra_of_Denmark_%28later_Queen_Alexandra%2C_wife_of_Edward_VII%29_with_her_two_eldest_sons%2C_Prince_Albert_Victor_%28Eddy%29_and_George_Frederick_Ernest_Albert_%28later_George_V%29.jpg/939px-thumbnail.jpg' ).resizeUrl;
|
||||
assert.ok( resizeUrl, 'resizeUrl is set' );
|
||||
assert.strictEqual( typeof resizeUrl, 'function', 'resizeUrl is set' );
|
||||
assert.strictEqual( resizeUrl( 500 ), '/w?title=Special:Redirect/file/Princess_Alexandra_of_Denmark_(later_Queen_Alexandra,_wife_of_Edward_VII)_with_her_two_eldest_sons,_Prince_Albert_Victor_(Eddy)_and_George_Frederick_Ernest_Albert_(later_George_V).jpg&width=500', 'Resized URL is correct' );
|
||||
} );
|
||||
} );
|
||||
|
|
@ -705,7 +705,7 @@
|
|||
);
|
||||
|
||||
util.init();
|
||||
assert.ok( util.$content instanceof $, 'jQuery object' );
|
||||
assert.true( util.$content instanceof $, 'jQuery object' );
|
||||
assert.strictEqual( mw.util.$content[ 0 ], node, 'node' );
|
||||
assert.strictEqual( mw.util.$content.length, 1, 'length' );
|
||||
} );
|
||||
|
|
@ -717,14 +717,14 @@
|
|||
);
|
||||
|
||||
util.init();
|
||||
assert.ok( util.$content instanceof $, 'jQuery object' );
|
||||
assert.true( util.$content instanceof $, 'jQuery object' );
|
||||
assert.strictEqual( mw.util.$content[ 0 ], node, 'node' );
|
||||
assert.strictEqual( mw.util.$content.length, 1, 'length' );
|
||||
} );
|
||||
|
||||
QUnit.test( 'init (body fallback)', function ( assert ) {
|
||||
util.init();
|
||||
assert.ok( util.$content instanceof $, 'jQuery object' );
|
||||
assert.true( util.$content instanceof $, 'jQuery object' );
|
||||
assert.strictEqual( mw.util.$content[ 0 ], document.body, 'node' );
|
||||
assert.strictEqual( mw.util.$content.length, 1, 'length' );
|
||||
} );
|
||||
|
|
|
|||
|
|
@ -27,36 +27,36 @@
|
|||
|
||||
QUnit.test( 'isElementInViewport', function ( assert ) {
|
||||
var viewport = $.extend( {}, DEFAULT_VIEWPORT );
|
||||
assert.ok( mw.viewport.isElementInViewport( this.el, viewport ),
|
||||
assert.true( mw.viewport.isElementInViewport( this.el, viewport ),
|
||||
'It should return true when the element is fully enclosed in the viewport' );
|
||||
|
||||
viewport.right = 20;
|
||||
viewport.bottom = 20;
|
||||
assert.ok( mw.viewport.isElementInViewport( this.el, viewport ),
|
||||
assert.true( mw.viewport.isElementInViewport( this.el, viewport ),
|
||||
'It should return true when only the top-left of the element is within the viewport' );
|
||||
|
||||
viewport.top = 40;
|
||||
viewport.left = 40;
|
||||
viewport.right = 50;
|
||||
viewport.bottom = 50;
|
||||
assert.ok( mw.viewport.isElementInViewport( this.el, viewport ),
|
||||
assert.true( mw.viewport.isElementInViewport( this.el, viewport ),
|
||||
'It should return true when only the bottom-right is within the viewport' );
|
||||
|
||||
viewport.top = 30;
|
||||
viewport.left = 30;
|
||||
viewport.right = 35;
|
||||
viewport.bottom = 35;
|
||||
assert.ok( mw.viewport.isElementInViewport( this.el, viewport ),
|
||||
assert.true( mw.viewport.isElementInViewport( this.el, viewport ),
|
||||
'It should return true when the element encapsulates the viewport' );
|
||||
|
||||
viewport.top = 0;
|
||||
viewport.left = 0;
|
||||
viewport.right = 19;
|
||||
viewport.bottom = 19;
|
||||
assert.notOk( mw.viewport.isElementInViewport( this.el, viewport ),
|
||||
assert.false( mw.viewport.isElementInViewport( this.el, viewport ),
|
||||
'It should return false when the element is not within the viewport' );
|
||||
|
||||
assert.ok( mw.viewport.isElementInViewport( this.el ),
|
||||
assert.true( mw.viewport.isElementInViewport( this.el ),
|
||||
'It should default to the window object if no viewport is given' );
|
||||
} );
|
||||
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
} )
|
||||
.get( 0 );
|
||||
window.scrollTo( viewport.left, viewport.top );
|
||||
assert.ok( mw.viewport.isElementInViewport( el, viewport ),
|
||||
assert.true( mw.viewport.isElementInViewport( el, viewport ),
|
||||
'It should return true when the element is fully enclosed in the ' +
|
||||
'viewport even when the page is scrolled down' );
|
||||
window.scrollTo( 0, 0 );
|
||||
|
|
@ -101,11 +101,11 @@
|
|||
} )
|
||||
.get( 0 );
|
||||
|
||||
assert.ok( mw.viewport.isElementCloseToViewport( this.el, 60, viewport ),
|
||||
assert.true( mw.viewport.isElementCloseToViewport( this.el, 60, viewport ),
|
||||
'It should return true when the element is within the given threshold away' );
|
||||
assert.notOk( mw.viewport.isElementCloseToViewport( this.el, 20, viewport ),
|
||||
assert.false( mw.viewport.isElementCloseToViewport( this.el, 20, viewport ),
|
||||
'It should return false when the element is further than the given threshold away' );
|
||||
assert.notOk( mw.viewport.isElementCloseToViewport( distantElement ),
|
||||
assert.false( mw.viewport.isElementCloseToViewport( distantElement ),
|
||||
'It should default to a threshold of 50px and the window\'s viewport' );
|
||||
} );
|
||||
|
||||
|
|
|
|||
|
|
@ -32,16 +32,16 @@
|
|||
} ) );
|
||||
|
||||
QUnit.test( 'Initial check', function ( assert ) {
|
||||
assert.ok( window.jQuery, 'jQuery defined' );
|
||||
assert.ok( window.$, '$ defined' );
|
||||
assert.strictEqual( typeof window.jQuery, 'function', 'jQuery defined' );
|
||||
assert.strictEqual( typeof window.$, 'function', '$ defined' );
|
||||
assert.strictEqual( window.$, window.jQuery, '$ alias to jQuery' );
|
||||
|
||||
// window.mw and window.mediaWiki are not deprecated, but for some reason
|
||||
// PhantomJS is triggerring the accessors on all mw.* properties in this test,
|
||||
// and with that lots of unrelated deprecation notices.
|
||||
this.suppressWarnings();
|
||||
assert.ok( window.mediaWiki, 'mediaWiki defined' );
|
||||
assert.ok( window.mw, 'mw defined' );
|
||||
assert.strictEqual( typeof window.mediaWiki, 'object', 'mediaWiki defined' );
|
||||
assert.strictEqual( typeof window.mw, 'object', 'mw defined' );
|
||||
assert.strictEqual( window.mw, window.mediaWiki, 'mw alias to mediaWiki' );
|
||||
this.restoreWarnings();
|
||||
} );
|
||||
|
|
@ -82,8 +82,8 @@
|
|||
}
|
||||
}
|
||||
|
||||
assert.ok( mw.messages, 'messages defined' );
|
||||
assert.ok( mw.messages.set( 'hello', 'Hello <b>awesome</b> world' ), 'mw.messages.set: Register' );
|
||||
assert.strictEqual( typeof mw.messages, 'object', 'messages defined' );
|
||||
assert.true( mw.messages.set( 'hello', 'Hello <b>awesome</b> world' ), 'mw.messages.set: Register' );
|
||||
|
||||
hello = mw.message( 'hello' );
|
||||
|
||||
|
|
@ -95,7 +95,7 @@
|
|||
assert.deepEqual( hello.parameters, [], 'Message property "parameters" defaults to an empty array' );
|
||||
|
||||
// TODO
|
||||
assert.ok( hello.params, 'Message prototype "params"' );
|
||||
assert.strictEqual( typeof hello.params, 'function', 'Message prototype "params"' );
|
||||
|
||||
hello.format = 'plain';
|
||||
assert.strictEqual( hello.toString(), 'Hello <b>awesome</b> world', 'Message.toString returns the message as a string with the current "format"' );
|
||||
|
|
@ -103,12 +103,12 @@
|
|||
assert.strictEqual( hello.escaped(), 'Hello <b>awesome</b> world', 'Message.escaped returns the escaped message' );
|
||||
assert.strictEqual( hello.format, 'escaped', 'Message.escaped correctly updated the "format" property' );
|
||||
|
||||
assert.ok( mw.messages.set( 'multiple-curly-brace', '"{{SITENAME}}" is the home of {{int:other-message}}' ), 'mw.messages.set: Register' );
|
||||
assert.true( mw.messages.set( 'multiple-curly-brace', '"{{SITENAME}}" is the home of {{int:other-message}}' ), 'mw.messages.set: Register' );
|
||||
assertMultipleFormats( [ 'multiple-curly-brace' ], [ 'text', 'parse' ], '"' + siteName + '" is the home of Other Message', 'Curly brace format works correctly' );
|
||||
assert.strictEqual( mw.message( 'multiple-curly-brace' ).plain(), mw.messages.get( 'multiple-curly-brace' ), 'Plain format works correctly for curly brace message' );
|
||||
assert.strictEqual( mw.message( 'multiple-curly-brace' ).escaped(), mw.html.escape( '"' + siteName + '" is the home of Other Message' ), 'Escaped format works correctly for curly brace message' );
|
||||
|
||||
assert.ok( mw.messages.set( 'multiple-square-brackets-and-ampersand', 'Visit the [[Project:Community portal|community portal]] & [[Project:Help desk|help desk]]' ), 'mw.messages.set: Register' );
|
||||
assert.true( mw.messages.set( 'multiple-square-brackets-and-ampersand', 'Visit the [[Project:Community portal|community portal]] & [[Project:Help desk|help desk]]' ), 'mw.messages.set: Register' );
|
||||
assertMultipleFormats( [ 'multiple-square-brackets-and-ampersand' ], [ 'plain', 'text' ], mw.messages.get( 'multiple-square-brackets-and-ampersand' ), 'Square bracket message is not processed' );
|
||||
assert.strictEqual( mw.message( 'multiple-square-brackets-and-ampersand' ).escaped(), 'Visit the [[Project:Community portal|community portal]] & [[Project:Help desk|help desk]]', 'Escaped format works correctly for square bracket message' );
|
||||
assert.htmlEqual( mw.message( 'multiple-square-brackets-and-ampersand' ).parse(), 'Visit the ' +
|
||||
|
|
@ -138,14 +138,14 @@
|
|||
|
||||
assertMultipleFormats( [ 'good<>bye' ], [ 'plain', 'text', 'parse', 'escaped' ], '⧼good<>bye⧽', 'Message.toString returns ⧼key⧽ if key does not exist' );
|
||||
|
||||
assert.ok( mw.messages.set( 'plural-test-msg', 'There {{PLURAL:$1|is|are}} $1 {{PLURAL:$1|result|results}}' ), 'mw.messages.set: Register' );
|
||||
assert.true( mw.messages.set( 'plural-test-msg', 'There {{PLURAL:$1|is|are}} $1 {{PLURAL:$1|result|results}}' ), 'mw.messages.set: Register' );
|
||||
assertMultipleFormats( [ 'plural-test-msg', 6 ], [ 'text', 'parse', 'escaped' ], 'There are 6 results', 'plural get resolved' );
|
||||
assert.strictEqual( mw.message( 'plural-test-msg', 6 ).plain(), 'There {{PLURAL:6|is|are}} 6 {{PLURAL:6|result|results}}', 'Parameter is substituted but plural is not resolved in plain' );
|
||||
|
||||
assert.ok( mw.messages.set( 'plural-test-msg-explicit', 'There {{plural:$1|is one car|are $1 cars|0=are no cars|12=are a dozen cars}}' ), 'mw.messages.set: Register message with explicit plural forms' );
|
||||
assert.true( mw.messages.set( 'plural-test-msg-explicit', 'There {{plural:$1|is one car|are $1 cars|0=are no cars|12=are a dozen cars}}' ), 'mw.messages.set: Register message with explicit plural forms' );
|
||||
assertMultipleFormats( [ 'plural-test-msg-explicit', 12 ], [ 'text', 'parse', 'escaped' ], 'There are a dozen cars', 'explicit plural get resolved' );
|
||||
|
||||
assert.ok( mw.messages.set( 'plural-test-msg-explicit-beginning', 'Basket has {{plural:$1|0=no eggs|12=a dozen eggs|6=half a dozen eggs|one egg|$1 eggs}}' ), 'mw.messages.set: Register message with explicit plural forms' );
|
||||
assert.true( mw.messages.set( 'plural-test-msg-explicit-beginning', 'Basket has {{plural:$1|0=no eggs|12=a dozen eggs|6=half a dozen eggs|one egg|$1 eggs}}' ), 'mw.messages.set: Register message with explicit plural forms' );
|
||||
assertMultipleFormats( [ 'plural-test-msg-explicit-beginning', 1 ], [ 'text', 'parse', 'escaped' ], 'Basket has one egg', 'explicit plural given at beginning get resolved for singular' );
|
||||
assertMultipleFormats( [ 'plural-test-msg-explicit-beginning', 4 ], [ 'text', 'parse', 'escaped' ], 'Basket has 4 eggs', 'explicit plural given at beginning get resolved for plural' );
|
||||
assertMultipleFormats( [ 'plural-test-msg-explicit-beginning', 6 ], [ 'text', 'parse', 'escaped' ], 'Basket has half a dozen eggs', 'explicit plural given at beginning get resolved for 6' );
|
||||
|
|
@ -157,10 +157,10 @@
|
|||
|
||||
assert.strictEqual( mw.message( 'mediawiki-test-pagetriage-del-talk-page-notify-summary', specialCharactersPageName ).escaped(), 'Notifying author of deletion nomination for [[' + mw.html.escape( specialCharactersPageName ) + ']]', 'Double square brackets with one parameter, when escaped' );
|
||||
|
||||
assert.ok( mw.messages.set( 'mediawiki-test-categorytree-collapse-bullet', '[<b>−</b>]' ), 'mw.messages.set: Register' );
|
||||
assert.true( mw.messages.set( 'mediawiki-test-categorytree-collapse-bullet', '[<b>−</b>]' ), 'mw.messages.set: Register' );
|
||||
assert.strictEqual( mw.message( 'mediawiki-test-categorytree-collapse-bullet' ).plain(), mw.messages.get( 'mediawiki-test-categorytree-collapse-bullet' ), 'Single square brackets unchanged in plain mode' );
|
||||
|
||||
assert.ok( mw.messages.set( 'mediawiki-test-wikieditor-toolbar-help-content-signature-result', '<a href=\'#\' title=\'{{#special:mypage}}\'>Username</a> (<a href=\'#\' title=\'{{#special:mytalk}}\'>talk</a>)' ), 'mw.messages.set: Register' );
|
||||
assert.true( mw.messages.set( 'mediawiki-test-wikieditor-toolbar-help-content-signature-result', '<a href=\'#\' title=\'{{#special:mypage}}\'>Username</a> (<a href=\'#\' title=\'{{#special:mytalk}}\'>talk</a>)' ), 'mw.messages.set: Register' );
|
||||
assert.strictEqual( mw.message( 'mediawiki-test-wikieditor-toolbar-help-content-signature-result' ).plain(), mw.messages.get( 'mediawiki-test-wikieditor-toolbar-help-content-signature-result' ), 'HTML message with curly braces is not changed in plain mode' );
|
||||
|
||||
assertMultipleFormats( [ 'gender-plural-msg', 'male', 1 ], [ 'text', 'parse', 'escaped' ], 'he is awesome', 'Gender and plural are resolved' );
|
||||
|
|
@ -176,7 +176,7 @@
|
|||
assertMultipleFormats( [ 'int-msg' ], [ 'text', 'parse', 'escaped' ], 'Some Other Message', 'int is resolved' );
|
||||
assert.strictEqual( mw.message( 'int-msg' ).plain(), mw.messages.get( 'int-msg' ), 'int is not resolved in plain mode' );
|
||||
|
||||
assert.ok( mw.messages.set( 'mediawiki-italics-msg', '<i>Very</i> important' ), 'mw.messages.set: Register' );
|
||||
assert.true( mw.messages.set( 'mediawiki-italics-msg', '<i>Very</i> important' ), 'mw.messages.set: Register' );
|
||||
assertMultipleFormats( [ 'mediawiki-italics-msg' ], [ 'plain', 'text', 'parse' ], mw.messages.get( 'mediawiki-italics-msg' ), 'Simple italics unchanged' );
|
||||
assert.htmlEqual(
|
||||
mw.message( 'mediawiki-italics-msg' ).escaped(),
|
||||
|
|
@ -184,7 +184,7 @@
|
|||
'Italics are escaped in escaped mode'
|
||||
);
|
||||
|
||||
assert.ok( mw.messages.set( 'mediawiki-italics-with-link', 'An <i>italicized [[link|wiki-link]]</i>' ), 'mw.messages.set: Register' );
|
||||
assert.true( mw.messages.set( 'mediawiki-italics-with-link', 'An <i>italicized [[link|wiki-link]]</i>' ), 'mw.messages.set: Register' );
|
||||
assertMultipleFormats( [ 'mediawiki-italics-with-link' ], [ 'plain', 'text' ], mw.messages.get( 'mediawiki-italics-with-link' ), 'Italics with link unchanged' );
|
||||
assert.htmlEqual(
|
||||
mw.message( 'mediawiki-italics-with-link' ).escaped(),
|
||||
|
|
@ -197,7 +197,7 @@
|
|||
'Italics with link inside in parse mode'
|
||||
);
|
||||
|
||||
assert.ok( mw.messages.set( 'mediawiki-script-msg', '<script >alert( "Who put this script here?" );</script>' ), 'mw.messages.set: Register' );
|
||||
assert.true( mw.messages.set( 'mediawiki-script-msg', '<script >alert( "Who put this script here?" );</script>' ), 'mw.messages.set: Register' );
|
||||
assertMultipleFormats( [ 'mediawiki-script-msg' ], [ 'plain', 'text' ], mw.messages.get( 'mediawiki-script-msg' ), 'Script unchanged' );
|
||||
assert.htmlEqual(
|
||||
mw.message( 'mediawiki-script-msg' ).escaped(),
|
||||
|
|
@ -223,11 +223,11 @@
|
|||
} );
|
||||
|
||||
QUnit.test( 'mw.msg', function ( assert ) {
|
||||
assert.ok( mw.messages.set( 'hello', 'Hello <b>awesome</b> world' ), 'mw.messages.set: Register' );
|
||||
assert.true( mw.messages.set( 'hello', 'Hello <b>awesome</b> world' ), 'mw.messages.set: Register' );
|
||||
assert.strictEqual( mw.msg( 'hello' ), 'Hello <b>awesome</b> world', 'Gets message with default options (existing message)' );
|
||||
assert.strictEqual( mw.msg( 'goodbye' ), '⧼goodbye⧽', 'Gets message with default options (nonexistent message)' );
|
||||
|
||||
assert.ok( mw.messages.set( 'plural-item', 'Found $1 {{PLURAL:$1|item|items}}' ), 'mw.messages.set: Register' );
|
||||
assert.true( mw.messages.set( 'plural-item', 'Found $1 {{PLURAL:$1|item|items}}' ), 'mw.messages.set: Register' );
|
||||
assert.strictEqual( mw.msg( 'plural-item', 5 ), 'Found 5 items', 'Apply plural for count 5' );
|
||||
assert.strictEqual( mw.msg( 'plural-item', 0 ), 'Found 0 items', 'Apply plural for count 0' );
|
||||
assert.strictEqual( mw.msg( 'plural-item', 1 ), 'Found 1 item', 'Apply plural for count 1' );
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
setup: function ( assert ) {
|
||||
// Expose for load.mock.php
|
||||
mw.loader.testFail = function ( reason ) {
|
||||
assert.ok( false, reason );
|
||||
assert.true( false, reason );
|
||||
};
|
||||
|
||||
this.resetStore = false;
|
||||
|
|
@ -155,10 +155,10 @@
|
|||
] );
|
||||
mw.loader.using( 'test.set.circleC' ).then(
|
||||
function () {
|
||||
assert.ok( false, 'Unexpected resolution, expected error.' );
|
||||
assert.true( false, 'Unexpected resolution, expected error.' );
|
||||
},
|
||||
function ( e ) {
|
||||
assert.ok( /Circular/.test( String( e ) ), 'Detect circular dependency' );
|
||||
assert.true( /Circular/.test( String( e ) ), 'Detect circular dependency' );
|
||||
}
|
||||
)
|
||||
.always( done );
|
||||
|
|
@ -185,10 +185,10 @@
|
|||
] );
|
||||
mw.loader.using( 'test.shim.circleC' ).then(
|
||||
function () {
|
||||
assert.ok( false, 'Unexpected resolution, expected error.' );
|
||||
assert.true( false, 'Unexpected resolution, expected error.' );
|
||||
},
|
||||
function ( e ) {
|
||||
assert.ok( /Circular/.test( String( e ) ), 'Detect circular dependency' );
|
||||
assert.true( /Circular/.test( String( e ) ), 'Detect circular dependency' );
|
||||
}
|
||||
)
|
||||
.always( done );
|
||||
|
|
@ -251,10 +251,10 @@
|
|||
|
||||
mw.loader.using( 'test.using.unreg' ).then(
|
||||
function () {
|
||||
assert.ok( false, 'Unexpected resolution, expected error.' );
|
||||
assert.true( false, 'Unexpected resolution, expected error.' );
|
||||
},
|
||||
function ( e ) {
|
||||
assert.ok( /Unknown/.test( String( e ) ), 'Detect unknown dependency' );
|
||||
assert.true( /Unknown/.test( String( e ) ), 'Detect unknown dependency' );
|
||||
}
|
||||
).always( done );
|
||||
} );
|
||||
|
|
@ -298,7 +298,7 @@
|
|||
QUnit.test( '.implement( styles={ "css": [text, ..] } )', function ( assert ) {
|
||||
var $element = $( '<div class="mw-test-implement-a"></div>' ).appendTo( '#qunit-fixture' );
|
||||
|
||||
assert.notEqual(
|
||||
assert.notStrictEqual(
|
||||
$element.css( 'float' ),
|
||||
'right',
|
||||
'style is clear'
|
||||
|
|
@ -327,17 +327,17 @@
|
|||
$element3 = $( '<div class="mw-test-implement-b3"></div>' ).appendTo( '#qunit-fixture' ),
|
||||
done = assert.async();
|
||||
|
||||
assert.notEqual(
|
||||
assert.notStrictEqual(
|
||||
$element1.css( 'text-align' ),
|
||||
'center',
|
||||
'style is clear'
|
||||
);
|
||||
assert.notEqual(
|
||||
assert.notStrictEqual(
|
||||
$element2.css( 'float' ),
|
||||
'left',
|
||||
'style is clear'
|
||||
);
|
||||
assert.notEqual(
|
||||
assert.notStrictEqual(
|
||||
$element3.css( 'text-align' ),
|
||||
'right',
|
||||
'style is clear'
|
||||
|
|
@ -351,7 +351,7 @@
|
|||
// assertStyleAsync calls have completed.
|
||||
var pending = 2;
|
||||
assertStyleAsync( assert, $element2, 'float', 'left', function () {
|
||||
assert.notEqual( $element1.css( 'text-align' ), 'center', 'print style is not applied' );
|
||||
assert.notStrictEqual( $element1.css( 'text-align' ), 'center', 'print style is not applied' );
|
||||
|
||||
pending--;
|
||||
if ( pending === 0 ) {
|
||||
|
|
@ -359,7 +359,7 @@
|
|||
}
|
||||
} );
|
||||
assertStyleAsync( assert, $element3, 'float', 'right', function () {
|
||||
assert.notEqual( $element1.css( 'text-align' ), 'center', 'print style is not applied' );
|
||||
assert.notStrictEqual( $element1.css( 'text-align' ), 'center', 'print style is not applied' );
|
||||
|
||||
pending--;
|
||||
if ( pending === 0 ) {
|
||||
|
|
@ -435,12 +435,12 @@
|
|||
var $element = $( '<div class="mw-test-implement-e"></div>' ).appendTo( '#qunit-fixture' ),
|
||||
$element2 = $( '<div class="mw-test-implement-e2"></div>' ).appendTo( '#qunit-fixture' );
|
||||
|
||||
assert.notEqual(
|
||||
assert.notStrictEqual(
|
||||
$element.css( 'float' ),
|
||||
'right',
|
||||
'style is clear'
|
||||
);
|
||||
assert.notEqual(
|
||||
assert.notStrictEqual(
|
||||
$element2.css( 'float' ),
|
||||
'left',
|
||||
'style is clear'
|
||||
|
|
@ -495,7 +495,7 @@
|
|||
mw.loader.implement( 'test.implement.msgs', [], {}, { T31107: 'loaded' } );
|
||||
|
||||
return mw.loader.using( 'test.implement.msgs', function () {
|
||||
assert.ok( mw.messages.exists( 'T31107' ), 'T31107: messages-only module should implement ok' );
|
||||
assert.true( mw.messages.exists( 'T31107' ), 'T31107: messages-only module should implement ok' );
|
||||
} );
|
||||
} );
|
||||
|
||||
|
|
@ -543,7 +543,7 @@
|
|||
{}
|
||||
);
|
||||
mw.loader.using( 'test.implement.packageFiles' ).done( function () {
|
||||
assert.ok( initJsRan, 'main JS file is executed' );
|
||||
assert.true( initJsRan, 'main JS file is executed' );
|
||||
done();
|
||||
} );
|
||||
} );
|
||||
|
|
@ -755,8 +755,7 @@
|
|||
function ( e, modules ) {
|
||||
// When the server sets state of 'testMissing' to 'missing'
|
||||
// it should bubble up and trigger the error callback of the job for 'testUsesNestedMissing'.
|
||||
// eslint-disable-next-line qunit/no-ok-equality
|
||||
assert.ok( modules.indexOf( 'testMissing' ) !== -1, 'Triggered by testMissing.' );
|
||||
assert.true( modules.indexOf( 'testMissing' ) !== -1, 'Triggered by testMissing.' );
|
||||
|
||||
verifyModuleStates();
|
||||
}
|
||||
|
|
@ -801,7 +800,7 @@
|
|||
mw.loader.testCallback = function () {
|
||||
// Ensure once, delete now
|
||||
delete mw.loader.testCallback;
|
||||
assert.ok( true, 'callback' );
|
||||
assert.true( true, 'callback' );
|
||||
done();
|
||||
};
|
||||
|
||||
|
|
@ -820,7 +819,7 @@
|
|||
mw.loader.testCallback = function () {
|
||||
// Ensure once, delete now
|
||||
delete mw.loader.testCallback;
|
||||
assert.ok( true, 'callback' );
|
||||
assert.true( true, 'callback' );
|
||||
done();
|
||||
};
|
||||
|
||||
|
|
@ -942,7 +941,7 @@
|
|||
|
||||
// Legacy behaviour is storing under the expected version,
|
||||
// which woudl lead to whitewashing and stale values (T117587).
|
||||
assert.ok( mw.loader.store.get( 'test.stalebc' ), 'In store' );
|
||||
assert.strictEqual( typeof mw.loader.store.get( 'test.stalebc' ), 'string', 'In store' );
|
||||
} );
|
||||
} );
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue