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.js56
1 files changed, 56 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 000000000..a666156b1
--- /dev/null
+++ b/devtools/client/styleeditor/test/browser_styleeditor_bug_851132_middle_click.js
@@ -0,0 +1,56 @@
+/* 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 styleeditor.xul in a new
+// tab (bug 851132).
+
+const TESTCASE_URI = TEST_BASE_HTTP + "four.html";
+
+add_task(function* () {
+ let { ui } = yield openStyleEditorForURL(TESTCASE_URI);
+ gBrowser.tabContainer.addEventListener("TabOpen", onTabAdded, false);
+
+ yield ui.editors[0].getSourceEditor();
+ info("first editor selected");
+
+ info("Left-clicking on the second editor link.");
+ yield clickOnStyleSheetLink(ui.editors[1], 0);
+
+ info("Waiting for the second editor to be selected.");
+ let editor = yield 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.");
+ yield 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.
+ */
+function* clickOnStyleSheetLink(editor, button) {
+ let window = editor._window;
+ let link = editor.summary.querySelector(".stylesheet-name");
+
+ info("Waiting for focus.");
+ yield 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, false);
+});