mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Popups
synced 2024-11-15 11:46:55 +00:00
912402e840
No longer needed. We can't turn something off again for people now they expect it to exist. Clarified usage instructions of PopupsEventLogging to make sure it's more scary given the implications Bug: T173952 Change-Id: I7be005b79da498d8e7b7df8f18b60c1327636a2c
65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
import { isEnabled } from '../../../src/instrumentation/eventLogging';
|
|
import * as stubs from '../stubs';
|
|
|
|
QUnit.module( 'ext.popups/instrumentation/eventLogging', {
|
|
beforeEach() {
|
|
this.config = stubs.createStubMap();
|
|
|
|
this.config.set( 'wgPopupsEventLogging', true );
|
|
|
|
this.window = {
|
|
navigator: {
|
|
sendBeacon() {}
|
|
}
|
|
};
|
|
|
|
this.user = stubs.createStubUser();
|
|
this.anonUser = stubs.createStubUser( true );
|
|
|
|
// Helper function that DRYs up the tests below.
|
|
this.isEnabled = function ( isAnon ) {
|
|
return isEnabled(
|
|
isAnon ? this.anonUser : this.user,
|
|
this.config,
|
|
this.window
|
|
);
|
|
};
|
|
}
|
|
} );
|
|
|
|
QUnit.test( 'it should return false when sendBeacon isn\'t supported', function ( assert ) {
|
|
const window = {};
|
|
assert.notOk( isEnabled( this.user, this.config, window ),
|
|
'No sendBeacon. No logging.' );
|
|
assert.notOk( isEnabled( this.anonUser, this.config, window ),
|
|
'No sendBeacon. No logging for anons.' );
|
|
// ---
|
|
|
|
window.navigator = {
|
|
sendBeacon: 'NOT A FUNCTION'
|
|
};
|
|
|
|
assert.notOk( isEnabled( this.user, this.config, window ) );
|
|
} );
|
|
|
|
QUnit.test( 'it should respect PopupsEventLogging', function ( assert ) {
|
|
assert.ok( this.isEnabled( true ) );
|
|
assert.notOk( this.isEnabled(), 'but not for logged in users' );
|
|
this.config.set( 'wgPopupsEventLogging', false );
|
|
assert.notOk( this.isEnabled(), 'authenticated users are not logged' );
|
|
assert.notOk( this.isEnabled( true ), 'anons are not logged' );
|
|
} );
|
|
|
|
QUnit.test( 'it should respect the debug flag always', function ( assert ) {
|
|
this.config.set( 'wgPopupsEventLogging', false );
|
|
this.config.set( 'debug', false );
|
|
assert.notOk( this.isEnabled(), 'authenticated not logged' );
|
|
assert.notOk( this.isEnabled( true ), 'anons not logged' );
|
|
|
|
this.config.set( 'debug', true );
|
|
assert.ok( this.isEnabled(), 'authenticated users are logged!' );
|
|
assert.ok( this.isEnabled( true ) );
|
|
|
|
this.config.set( 'wgPopupsEventLogging', true );
|
|
} );
|