summaryrefslogtreecommitdiff
path: root/www/wiki/tests/qunit/suites/resources/mediawiki/mediawiki.experiments.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/tests/qunit/suites/resources/mediawiki/mediawiki.experiments.test.js')
-rw-r--r--www/wiki/tests/qunit/suites/resources/mediawiki/mediawiki.experiments.test.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/www/wiki/tests/qunit/suites/resources/mediawiki/mediawiki.experiments.test.js b/www/wiki/tests/qunit/suites/resources/mediawiki/mediawiki.experiments.test.js
new file mode 100644
index 00000000..177c3580
--- /dev/null
+++ b/www/wiki/tests/qunit/suites/resources/mediawiki/mediawiki.experiments.test.js
@@ -0,0 +1,63 @@
+( function ( mw ) {
+
+ var getBucket = mw.experiments.getBucket;
+
+ function createExperiment() {
+ return {
+ name: 'experiment',
+ enabled: true,
+ buckets: {
+ control: 0.25,
+ A: 0.25,
+ B: 0.25,
+ C: 0.25
+ }
+ };
+ }
+
+ QUnit.module( 'mediawiki.experiments' );
+
+ QUnit.test( 'getBucket( experiment, token )', function ( assert ) {
+ var experiment = createExperiment(),
+ token = '123457890';
+
+ assert.equal(
+ getBucket( experiment, token ),
+ getBucket( experiment, token ),
+ 'It returns the same bucket for the same experiment-token pair.'
+ );
+
+ // --------
+ experiment = createExperiment();
+ experiment.buckets = {
+ A: 0.314159265359
+ };
+
+ assert.equal(
+ 'A',
+ getBucket( experiment, token ),
+ 'It returns the bucket if only one is defined.'
+ );
+
+ // --------
+ experiment = createExperiment();
+ experiment.enabled = false;
+
+ assert.equal(
+ 'control',
+ getBucket( experiment, token ),
+ 'It returns "control" if the experiment is disabled.'
+ );
+
+ // --------
+ experiment = createExperiment();
+ experiment.buckets = {};
+
+ assert.equal(
+ 'control',
+ getBucket( experiment, token ),
+ 'It returns "control" if the experiment doesn\'t have any buckets.'
+ );
+ } );
+
+}( mediaWiki ) );