diff options
Diffstat (limited to 'devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_navigate_back_forward.js')
-rw-r--r-- | devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_navigate_back_forward.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_navigate_back_forward.js b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_navigate_back_forward.js new file mode 100644 index 0000000000..79428ae8da --- /dev/null +++ b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_navigate_back_forward.js @@ -0,0 +1,63 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const ORIGINAL_URL = "https://example.com/document-builder.sjs?html=page1"; +const OTHER_URL = "https://example.org/document-builder.sjs?html=page2"; + +async function waitForUrl(url, toolbox, browserTab, win) { + const { onDomCompleteResource } = + await waitForNextTopLevelDomCompleteResource(toolbox.commands); + + return Promise.all([ + waitUntil( + () => + toolbox.target.url === url && + browserTab.linkedBrowser.currentURI.spec === url + ), + onDomCompleteResource, + toolbox.commands.client.waitForRequestsToSettle(), + waitForAboutDebuggingRequests(win.AboutDebugging.store), + ]); +} + +// Test that ensures the remote page can go forward and back via UI buttons +add_task(async function () { + const browserTab = await addTab(ORIGINAL_URL); + + const { document, tab, window } = await openAboutDebugging(); + + // go to This Firefox and inspect the new tab + info("Inspecting a new tab in This Firefox"); + await selectThisFirefoxPage(document, window.AboutDebugging.store); + const devToolsToolbox = await openAboutDevtoolsToolbox( + document, + tab, + window, + ORIGINAL_URL + ); + const { devtoolsDocument, devtoolsWindow } = devToolsToolbox; + const toolbox = getToolbox(devtoolsWindow); + + info("Navigating to another URL"); + let onTargetSwitched = toolbox.commands.targetCommand.once("switched-target"); + const urlInput = devtoolsDocument.querySelector(".devtools-textinput"); + await synthesizeUrlKeyInput(devToolsToolbox, urlInput, OTHER_URL); + await waitForUrl(OTHER_URL, toolbox, browserTab, window); + await onTargetSwitched; + + info("Clicking back button"); + onTargetSwitched = toolbox.commands.targetCommand.once("switched-target"); + devtoolsDocument.querySelector(".qa-back-button").click(); + await waitForUrl(ORIGINAL_URL, toolbox, browserTab, window); + await onTargetSwitched; + + info("Clicking the forward button"); + onTargetSwitched = toolbox.commands.targetCommand.once("switched-target"); + devtoolsDocument.querySelector(".qa-forward-button").click(); + await waitForUrl(OTHER_URL, toolbox, browserTab, window); + await onTargetSwitched; + + ok(true, "Clicking back and forward works!"); +}); |