Bug 1309900 Test: Ensure cross process history works when both history entries have children. draft
authorBob Owen <bobowencode@gmail.com>
Thu, 20 Oct 2016 10:33:42 +0100
changeset 427438 9565dbea97471821aa785a2bb72c94f7054e7df4
parent 427437 415ea59f26f7c6c8b5e1f6550b1726dc2dec079a
child 534457 9eb03b8702fdc43746e1049e4bbe0226b626fc90
push id33007
push userbobowencode@gmail.com
push dateThu, 20 Oct 2016 09:35:13 +0000
bugs1309900
milestone52.0a1
Bug 1309900 Test: Ensure cross process history works when both history entries have children. MozReview-Commit-ID: 1qIjyXNzws0
docshell/test/browser/browser.ini
docshell/test/browser/browser_bug1309900_crossProcessHistoryNavigation.js
--- a/docshell/test/browser/browser.ini
+++ b/docshell/test/browser/browser.ini
@@ -42,16 +42,17 @@ support-files =
   browser_timelineMarkers-frame-02.js
   browser_timelineMarkers-frame-03.js
   browser_timelineMarkers-frame-04.js
   browser_timelineMarkers-frame-05.js
   head.js
   frame-head.js
 
 [browser_bug1206879.js]
+[browser_bug1309900_crossProcessHistoryNavigation.js]
 [browser_bug134911.js]
 [browser_bug234628-1.js]
 [browser_bug234628-10.js]
 [browser_bug234628-11.js]
 [browser_bug234628-2.js]
 [browser_bug234628-3.js]
 [browser_bug234628-4.js]
 [browser_bug234628-5.js]
new file mode 100644
--- /dev/null
+++ b/docshell/test/browser/browser_bug1309900_crossProcessHistoryNavigation.js
@@ -0,0 +1,35 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+add_task(function* runTests() {
+  let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, "about:about");
+
+  registerCleanupFunction(function* () {
+    gBrowser.removeTab(tab);
+  });
+
+  let browser = tab.linkedBrowser;
+
+  browser.loadURI("about:accounts");
+  let href = yield BrowserTestUtils.browserLoaded(browser);
+  is(href, "about:accounts", "Check about:accounts loaded");
+
+  // Using a dummy onunload listener to disable the bfcache as that can prevent
+  // the test browser load detection mechanism from working.
+  browser.loadURI("data:text/html,<body%20onunload=''><iframe></iframe></body>");
+  href = yield BrowserTestUtils.browserLoaded(browser);
+  is(href, "data:text/html,<body%20onunload=''><iframe></iframe></body>",
+    "Check data URL loaded");
+
+  browser.goBack();
+  href = yield BrowserTestUtils.browserLoaded(browser);
+  is(href, "about:accounts", "Check we've gone back to about:accounts");
+
+  browser.goForward();
+  href = yield BrowserTestUtils.browserLoaded(browser);
+  is(href, "data:text/html,<body%20onunload=''><iframe></iframe></body>",
+     "Check we've gone forward to data URL");
+});