michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: function test() { michael@0: waitForExplicitFinish(); michael@0: michael@0: // show tab view michael@0: window.addEventListener("tabviewshown", onTabViewWindowLoaded, false); michael@0: TabView.toggle(); michael@0: } michael@0: michael@0: function onTabViewWindowLoaded() { michael@0: window.removeEventListener("tabviewshown", onTabViewWindowLoaded, false); michael@0: ok(TabView.isVisible(), "Tab View is visible"); michael@0: michael@0: let contentWindow = document.getElementById("tab-view").contentWindow; michael@0: michael@0: let onTabViewHidden = function() { michael@0: window.removeEventListener("tabviewhidden", onTabViewHidden, false); michael@0: michael@0: // verify exit button worked michael@0: ok(!TabView.isVisible(), "Tab View is hidden"); michael@0: michael@0: // verify that the exit button no longer has focus michael@0: is(contentWindow.iQ("#exit-button:focus").length, 0, michael@0: "The exit button doesn't have the focus"); michael@0: michael@0: // verify that the keyboard combo works (this is the crux of bug 595518) michael@0: // Prepare the key combo michael@0: window.addEventListener("tabviewshown", onTabViewShown, false); michael@0: EventUtils.synthesizeKey("e", { accelKey: true, shiftKey: true }, contentWindow); michael@0: } michael@0: michael@0: let onTabViewShown = function() { michael@0: window.removeEventListener("tabviewshown", onTabViewShown, false); michael@0: michael@0: // test if the key combo worked michael@0: ok(TabView.isVisible(), "Tab View is visible"); michael@0: michael@0: // clean up michael@0: let endGame = function() { michael@0: window.removeEventListener("tabviewhidden", endGame, false); michael@0: michael@0: ok(!TabView.isVisible(), "Tab View is hidden"); michael@0: finish(); michael@0: } michael@0: window.addEventListener("tabviewhidden", endGame, false); michael@0: TabView.toggle(); michael@0: } michael@0: michael@0: window.addEventListener("tabviewhidden", onTabViewHidden, false); michael@0: michael@0: // locate exit button michael@0: let button = contentWindow.document.getElementById("exit-button"); michael@0: ok(button, "Exit button exists"); michael@0: michael@0: // click exit button michael@0: button.focus(); michael@0: EventUtils.sendMouseEvent({ type: "click" }, button, contentWindow); michael@0: }