mediawiki-extensions-Multim.../tests/qunit/mmv/mmv.logger.test.js

63 lines
2 KiB
JavaScript
Raw Normal View History

( function ( mw ) {
QUnit.module( 'mmv.logger', QUnit.newMwEnvironment() );
QUnit.test( 'log()', 14, function ( assert ) {
var oldMwLog = mw.log,
oldEventLog = mw.eventLog,
oldLogActions = mw.mmv.logger.logActions,
loggedMessage,
action1key = 'test-1',
action1value = 'Test',
action2key = 'test-2',
action2value = 'Foo $1 $2 bar',
unknownAction = 'test-3',
logEventCalled;
mw.log = function( message ) {
loggedMessage = message;
};
mw.eventLog = {
logEvent : function ( name, event ) {
logEventCalled = true;
assert.strictEqual( event.version, '1.1', 'Correct version' );
assert.strictEqual( name, 'MediaViewer', 'Event name is correct' );
} };
mw.mmv.logger.logActions = {};
mw.mmv.logger.logActions[ action1key ] = action1value;
mw.mmv.logger.logActions[ action2key ] = action2value;
logEventCalled = false;
mw.mmv.logger.log( unknownAction );
assert.strictEqual( loggedMessage, unknownAction, 'Log message defaults to unknown key' );
assert.ok( logEventCalled, 'event log has been recorded' );
loggedMessage = undefined;
logEventCalled = false;
mw.mmv.logger.log( action1key );
assert.strictEqual( loggedMessage, action1value, 'Log message is translated to its text' );
assert.ok( logEventCalled, 'event log has been recorded' );
loggedMessage = undefined;
logEventCalled = false;
mw.mmv.logger.log( action1key, true );
assert.strictEqual( loggedMessage, action1value, 'Log message is translated to its text' );
assert.ok( !logEventCalled, 'event log has been skipped' );
loggedMessage = undefined;
logEventCalled = false;
mw.mmv.logger.log( action2key, false, { '$1' : 'X', '$2' : 'Y' } );
assert.strictEqual( loggedMessage, 'Foo X Y bar',
'Log message is translated to its text with substitutions' );
assert.ok( logEventCalled, 'event log has been recorded' );
mw.log = oldMwLog;
mw.mmv.logger.logActions = oldLogActions;
mw.eventLog = oldEventLog;
} );
}( mediaWiki ) );