function test() { waitForExplicitFinish(); var frame = document.getElementById("customizeToolbarSheetIFrame"); frame.addEventListener("load", testCustomizeFrameLoadedPre, true); document.getElementById("cmd_CustomizeToolbars").doCommand(); } function testCustomizeFrameLoadedPre(){ // This load listener can be called before // customizeToolbarSheet.xul's, which would cause the test // to fail. Use executeSoon to delay running the test until // event dispatch is over (all load event listeners have run). executeSoon(testCustomizeFrameLoaded); } function testCustomizeFrameLoaded() { var panel = document.getElementById("customizeToolbarSheetPopup"); panel.addEventListener("popuphidden", testCustomizePopupHidden, false); var frame = document.getElementById("customizeToolbarSheetIFrame"); frame.removeEventListener("load", testCustomizeFrameLoadedPre, true); if (navigator.platform.indexOf("Mac") == -1) { var menu = document.getElementById("bookmarksMenuPopup"); ok("result" in menu, "menu has binding"); } var framedoc = document.getElementById("customizeToolbarSheetIFrame").contentDocument; var panelX = panel.boxObject.screenX; var iconModeList = framedoc.getElementById("modelist"); iconModeList.addEventListener("popupshown", function (e) { iconModeList.removeEventListener("popupshown", arguments.callee, false); SimpleTest.executeSoon(function () { is(panel.boxObject.screenX, panelX, "toolbar customization panel shouldn't move when the iconmode menulist is opened"); iconModeList.open = false; var b = framedoc.getElementById("donebutton"); b.focus(); b.doCommand(); }); }, false); iconModeList.open = true; } function testCustomizePopupHidden(e) { var panel = document.getElementById("customizeToolbarSheetPopup"); if (e.target != panel) return; panel.removeEventListener("popuphidden", testCustomizePopupHidden, false); is(document.activeElement, document.documentElement, "focus after customize done"); finish(); }