Merge "user: Allow "CAS update failed" exceptions to be normalised"
[lhc/web/wiklou.git] / tests / qunit / suites / resources / mediawiki / mediawiki.experiments.test.js
1 ( function () {
2
3 var getBucket = mw.experiments.getBucket;
4
5 function createExperiment() {
6 return {
7 name: 'experiment',
8 enabled: true,
9 buckets: {
10 control: 0.25,
11 A: 0.25,
12 B: 0.25,
13 C: 0.25
14 }
15 };
16 }
17
18 QUnit.module( 'mediawiki.experiments' );
19
20 QUnit.test( 'getBucket( experiment, token )', function ( assert ) {
21 var experiment = createExperiment(),
22 token = '123457890';
23
24 assert.strictEqual(
25 getBucket( experiment, token ),
26 getBucket( experiment, token ),
27 'It returns the same bucket for the same experiment-token pair.'
28 );
29
30 // --------
31 experiment = createExperiment();
32 experiment.buckets = {
33 A: 0.314159265359
34 };
35
36 assert.strictEqual(
37 getBucket( experiment, token ),
38 'A',
39 'It returns the bucket if only one is defined.'
40 );
41
42 // --------
43 experiment = createExperiment();
44 experiment.enabled = false;
45
46 assert.strictEqual(
47 getBucket( experiment, token ),
48 'control',
49 'It returns "control" if the experiment is disabled.'
50 );
51
52 // --------
53 experiment = createExperiment();
54 experiment.buckets = {};
55
56 assert.strictEqual(
57 getBucket( experiment, token ),
58 'control',
59 'It returns "control" if the experiment doesn\'t have any buckets.'
60 );
61 } );
62
63 }() );