OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 <head> |
| 3 <script src="../../../resources/js-test.js"></script> |
| 4 </head> |
| 5 <button id="button" style="height: 100px; width: 100px;"> |
| 6 </button> |
| 7 <button id="button_with_contextmenu" contextmenu="menu_id" style="height: 100px;
width: 100px;"> |
| 8 <menu id="menu_id" type="PopUp"> |
| 9 <!-- Test removal of separator at the start. --> |
| 10 <hr> |
| 11 <menuitem label="Item1"></menuitem> |
| 12 <menuitem label="Item2"></menuitem> |
| 13 <!-- Test addition of separator for <hr>. --> |
| 14 <hr> |
| 15 <menuitem label="Item3"></menuitem> |
| 16 <!-- Test child menu with label. --> |
| 17 <menu label="Submenu"> |
| 18 <menuitem label="Item4"></menuitem> |
| 19 <menu label="Deeper submenu"> |
| 20 <!-- Test removal of separator at the start inside submenu. --> |
| 21 <hr> |
| 22 <menuitem label="Item5"></menuitem> |
| 23 <hr> |
| 24 <menuitem label="Item6"></menuitem> |
| 25 <!-- Test removal of separator at the end inside submenu. --> |
| 26 <hr> |
| 27 </menu> |
| 28 </menu> |
| 29 <menuitem label="Item7"></menuitem> |
| 30 <!-- Test child menu without label. --> |
| 31 <menu> |
| 32 <menuitem label="Item8"></menuitem> |
| 33 <!-- Test child menu with empty label. --> |
| 34 <menu label=""> |
| 35 <menuitem label="Item9"></menuitem> |
| 36 <menuitem label="Item10"></menuitem> |
| 37 </menu> |
| 38 <!-- Test collapsing two or more adjacent separators. --> |
| 39 <hr> |
| 40 <menuitem label="Item11"></menuitem> |
| 41 <menuitem label="Item12"></menuitem> |
| 42 </menu> |
| 43 <!-- Test collapsing two or more adjacent separators. --> |
| 44 <hr> |
| 45 <hr> |
| 46 <hr> |
| 47 <hr> |
| 48 <!-- Test menuitem menu without label. --> |
| 49 <menuitem></menuitem> |
| 50 <!-- Test menuitem menu with empty label. --> |
| 51 <menuitem label=""></menuitem> |
| 52 <menuitem label="Item13"></menuitem> |
| 53 <!-- Test removal of separator at the end. --> |
| 54 <hr> |
| 55 </menu> |
| 56 </button> |
| 57 <!-- Test with menu element without type attribute specified. --> |
| 58 <button id="button_1" contextmenu="menu_without_type" style="height: 100px; widt
h: 100px;"> |
| 59 <menu id="menu_without_type"> |
| 60 <menuitem label="Item1"></menuitem> |
| 61 <menuitem label="Item2"></menuitem> |
| 62 <menuitem label="Item3"></menuitem> |
| 63 </menu> |
| 64 </button> |
| 65 <!-- Test cancelling show event. --> |
| 66 <button id="button_2" contextmenu="menu_2" style="height: 100px; width: 100px;"> |
| 67 <menu id="menu_2" type="popup"> |
| 68 <menuitem label="Item1"></menuitem> |
| 69 <menuitem label="Item2"></menuitem> |
| 70 <menuitem label="Item3"></menuitem> |
| 71 </menu> |
| 72 </button> |
| 73 <!-- Test removing menu element inside show event handler. --> |
| 74 <button id="button_3" contextmenu="menu_3" style="height: 100px; width: 100px;"> |
| 75 <menu id="menu_3" type="popup"> |
| 76 <menuitem label="Item1"></menuitem> |
| 77 <menuitem label="Item2"></menuitem> |
| 78 <menuitem label="Item3"></menuitem> |
| 79 </menu> |
| 80 </button> |
| 81 <!-- Test with menu element without any children. --> |
| 82 <button id="button_4" contextmenu="menu_4" style="height: 100px; width: 100px;"> |
| 83 <menu id="menu_4" type="popup"> |
| 84 </menu> |
| 85 </button> |
| 86 <script> |
| 87 if (!window.eventSender) |
| 88 debug("This test requires window.eventSender.") |
| 89 |
| 90 function contextClickAndGetMenuItems(element) { |
| 91 var x = element.offsetParent.offsetLeft + element.offsetLeft + 4; |
| 92 var y = element.offsetParent.offsetTop + element.offsetTop + element.offsetH
eight / 2; |
| 93 eventSender.mouseMoveTo(x, y); |
| 94 return eventSender.contextClick(); |
| 95 } |
| 96 |
| 97 function cancel(event) { |
| 98 event.preventDefault(); |
| 99 } |
| 100 |
| 101 function removeMenu(event) { |
| 102 event.target.remove(); |
| 103 } |
| 104 |
| 105 description("Tests the custom context menu items."); |
| 106 var button = document.getElementById("button"); |
| 107 var items = contextClickAndGetMenuItems(button); |
| 108 |
| 109 // Esc key to hide the context menu. |
| 110 eventSender.keyDown("escape"); |
| 111 |
| 112 var buttonWithContextMenu = document.getElementById("button_with_contextmenu"); |
| 113 var itemsWithCustomContextMenu = contextClickAndGetMenuItems(buttonWithContextMe
nu); |
| 114 |
| 115 // Esc key to hide the context menu. |
| 116 eventSender.keyDown("escape"); |
| 117 |
| 118 var button1 = document.getElementById("button_1"); |
| 119 var items1 = contextClickAndGetMenuItems(button1); |
| 120 |
| 121 // Esc key to hide the context menu. |
| 122 eventSender.keyDown("escape"); |
| 123 |
| 124 var button2 = document.getElementById("button_2"); |
| 125 document.getElementById("menu_2").addEventListener("show", cancel, false); |
| 126 var items2 = contextClickAndGetMenuItems(button2); |
| 127 |
| 128 // Esc key to hide the context menu. |
| 129 eventSender.keyDown("escape"); |
| 130 |
| 131 var button3 = document.getElementById("button_3"); |
| 132 document.getElementById("menu_3").addEventListener("show", removeMenu, false); |
| 133 var items3 = contextClickAndGetMenuItems(button3); |
| 134 |
| 135 // Esc key to hide the context menu. |
| 136 eventSender.keyDown("escape"); |
| 137 |
| 138 var button4 = document.getElementById("button_4"); |
| 139 var items4 = contextClickAndGetMenuItems(button4); |
| 140 |
| 141 shouldBeEqualToNumber("itemsWithCustomContextMenu.length - items.length", 21); |
| 142 shouldBeEqualToString("itemsWithCustomContextMenu[0]", "Item1"); |
| 143 shouldBeEqualToString("itemsWithCustomContextMenu[4]", "Submenu >"); |
| 144 shouldBeEqualToString("itemsWithCustomContextMenu[5]", "_Item4"); |
| 145 shouldBeEqualToString("itemsWithCustomContextMenu[6]", "_Deeper submenu >"); |
| 146 shouldBeEqualToString("itemsWithCustomContextMenu[7]", "__Item5"); |
| 147 shouldBeEqualToString("itemsWithCustomContextMenu[8]", "__---------"); |
| 148 shouldBeEqualToString("itemsWithCustomContextMenu[10]", "Item7"); |
| 149 shouldBeEqualToString("itemsWithCustomContextMenu[11]", "---------"); |
| 150 shouldBeEqualToString("itemsWithCustomContextMenu[12]", "Item8"); |
| 151 shouldBeEqualToString("itemsWithCustomContextMenu[13]", "---------"); |
| 152 shouldBeEqualToString("itemsWithCustomContextMenu[14]", "Item9"); |
| 153 shouldBeEqualToString("itemsWithCustomContextMenu[16]", "---------"); |
| 154 shouldBeEqualToString("itemsWithCustomContextMenu[19]", "---------"); |
| 155 shouldBeEqualToString("itemsWithCustomContextMenu[20]", "Item13"); |
| 156 shouldBeEqualToNumber("items1.length - items.length", 0); |
| 157 shouldBeEqualToNumber("items2.length - items.length", 0); |
| 158 shouldBeEqualToNumber("items3.length - items.length", 0); |
| 159 shouldBeEqualToNumber("items4.length - items.length", 0); |
| 160 |
| 161 </script> |
OLD | NEW |