diff --git a/browser/base/content/test/Makefile.in b/browser/base/content/test/Makefile.in index c3df2ac33db3..6e4f51ea3d22 100644 --- a/browser/base/content/test/Makefile.in +++ b/browser/base/content/test/Makefile.in @@ -82,6 +82,7 @@ _BROWSER_FILES = browser_sanitize-timespans.js \ browser_bug462673.js \ browser_bug481560.js \ browser_bug477014.js \ + browser_bug495058.js \ browser_discovery.js \ discovery.html \ moz.png \ diff --git a/browser/base/content/test/browser_bug495058.js b/browser/base/content/test/browser_bug495058.js new file mode 100644 index 000000000000..80cd4ab6f583 --- /dev/null +++ b/browser/base/content/test/browser_bug495058.js @@ -0,0 +1,52 @@ +function test() { + waitForExplicitFinish(); + next(); +} + +var uris = [ + "about:blank", + "about:sessionrestore", + "about:privatebrowsing", +]; + +function next() { + var tab = gBrowser.addTab(); + var uri = uris.shift(); + + if (uri == "about:blank") { + detach(); + } else { + let browser = tab.linkedBrowser; + browser.addEventListener("load", function () { + browser.removeEventListener("load", arguments.callee, true); + detach(); + }, true); + browser.loadURI(uri); + } + + function detach() { + var win = gBrowser.replaceTabWithWindow(tab); + win.addEventListener("load", function () { + win.removeEventListener("load", arguments.callee, false); + + win.gBrowser.addEventListener("pageshow", function() { + win.gBrowser.removeEventListener("pageshow", arguments.callee, false); + + // wait for delayedStartup + win.setTimeout(function () { + is(win.gBrowser.currentURI.spec, uri, uri + ": uri loaded in detached tab"); + is(win.document.activeElement, win.gBrowser.selectedBrowser, uri + ": browser is focused"); + is(win.gURLBar.value, "", uri + ": urlbar is empty"); + ok(win.gURLBar.emptyText, uri + ": emptytext is present"); + todo(win.gURLBar.hasAttribute("isempty"), uri + ": emptytext is displayed"); + + win.close(); + if (uris.length) + next(); + else + finish(); + }, 100); + }, false); + }, false); + } +}