Bug 1226781 - add a regression test for going back from pages that cause about:neterror to be shown, r?mconley draft
authorGijs Kruitbosch <gijskruitbosch@gmail.com>
Tue, 26 Jan 2016 16:20:51 +0000
changeset 325836 e0a35d135113e461047859fd66fd580b86c3a06c
parent 325835 d591dce10c87d85ec39af6aed2e73d5ece016260
child 513516 c25c03124278024c44c4b8e524e23c6ebcd75e93
push id10057
push usergijskruitbosch@gmail.com
push dateTue, 26 Jan 2016 16:27:52 +0000
reviewersmconley
bugs1226781
milestone47.0a1
Bug 1226781 - add a regression test for going back from pages that cause about:neterror to be shown, r?mconley
browser/base/content/test/general/browser.ini
browser/base/content/test/general/browser_invalid_uri_back_forward_manipulation.js
--- a/browser/base/content/test/general/browser.ini
+++ b/browser/base/content/test/general/browser.ini
@@ -315,16 +315,17 @@ support-files = fxa_profile_handler.sjs
 [browser_gestureSupport.js]
 skip-if = e10s # Bug 863514 - no gesture support.
 [browser_getshortcutoruri.js]
 [browser_hide_removing.js]
 [browser_homeDrop.js]
 skip-if = buildapp == 'mulet'
 [browser_identity_UI.js]
 [browser_insecureLoginForms.js]
+[browser_invalid_uri_back_forward_manipulation.js]
 [browser_keywordBookmarklets.js]
 [browser_keywordSearch.js]
 [browser_keywordSearch_postData.js]
 [browser_lastAccessedTab.js]
 skip-if = toolkit == "windows" # Disabled on Windows due to frequent failures (bug 969405)
 [browser_locationBarCommand.js]
 skip-if = os == "linux" # Linux: Intermittent failures, bug 917535
 [browser_locationBarExternalLoad.js]
new file mode 100644
--- /dev/null
+++ b/browser/base/content/test/general/browser_invalid_uri_back_forward_manipulation.js
@@ -0,0 +1,30 @@
+"use strict";
+
+
+registerCleanupFunction(function() {
+  Services.prefs.clearUserPref("keyword.enabled");
+});
+
+add_task(function*() {
+  Services.prefs.setBoolPref("keyword.enabled", false);
+  let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, "about:robots", true);
+  gURLBar.value = "::2600";
+  gURLBar.focus();
+  let promiseErrorPageLoaded = BrowserTestUtils.waitForEvent(tab.linkedBrowser, "DOMContentLoaded");
+  EventUtils.synthesizeKey("VK_RETURN", {});
+  yield promiseErrorPageLoaded;
+  ok(gBrowser.webNavigation.canGoBack, "Should be able to go back");
+  if (gBrowser.webNavigation.canGoBack) {
+    // Can't use DOMContentLoaded here because the page is bfcached. Can't use pageshow for
+    // the error page because it doesn't seem to fire for those.
+    let promiseOtherPageLoaded = BrowserTestUtils.waitForEvent(tab.linkedBrowser, "pageshow", false,
+      // Be paranoid we *are* actually seeing this other page load, not some kind of race
+      // for if/when we do start firing pageshow for the error page...
+      function(e) { return gBrowser.currentURI.spec == "about:robots" }
+    );
+    gBrowser.goBack();
+    yield promiseOtherPageLoaded;
+    ok(gBrowser.webNavigation.canGoForward, "Should be able to go forward from previous page.");
+  }
+  yield BrowserTestUtils.removeTab(tab);
+});