test_bug1197913.xul 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/css" href="chrome://global/skin"?>
  3. <?xml-stylesheet type="text/css" href="/tests/SimpleTest/test.css"?>
  4. <!--
  5. https://bugzilla.mozilla.org/show_bug.cgi?id=1197913
  6. -->
  7. <window title="Mozilla Bug 1197913"
  8. xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
  9. onload="SimpleTest.waitForFocus(nextTest, window)">
  10. <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"/>
  11. <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"/>
  12. <!-- test results are displayed in the html:body -->
  13. <body xmlns="http://www.w3.org/1999/xhtml">
  14. <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1197913"
  15. target="_blank">Mozilla Bug 1197913</a>
  16. </body>
  17. <hbox align="center" pack="center">
  18. <menulist>
  19. <menupopup>
  20. <menuitem label="Car" />
  21. <menuitem label="Taxi" id="target" />
  22. <menuitem label="Bus" />
  23. </menupopup>
  24. </menulist>
  25. </hbox>
  26. <!-- test code goes here -->
  27. <script type="application/javascript">
  28. <![CDATA[
  29. SimpleTest.waitForExplicitFinish();
  30. let menulist = document.getElementsByTagName("menulist")[0];
  31. let menuitem = document.getElementById("target");
  32. function onDOMMenuItemActive(e) {
  33. menuitem.removeEventListener("DOMMenuItemActive", onDOMMenuItemActive);
  34. synthesizeMouse(menuitem, 0, 0, { type: "mousemove" });
  35. synthesizeMouse(menuitem, -1, 0, { type: "mousemove" });
  36. setTimeout(() => {
  37. if (navigator.platform.toLowerCase().startsWith("win")) {
  38. ok(menuitem.getAttribute("_moz-menuactive"));
  39. } else {
  40. ok(!menuitem.getAttribute("_moz-menuactive"));
  41. }
  42. SimpleTest.finish();
  43. });
  44. }
  45. function onPopupShown(e) {
  46. menulist.removeEventListener("popupshown", onPopupShown);
  47. menuitem.addEventListener("DOMMenuItemActive", onDOMMenuItemActive);
  48. synthesizeMouse(menuitem, 0, 0, { type: "mousemove" });
  49. synthesizeMouse(menuitem, 1, 0, { type: "mousemove" });
  50. }
  51. function nextTest(e) {
  52. menulist.addEventListener("popupshown", onPopupShown);
  53. synthesizeMouseAtCenter(menulist, {});
  54. }
  55. ]]>
  56. </script>
  57. </window>