diff options
Diffstat (limited to 'browser/base/content/test/general/browser_aboutNetError.js')
-rw-r--r-- | browser/base/content/test/general/browser_aboutNetError.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/browser/base/content/test/general/browser_aboutNetError.js b/browser/base/content/test/general/browser_aboutNetError.js new file mode 100644 index 000000000..5185cbcaa --- /dev/null +++ b/browser/base/content/test/general/browser_aboutNetError.js @@ -0,0 +1,47 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Set ourselves up for TLS error +Services.prefs.setIntPref("security.tls.version.max", 3); +Services.prefs.setIntPref("security.tls.version.min", 3); + +const LOW_TLS_VERSION = "https://tls1.example.com/"; +const {TabStateFlusher} = Cu.import("resource:///modules/sessionstore/TabStateFlusher.jsm", {}); +const ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore); + +add_task(function* checkReturnToPreviousPage() { + info("Loading a TLS page that isn't supported, ensure we have a fix button and clicking it then loads the page"); + let browser; + let pageLoaded; + yield BrowserTestUtils.openNewForegroundTab(gBrowser, () => { + gBrowser.selectedTab = gBrowser.addTab(LOW_TLS_VERSION); + browser = gBrowser.selectedBrowser; + pageLoaded = BrowserTestUtils.waitForErrorPage(browser); + }, false); + + info("Loading and waiting for the net error"); + yield pageLoaded; + + // NB: This code assumes that the error page and the test page load in the + // same process. If this test starts to fail, it could be because they load + // in different processes. + yield ContentTask.spawn(browser, LOW_TLS_VERSION, function* (LOW_TLS_VERSION_) { + ok(content.document.getElementById("prefResetButton").getBoundingClientRect().left >= 0, + "Should have a visible button"); + + ok(content.document.documentURI.startsWith("about:neterror"), "Should be showing error page"); + + let doc = content.document; + let prefResetButton = doc.getElementById("prefResetButton"); + is(prefResetButton.getAttribute("autofocus"), "true", "prefResetButton has autofocus"); + prefResetButton.click(); + + yield ContentTaskUtils.waitForEvent(this, "pageshow", true); + + is(content.document.documentURI, LOW_TLS_VERSION_, "Should not be showing page"); + }); + + yield BrowserTestUtils.removeTab(gBrowser.selectedTab); +}); |