// killing the test and assuming timeout failure.
QUnit.config.testTimeout = 60 * 1000;
+ // Reduce default animation duration from 400ms to 0ms for unit tests
+ $.fx.speeds._default = 0;
+
// Add a checkbox to QUnit header to toggle MediaWiki ResourceLoader debug mode.
QUnit.config.urlConfig.push( {
id: 'debug',
*/
QUnit.newMwEnvironment = ( function () {
var warn, error, liveConfig, liveMessages,
+ MwMap = mw.config.constructor, // internal use only
ajaxRequests = [];
- liveConfig = mw.config.values;
- liveMessages = mw.messages.values;
+ liveConfig = mw.config;
+ liveMessages = mw.messages;
function suppressWarnings() {
warn = mw.log.warn;
// NOTE: It is important that we suppress warnings because extend() will also access
// deprecated properties and trigger deprecation warnings from mw.log#deprecate.
suppressWarnings();
- copy = $.extend( {}, liveConfig, custom );
+ copy = $.extend( {}, liveConfig.get(), custom );
restoreWarnings();
return copy;
}
function freshMessagesCopy( custom ) {
- return $.extend( /*deep=*/true, {}, liveMessages, custom );
+ return $.extend( /*deep=*/true, {}, liveMessages.get(), custom );
}
/**
setup: function () {
// Greetings, mock environment!
- mw.config.values = freshConfigCopy( localEnv.config );
- mw.messages.values = freshMessagesCopy( localEnv.messages );
+ mw.config = new MwMap();
+ mw.config.set( freshConfigCopy( localEnv.config ) );
+ mw.messages = new MwMap();
+ mw.messages.set( freshMessagesCopy( localEnv.messages ) );
+ // Update reference to mw.messages
+ mw.jqueryMsg.setParserDefaults( {
+ messages: mw.messages
+ } );
+
this.suppressWarnings = suppressWarnings;
this.restoreWarnings = restoreWarnings;
$( document ).off( 'ajaxSend', trackAjax );
// Farewell, mock environment!
- mw.config.values = liveConfig;
- mw.messages.values = liveMessages;
+ mw.config = liveConfig;
+ mw.messages = liveMessages;
+ // Restore reference to mw.messages
+ mw.jqueryMsg.setParserDefaults( {
+ messages: liveMessages
+ } );
// As a convenience feature, automatically restore warnings if they're
// still suppressed by the end of the test.