summaryrefslogtreecommitdiffstats
path: root/devtools/client/framework/test/browser_toolbox_options_enable_serviceworkers_testing.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /devtools/client/framework/test/browser_toolbox_options_enable_serviceworkers_testing.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/client/framework/test/browser_toolbox_options_enable_serviceworkers_testing.js')
-rw-r--r--devtools/client/framework/test/browser_toolbox_options_enable_serviceworkers_testing.js126
1 files changed, 126 insertions, 0 deletions
diff --git a/devtools/client/framework/test/browser_toolbox_options_enable_serviceworkers_testing.js b/devtools/client/framework/test/browser_toolbox_options_enable_serviceworkers_testing.js
new file mode 100644
index 000000000..3273f4395
--- /dev/null
+++ b/devtools/client/framework/test/browser_toolbox_options_enable_serviceworkers_testing.js
@@ -0,0 +1,126 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Test that enabling Service Workers testing option enables the
+// mServiceWorkersTestingEnabled attribute added to nsPIDOMWindow.
+
+const COMMON_FRAME_SCRIPT_URL =
+ "chrome://devtools/content/shared/frame-script-utils.js";
+const ROOT_TEST_DIR =
+ getRootDirectory(gTestPath);
+const FRAME_SCRIPT_URL =
+ ROOT_TEST_DIR +
+ "browser_toolbox_options_enable_serviceworkers_testing_frame_script.js";
+const TEST_URI = URL_ROOT +
+ "browser_toolbox_options_enable_serviceworkers_testing.html";
+
+const ELEMENT_ID = "devtools-enable-serviceWorkersTesting";
+
+var toolbox;
+
+function test() {
+ // Note: Pref dom.serviceWorkers.testing.enabled is false since we are testing
+ // the same capabilities are enabled with the devtool pref.
+ SpecialPowers.pushPrefEnv({"set": [
+ ["dom.serviceWorkers.exemptFromPerDomainMax", true],
+ ["dom.serviceWorkers.enabled", true],
+ ["dom.serviceWorkers.testing.enabled", false]
+ ]}, init);
+}
+
+function init() {
+ addTab(TEST_URI).then(tab => {
+ let target = TargetFactory.forTab(tab);
+ let linkedBrowser = tab.linkedBrowser;
+
+ linkedBrowser.messageManager.loadFrameScript(COMMON_FRAME_SCRIPT_URL, false);
+ linkedBrowser.messageManager.loadFrameScript(FRAME_SCRIPT_URL, false);
+
+ gDevTools.showToolbox(target).then(testSelectTool);
+ });
+}
+
+function testSelectTool(aToolbox) {
+ toolbox = aToolbox;
+ toolbox.once("options-selected", start);
+ toolbox.selectTool("options");
+}
+
+function register() {
+ return executeInContent("devtools:sw-test:register");
+}
+
+function unregister(swr) {
+ return executeInContent("devtools:sw-test:unregister");
+}
+
+function registerAndUnregisterInFrame() {
+ return executeInContent("devtools:sw-test:iframe:register-and-unregister");
+}
+
+function testRegisterFails(data) {
+ is(data.success, false, "Register should fail with security error");
+ return promise.resolve();
+}
+
+function toggleServiceWorkersTestingCheckbox() {
+ let panel = toolbox.getCurrentPanel();
+ let cbx = panel.panelDoc.getElementById(ELEMENT_ID);
+
+ cbx.scrollIntoView();
+
+ if (cbx.checked) {
+ info("Clearing checkbox to disable service workers testing");
+ } else {
+ info("Checking checkbox to enable service workers testing");
+ }
+
+ cbx.click();
+
+ return promise.resolve();
+}
+
+function reload() {
+ let deferred = defer();
+
+ gBrowser.selectedBrowser.addEventListener("load", function onLoad(evt) {
+ gBrowser.selectedBrowser.removeEventListener(evt.type, onLoad, true);
+ deferred.resolve();
+ }, true);
+
+ executeInContent("devtools:test:reload", {}, {}, false);
+ return deferred.promise;
+}
+
+function testRegisterSuccesses(data) {
+ is(data.success, true, "Register should success");
+ return promise.resolve();
+}
+
+function start() {
+ register()
+ .then(testRegisterFails)
+ .then(toggleServiceWorkersTestingCheckbox)
+ .then(reload)
+ .then(register)
+ .then(testRegisterSuccesses)
+ .then(unregister)
+ .then(registerAndUnregisterInFrame)
+ .then(testRegisterSuccesses)
+ // Workers should be turned back off when we closes the toolbox
+ .then(toolbox.destroy.bind(toolbox))
+ .then(reload)
+ .then(register)
+ .then(testRegisterFails)
+ .catch(function (e) {
+ ok(false, "Some test failed with error " + e);
+ }).then(finishUp);
+}
+
+function finishUp() {
+ gBrowser.removeCurrentTab();
+ toolbox = null;
+ finish();
+}