/toolkit/content/tests/widgets/test_contextmenu_nested.xul
http://github.com/zpao/v8monkey · Unknown · 134 lines · 120 code · 14 blank · 0 comment · 0 complexity · 01b24f9f215274121c77d83a89664fb9 MD5 · raw file
- <?xml version="1.0"?>
- <?xml-stylesheet href="chrome://global/skin" type="text/css"?>
- <?xml-stylesheet href="/tests/SimpleTest/test.css" type="text/css"?>
- <window title="Nested Context Menu Tests"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
- <script type="application/javascript" src="popup_shared.js"></script>
- <menupopup id="outercontext">
- <menuitem label="Context One"/>
- <menu id="outercontextmenu" label="Sub">
- <menupopup id="innercontext">
- <menuitem id="innercontextmenu" label="Sub Context One"/>
- </menupopup>
- </menu>
- </menupopup>
- <menupopup id="outermain">
- <menuitem label="One"/>
- <menu id="outermenu" label="Sub">
- <menupopup id="innermain">
- <menuitem id="innermenu" label="Sub One" context="outercontext"/>
- </menupopup>
- </menu>
- </menupopup>
- <button label="Check"/>
- <vbox id="popuparea" popup="outermain" width="20" height="20"/>
- <script type="application/javascript">
- <![CDATA[
- SimpleTest.waitForExplicitFinish();
- var popupTests = [
- {
- testname: "open outer popup",
- events: [ "popupshowing outermain", "popupshown outermain" ],
- test: function () synthesizeMouse($("popuparea"), 4, 4, {}),
- result: function (testname) {
- is($("outermain").triggerNode, $("popuparea"), testname);
- is(document.popupNode, $("popuparea"), testname + " document.popupNode");
- }
- },
- {
- testname: "open inner popup",
- events: [ "DOMMenuItemActive outermenu", "popupshowing innermain", "popupshown innermain" ],
- test: function () {
- synthesizeMouse($("outermenu"), 4, 4, { type: "mousemove" });
- synthesizeMouse($("outermenu"), 2, 2, { type: "mousemove" });
- },
- result: function (testname) {
- is($("outermain").triggerNode, $("popuparea"), testname + " outer");
- is($("innermain").triggerNode, $("popuparea"), testname + " inner");
- is($("outercontext").triggerNode, null, testname + " outer context");
- is(document.popupNode, $("popuparea"), testname + " document.popupNode");
- }
- },
- {
- testname: "open outer context",
- condition: function() { return (navigator.platform.indexOf("Mac") == -1); },
- events: [ "popupshowing outercontext", "popupshown outercontext" ],
- test: function () synthesizeMouse($("innermenu"), 4, 4, { type: "contextmenu", button: 2 }),
- result: function (testname) {
- is($("outermain").triggerNode, $("popuparea"), testname + " outer");
- is($("innermain").triggerNode, $("popuparea"), testname + " inner");
- is($("outercontext").triggerNode, $("innermenu"), testname + " outer context");
- is(document.popupNode, $("innermenu"), testname + " document.popupNode");
- }
- },
- {
- testname: "open inner context",
- condition: function() { return (navigator.platform.indexOf("Mac") == -1); },
- events: [ "DOMMenuItemActive outercontextmenu", "popupshowing innercontext", "popupshown innercontext" ],
- test: function () {
- synthesizeMouse($("outercontextmenu"), 4, 4, { type: "mousemove" });
- synthesizeMouse($("outercontextmenu"), 2, 2, { type: "mousemove" });
- },
- result: function (testname) {
- is($("outermain").triggerNode, $("popuparea"), testname + " outer");
- is($("innermain").triggerNode, $("popuparea"), testname + " inner");
- is($("outercontext").triggerNode, $("innermenu"), testname + " outer context");
- is($("innercontext").triggerNode, $("innermenu"), testname + " inner context");
- is(document.popupNode, $("innermenu"), testname + " document.popupNode");
- }
- },
- {
- testname: "close context",
- condition: function() { return (navigator.platform.indexOf("Mac") == -1); },
- events: [ "popuphiding innercontext", "popuphidden innercontext",
- "popuphiding outercontext", "popuphidden outercontext",
- "DOMMenuInactive innercontext",
- "DOMMenuItemInactive outercontextmenu", "DOMMenuItemInactive outercontextmenu",
- "DOMMenuInactive outercontext" ],
- test: function () $("outercontext").hidePopup(),
- result: function (testname) {
- is($("outermain").triggerNode, $("popuparea"), testname + " outer");
- is($("innermain").triggerNode, $("popuparea"), testname + " inner");
- is($("outercontext").triggerNode, null, testname + " outer context");
- is($("innercontext").triggerNode, null, testname + " inner context");
- is(document.popupNode, $("popuparea"), testname + " document.popupNode");
- }
- },
- {
- testname: "hide menus",
- events: [ "popuphiding innermain", "popuphidden innermain",
- "popuphiding outermain", "popuphidden outermain",
- "DOMMenuInactive innermain",
- "DOMMenuItemInactive outermenu", "DOMMenuItemInactive outermenu",
- "DOMMenuInactive outermain" ],
- test: function () $("outermain").hidePopup(),
- result: function (testname) {
- is($("outermain").triggerNode, null, testname + " outer");
- is($("innermain").triggerNode, null, testname + " inner");
- is($("outercontext").triggerNode, null, testname + " outer context");
- is($("innercontext").triggerNode, null, testname + " inner context");
- is(document.popupNode, null, testname + " document.popupNode");
- }
- }
- ];
- SimpleTest.waitForFocus(function runTest() startPopupTests(popupTests));
- ]]>
- </script>
- <body xmlns="http://www.w3.org/1999/xhtml"><p id="display"/></body>
- </window>