diff options
Diffstat (limited to 'browser/base/content/test/referrer/browser_referrer_open_link_in_container_tab.js')
-rw-r--r-- | browser/base/content/test/referrer/browser_referrer_open_link_in_container_tab.js | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/browser/base/content/test/referrer/browser_referrer_open_link_in_container_tab.js b/browser/base/content/test/referrer/browser_referrer_open_link_in_container_tab.js new file mode 100644 index 0000000000..3fe5df53c4 --- /dev/null +++ b/browser/base/content/test/referrer/browser_referrer_open_link_in_container_tab.js @@ -0,0 +1,80 @@ +// Tests referrer on context menu navigation - open link in new container tab. +// Selects "open link in new container tab" from the context menu. + +function getReferrerTest(aTestNumber) { + let testCase = _referrerTests[aTestNumber]; + if (testCase) { + // We want all the referrer tests to fail! + testCase.result = ""; + } + + return testCase; +} + +function startNewTabTestCase(aTestNumber) { + info( + "browser_referrer_open_link_in_container_tab: " + + getReferrerTestDescription(aTestNumber) + ); + contextMenuOpened(gTestWindow, "testlink").then(function (aContextMenu) { + someTabLoaded(gTestWindow).then(function (aNewTab) { + gTestWindow.gBrowser.selectedTab = aNewTab; + + checkReferrerAndStartNextTest( + aTestNumber, + null, + aNewTab, + startNewTabTestCase + ); + }); + + let menu = gTestWindow.document.getElementById( + "context-openlinkinusercontext-menu" + ); + + let menupopup = menu.menupopup; + menu.addEventListener( + "popupshown", + function () { + is(menupopup.nodeType, Node.ELEMENT_NODE, "We have a menupopup."); + ok(menupopup.firstElementChild, "We have a first container entry."); + + let firstContext = menupopup.firstElementChild; + is( + firstContext.nodeType, + Node.ELEMENT_NODE, + "We have a first container entry." + ); + ok( + firstContext.hasAttribute("data-usercontextid"), + "We have a usercontextid value." + ); + + aContextMenu.addEventListener( + "popuphidden", + function () { + firstContext.doCommand(); + }, + { once: true } + ); + + aContextMenu.hidePopup(); + }, + { once: true } + ); + + menu.openMenu(true); + }); +} + +function test() { + waitForExplicitFinish(); + + SpecialPowers.pushPrefEnv( + { set: [["privacy.userContext.enabled", true]] }, + function () { + requestLongerTimeout(10); // slowwww shutdown on e10s + startReferrerTest(startNewTabTestCase); + } + ); +} |