summaryrefslogtreecommitdiffstats
path: root/devtools/client/styleeditor/test/browser_styleeditor_fission_switch_target.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/styleeditor/test/browser_styleeditor_fission_switch_target.js')
-rw-r--r--devtools/client/styleeditor/test/browser_styleeditor_fission_switch_target.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/devtools/client/styleeditor/test/browser_styleeditor_fission_switch_target.js b/devtools/client/styleeditor/test/browser_styleeditor_fission_switch_target.js
new file mode 100644
index 0000000000..3f5bf34fd1
--- /dev/null
+++ b/devtools/client/styleeditor/test/browser_styleeditor_fission_switch_target.js
@@ -0,0 +1,33 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+"use strict";
+
+// Test switching for the top-level target.
+
+const PARENT_PROCESS_URI = "about:robots";
+const CONTENT_PROCESS_URI = TEST_BASE_HTTPS + "simple.html";
+
+add_task(async function () {
+ // We use about:robots, because this page will run in the parent process.
+ // Navigating from about:robots to a regular content page will always trigger a target
+ // switch, with or without fission.
+
+ info("Open a page that runs in the parent process");
+ const { ui } = await openStyleEditorForURL(PARENT_PROCESS_URI);
+ await waitUntil(() => ui.editors.length === 7);
+ ok(true, `Seven style sheets for ${PARENT_PROCESS_URI}`);
+
+ info("Navigate to a page that runs in the child process");
+ await navigateToAndWaitForStyleSheets(CONTENT_PROCESS_URI, ui, 2);
+ // We also have to wait for the toolbox to complete the target switching
+ // in order to avoid pending requests during test teardown.
+ ok(
+ ui.editors.every(
+ editor => editor._resource.nodeHref == CONTENT_PROCESS_URI
+ ),
+ `Two sheets present for ${CONTENT_PROCESS_URI}`
+ );
+
+ info("Wait until the editor is ready");
+ await waitFor(() => ui.selectedEditor?.sourceEditor);
+});