62 lines
1.9 KiB
JavaScript
62 lines
1.9 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
function runPaneTest(fn) {
|
|
function observer(win, topic, data) {
|
|
Services.obs.removeObserver(observer, "advanced-pane-loaded");
|
|
|
|
let policy = Components.classes["@mozilla.org/datareporting/service;1"]
|
|
.getService(Components.interfaces.nsISupports)
|
|
.wrappedJSObject
|
|
.policy;
|
|
Assert.ok(policy, "Policy object defined.");
|
|
|
|
resetPreferences();
|
|
|
|
fn(win);
|
|
}
|
|
|
|
Services.obs.addObserver(observer, "advanced-pane-loaded", false);
|
|
openDialog("chrome://browser/content/preferences/preferences.xul", "Preferences",
|
|
"chrome,titlebar,toolbar,centerscreen,dialog=no", "paneAdvanced");
|
|
}
|
|
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
resetPreferences();
|
|
registerCleanupFunction(resetPreferences);
|
|
|
|
runPaneTest(testTelemetryState);
|
|
}
|
|
|
|
function testTelemetryState(win) {
|
|
let doc = win.document;
|
|
|
|
let fhrCheckbox = doc.getElementById("submitHealthReportBox");
|
|
Assert.ok(fhrCheckbox.checked, "Health Report checkbox is checked on app first run.");
|
|
|
|
let telmetryCheckbox = doc.getElementById("submitTelemetryBox");
|
|
Assert.ok(!telmetryCheckbox.disabled,
|
|
"Telemetry checkbox must be enabled if FHR is checked.");
|
|
|
|
// Uncheck the FHR checkbox and make sure that Telemetry checkbox gets disabled.
|
|
fhrCheckbox.click();
|
|
|
|
Assert.ok(telmetryCheckbox.disabled,
|
|
"Telemetry checkbox must be disabled if FHR is unchecked.");
|
|
|
|
win.close();
|
|
finish();
|
|
}
|
|
|
|
function resetPreferences() {
|
|
let service = Cc["@mozilla.org/datareporting/service;1"]
|
|
.getService(Ci.nsISupports)
|
|
.wrappedJSObject;
|
|
service.policy._prefs.resetBranch("datareporting.policy.");
|
|
service.policy.dataSubmissionPolicyBypassNotification = true;
|
|
}
|
|
|