michael@0: /* vim: set ts=2 et sw=2 tw=80: */ michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: var target; michael@0: michael@0: function test() michael@0: { michael@0: waitForExplicitFinish(); michael@0: michael@0: gBrowser.selectedTab = gBrowser.addTab(); michael@0: gBrowser.selectedBrowser.addEventListener("load", onLoad, true); michael@0: } michael@0: michael@0: function onLoad(evt) { michael@0: gBrowser.selectedBrowser.removeEventListener(evt.type, onLoad, true); michael@0: michael@0: target = TargetFactory.forTab(gBrowser.selectedTab); michael@0: michael@0: is(target.tab, gBrowser.selectedTab, "Target linked to the right tab."); michael@0: michael@0: target.once("hidden", onHidden); michael@0: gBrowser.selectedTab = gBrowser.addTab(); michael@0: } michael@0: michael@0: function onHidden() { michael@0: ok(true, "Hidden event received"); michael@0: target.once("visible", onVisible); michael@0: gBrowser.removeCurrentTab(); michael@0: } michael@0: michael@0: function onVisible() { michael@0: ok(true, "Visible event received"); michael@0: target.once("will-navigate", onWillNavigate); michael@0: gBrowser.contentWindow.location = "data:text/html,test navigation"; michael@0: } michael@0: michael@0: function onWillNavigate(event, request) { michael@0: ok(true, "will-navigate event received"); michael@0: // Wait for navigation handling to complete before removing the tab, in order michael@0: // to avoid triggering assertions. michael@0: target.once("navigate", executeSoon.bind(null, onNavigate)); michael@0: } michael@0: michael@0: function onNavigate() { michael@0: ok(true, "navigate event received"); michael@0: target.once("close", onClose); michael@0: gBrowser.removeCurrentTab(); michael@0: } michael@0: michael@0: function onClose() { michael@0: ok(true, "close event received"); michael@0: michael@0: target = null; michael@0: finish(); michael@0: }