summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_aboutNetError.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/general/browser_aboutNetError.js')
-rw-r--r--browser/base/content/test/general/browser_aboutNetError.js47
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);
+});