summaryrefslogtreecommitdiffstats
path: root/browser/actors/test/browser/browser_nested_link_clicks.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/actors/test/browser/browser_nested_link_clicks.js')
-rw-r--r--browser/actors/test/browser/browser_nested_link_clicks.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/browser/actors/test/browser/browser_nested_link_clicks.js b/browser/actors/test/browser/browser_nested_link_clicks.js
new file mode 100644
index 0000000000..32ac6a4685
--- /dev/null
+++ b/browser/actors/test/browser/browser_nested_link_clicks.js
@@ -0,0 +1,45 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/**
+ * Nested links should only open a single tab when ctrl-clicked.
+ */
+add_task(async function nested_link_click_opens_single_tab() {
+ await BrowserTestUtils.withNewTab(
+ "https://example.com/empty",
+ async browser => {
+ await SpecialPowers.spawn(browser, [], () => {
+ let doc = content.document;
+ let outerLink = doc.createElement("a");
+ outerLink.href = "https://mozilla.org/";
+ let link = doc.createElement("a");
+ link.href = "https://example.org/linked";
+ link.textContent = "Click me";
+ link.id = "mylink";
+ outerLink.append(link);
+ doc.body.append(outerLink);
+ });
+
+ let startingNumberOfTabs = gBrowser.tabs.length;
+ let newTabPromise = BrowserTestUtils.waitForNewTab(
+ gBrowser,
+ "https://example.org/linked",
+ true
+ );
+ await BrowserTestUtils.synthesizeMouseAtCenter(
+ "#mylink",
+ { accelKey: true },
+ browser
+ );
+ let tab = await newTabPromise;
+ is(
+ gBrowser.tabs.length,
+ startingNumberOfTabs + 1,
+ "Should only have opened 1 tab."
+ );
+ BrowserTestUtils.removeTab(tab);
+ }
+ );
+});