summaryrefslogtreecommitdiffstats
path: root/devtools/client/styleeditor/test/browser_styleeditor_bug_851132_middle_click.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/styleeditor/test/browser_styleeditor_bug_851132_middle_click.js')
-rw-r--r--devtools/client/styleeditor/test/browser_styleeditor_bug_851132_middle_click.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/devtools/client/styleeditor/test/browser_styleeditor_bug_851132_middle_click.js b/devtools/client/styleeditor/test/browser_styleeditor_bug_851132_middle_click.js
new file mode 100644
index 0000000000..ed0d5838b2
--- /dev/null
+++ b/devtools/client/styleeditor/test/browser_styleeditor_bug_851132_middle_click.js
@@ -0,0 +1,63 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+"use strict";
+
+// Test that middle click on style sheet doesn't open index.xhtml in a new
+// tab (bug 851132).
+
+const TESTCASE_URI = TEST_BASE_HTTP + "four.html";
+
+add_task(async function () {
+ const { ui } = await openStyleEditorForURL(TESTCASE_URI);
+ gBrowser.tabContainer.addEventListener("TabOpen", onTabAdded);
+
+ await ui.editors[0].getSourceEditor();
+ info("first editor selected");
+
+ await waitFor(
+ () => ui.editors[0].sourceEditor.hasFocus(),
+ "Wait until the initially selected editor grabs the focus"
+ );
+
+ info("Left-clicking on the second editor link.");
+ await clickOnStyleSheetLink(ui.editors[1], 0);
+
+ info("Waiting for the second editor to be selected.");
+ const editor = await ui.once("editor-selected");
+
+ ok(
+ editor.sourceEditor.hasFocus(),
+ "Left mouse click gave second editor focus."
+ );
+
+ // middle mouse click should not open a new tab
+ info("Middle clicking on the third editor link.");
+ await clickOnStyleSheetLink(ui.editors[2], 1);
+});
+
+/**
+ * A helper that clicks on style sheet link in the sidebar.
+ *
+ * @param {StyleSheetEditor} editor
+ * The editor of which link should be clicked.
+ * @param {MouseEvent.button} button
+ * The button to click the link with.
+ */
+async function clickOnStyleSheetLink(editor, button) {
+ const window = editor._window;
+ const link = editor.summary.querySelector(".stylesheet-name");
+
+ info("Waiting for focus.");
+ await SimpleTest.promiseFocus(window);
+
+ info("Pressing button " + button + " on style sheet name link.");
+ EventUtils.synthesizeMouseAtCenter(link, { button }, window);
+}
+
+function onTabAdded() {
+ ok(false, "middle mouse click has opened a new tab");
+}
+
+registerCleanupFunction(function () {
+ gBrowser.tabContainer.removeEventListener("TabOpen", onTabAdded);
+});