diff options
Diffstat (limited to 'www/wiki/extensions/MultimediaViewer/tests/qunit/mmv/logging/mmv.logging.ActionLogger.test.js')
-rw-r--r-- | www/wiki/extensions/MultimediaViewer/tests/qunit/mmv/logging/mmv.logging.ActionLogger.test.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/www/wiki/extensions/MultimediaViewer/tests/qunit/mmv/logging/mmv.logging.ActionLogger.test.js b/www/wiki/extensions/MultimediaViewer/tests/qunit/mmv/logging/mmv.logging.ActionLogger.test.js new file mode 100644 index 00000000..9a1808c4 --- /dev/null +++ b/www/wiki/extensions/MultimediaViewer/tests/qunit/mmv/logging/mmv.logging.ActionLogger.test.js @@ -0,0 +1,48 @@ +( function ( mw, $ ) { + QUnit.module( 'mmv.logging.ActionLogger', QUnit.newMwEnvironment() ); + + QUnit.test( 'log()', function ( assert ) { + var fakeEventLog = { logEvent: this.sandbox.stub() }, + logger = new mw.mmv.logging.ActionLogger(), + action1key = 'test-1', + action1value = 'Test', + action2key = 'test-2', + action2value = 'Foo $1 $2 bar', + unknownAction = 'test-3', + clock = this.sandbox.useFakeTimers(); + + this.sandbox.stub( logger, 'loadDependencies' ).returns( $.Deferred().resolve() ); + this.sandbox.stub( mw, 'log' ); + + logger.samplingFactorMap = { 'default': 1 }; + logger.setEventLog( fakeEventLog ); + logger.logActions = {}; + logger.logActions[ action1key ] = action1value; + logger.logActions[ action2key ] = action2value; + + logger.log( unknownAction ); + clock.tick( 10 ); + + assert.strictEqual( mw.log.lastCall.args[ 0 ], unknownAction, 'Log message defaults to unknown key' ); + assert.ok( fakeEventLog.logEvent.called, 'event log has been recorded' ); + + mw.log.reset(); + fakeEventLog.logEvent.reset(); + logger.log( action1key ); + clock.tick( 10 ); + + assert.strictEqual( mw.log.lastCall.args[ 0 ], action1value, 'Log message is translated to its text' ); + assert.ok( fakeEventLog.logEvent.called, 'event log has been recorded' ); + + mw.log.reset(); + fakeEventLog.logEvent.reset(); + logger.samplingFactorMap = { 'default': 0 }; + logger.log( action1key, true ); + clock.tick( 10 ); + + assert.ok( !mw.log.called, 'No logging when disabled' ); + assert.ok( fakeEventLog.logEvent.called, 'event log has been recorded' ); + + clock.restore(); + } ); +}( mediaWiki, jQuery ) ); |