michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: let newWin; michael@0: michael@0: // ---------- michael@0: function test() { michael@0: waitForExplicitFinish(); michael@0: michael@0: let panelSelected = false; michael@0: registerCleanupFunction(function () ok(panelSelected, "panel is selected")); michael@0: michael@0: let onLoad = function (win) { michael@0: registerCleanupFunction(function () win.close()); michael@0: michael@0: newWin = win; michael@0: michael@0: let onSelect = function(event) { michael@0: if (deck != event.target) michael@0: return; michael@0: michael@0: let iframe = win.document.getElementById("tab-view"); michael@0: if (deck.selectedPanel != iframe) michael@0: return; michael@0: michael@0: deck.removeEventListener("select", onSelect, true); michael@0: panelSelected = true; michael@0: }; michael@0: michael@0: let deck = win.document.getElementById("tab-view-deck"); michael@0: deck.addEventListener("select", onSelect, true); michael@0: }; michael@0: michael@0: let onShow = function (win) { michael@0: executeSoon(function() { michael@0: testMethodToHideAndShowTabView(function() { michael@0: newWin.document.getElementById("menu_tabview").doCommand(); michael@0: }, function() { michael@0: testMethodToHideAndShowTabView(function() { michael@0: EventUtils.synthesizeKey("E", { accelKey: true, shiftKey: true }, newWin); michael@0: }, finish); michael@0: }); michael@0: }); michael@0: }; michael@0: michael@0: newWindowWithTabView(onShow, onLoad); michael@0: } michael@0: michael@0: function testMethodToHideAndShowTabView(executeFunc, callback) { michael@0: whenTabViewIsHidden(function() { michael@0: ok(!newWin.TabView.isVisible(), "Tab View is not visible after executing the function"); michael@0: whenTabViewIsShown(function() { michael@0: ok(newWin.TabView.isVisible(), "Tab View is visible after executing the function again"); michael@0: callback(); michael@0: }, newWin); michael@0: executeFunc(); michael@0: }, newWin); michael@0: executeFunc(); michael@0: }