summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/MultimediaViewer/tests/qunit/mmv/logging/mmv.logging.ActionLogger.test.js
blob: 9a1808c4ecf78d7d80ab05f39b1e2bb6416393f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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 ) );