Bug 1226781 - add a regression test for going back from pages that cause about:neterror to be shown, r?mconley
--- 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);
+});