From 04c78944530b091f5be2bad271877aa1282a3c84 Mon Sep 17 00:00:00 2001 From: Alessio Placitelli Date: Tue, 15 Dec 2015 05:44:00 +0100 Subject: [PATCH] Bug 1217282 - Add test coverage. r=gfritzsche --- browser/experiments/test/xpcshell/head.js | 4 ++++ .../test/xpcshell/test_telemetry_disabled.js | 21 +++++++++++++++++++ .../experiments/test/xpcshell/xpcshell.ini | 1 + .../test/browser/browser_experiments.js | 4 ++++ 4 files changed, 30 insertions(+) create mode 100644 browser/experiments/test/xpcshell/test_telemetry_disabled.js diff --git a/browser/experiments/test/xpcshell/head.js b/browser/experiments/test/xpcshell/head.js index 40eb9aa01a9..436d9345d3b 100644 --- a/browser/experiments/test/xpcshell/head.js +++ b/browser/experiments/test/xpcshell/head.js @@ -233,3 +233,7 @@ function replaceExperiments(experiment, list) { }, }); } + +// Experiments require Telemetry to be enabled, and that's not true for debug +// builds. Let's just enable it here instead of going through each test. +Services.prefs.setBoolPref(PREF_TELEMETRY_ENABLED, true); diff --git a/browser/experiments/test/xpcshell/test_telemetry_disabled.js b/browser/experiments/test/xpcshell/test_telemetry_disabled.js new file mode 100644 index 00000000000..74f85ccfc7e --- /dev/null +++ b/browser/experiments/test/xpcshell/test_telemetry_disabled.js @@ -0,0 +1,21 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +Cu.import("resource:///modules/experiments/Experiments.jsm"); + +add_test(function test_experiments_activation() { + do_get_profile(); + loadAddonManager(); + + Services.prefs.setBoolPref(PREF_EXPERIMENTS_ENABLED, true); + Services.prefs.setBoolPref(PREF_TELEMETRY_ENABLED, false); + + let experiments = Experiments.instance(); + Assert.ok(!experiments.enabled, "Experiments must be disabled if Telemetry is disabled."); + + // TODO: Test that Experiments are turned back on when bug 1232648 lands. + + run_next_test(); +}); diff --git a/browser/experiments/test/xpcshell/xpcshell.ini b/browser/experiments/test/xpcshell/xpcshell.ini index cf716b9cbd8..a2d40d3f6be 100644 --- a/browser/experiments/test/xpcshell/xpcshell.ini +++ b/browser/experiments/test/xpcshell/xpcshell.ini @@ -24,6 +24,7 @@ generated-files = [test_disableExperiments.js] [test_fetch.js] [test_telemetry.js] +[test_telemetry_disabled.js] [test_healthreport.js] [test_previous_provider.js] [test_upgrade.js] diff --git a/toolkit/mozapps/extensions/test/browser/browser_experiments.js b/toolkit/mozapps/extensions/test/browser/browser_experiments.js index 766ea12edee..3920d667d81 100644 --- a/toolkit/mozapps/extensions/test/browser/browser_experiments.js +++ b/toolkit/mozapps/extensions/test/browser/browser_experiments.js @@ -98,6 +98,7 @@ add_task(function* initializeState() { registerCleanupFunction(() => { Services.prefs.clearUserPref("experiments.enabled"); + Services.prefs.clearUserPref("toolkit.telemetry.enabled"); if (gHttpServer) { gHttpServer.stop(() => {}); if (gSavedManifestURI !== undefined) { @@ -294,6 +295,7 @@ add_task(function* testActivateExperiment() { // We need to remove the cache file to help ensure consistent state. yield OS.File.remove(gExperiments._cacheFilePath); + Services.prefs.setBoolPref("toolkit.telemetry.enabled", true); Services.prefs.setBoolPref("experiments.enabled", true); info("Initializing experiments service."); @@ -635,6 +637,8 @@ add_task(function* testCleanup() { yield OS.File.remove(gExperiments._cacheFilePath); yield gExperiments.uninit(); yield gExperiments.init(); + + Services.prefs.clearUserPref("toolkit.telemetry.enabled"); } // Check post-conditions.