-/* global CompletenessTest, sinon */
+/* global sinon */
( function ( $, mw, QUnit ) {
'use strict';
- var mwTestIgnore, addons;
+ var addons;
/**
* Add bogus to url to prevent IE crazy caching
value: 'true'
} );
- /**
- * CompletenessTest
- *
- * Adds toggle checkbox to header
- */
- QUnit.config.urlConfig.push( {
- id: 'completenesstest',
- label: 'Run CompletenessTest',
- tooltip: 'Run the completeness test'
- } );
-
/**
* SinonJS
*
};
}() );
- // Initiate when enabled
- if ( QUnit.urlParams.completenesstest ) {
-
- // Return true to ignore
- mwTestIgnore = function ( val, tester ) {
-
- // Don't record methods of the properties of constructors,
- // to avoid getting into a loop (prototype.constructor.prototype..).
- // Since we're therefor skipping any injection for
- // "new mw.Foo()", manually set it to true here.
- if ( val instanceof mw.Map ) {
- tester.methodCallTracker.Map = true;
- return true;
- }
- if ( val instanceof mw.Title ) {
- tester.methodCallTracker.Title = true;
- return true;
- }
-
- // Don't record methods of the properties of a jQuery object
- if ( val instanceof $ ) {
- return true;
- }
-
- // Don't iterate over the module registry (the 'script' references would
- // be listed as untested methods otherwise)
- if ( val === mw.loader.moduleRegistry ) {
- return true;
- }
-
- return false;
- };
-
- // eslint-disable-next-line no-new
- new CompletenessTest( mw, mwTestIgnore );
- }
-
/**
* Reset mw.config and others to a fresh copy of the live config for each test(),
* and restore it back to the live one afterwards.