Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <!DOCTYPE html> | |
|
tkent
2014/08/25 23:07:41
Making LayoutTests/contextmenu/ only for this test
pals
2014/08/26 07:13:23
Done.
| |
| 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. --> | |
|
tkent
2014/08/25 23:07:41
Is this comment valid? Only single <hr> follows.
pals
2014/08/26 07:13:22
One more separator is added at the end of the abov
| |
| 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. --> | |
|
tkent
2014/08/25 23:07:42
without label -> with empty label?
pals
2014/08/26 07:13:23
Done.
| |
| 49 <menuitem label=""></menuitem> | |
| 50 <!-- Test menuitem menu with empty label. --> | |
|
tkent
2014/08/25 23:07:41
with empty label -> without label?
pals
2014/08/26 07:13:23
Done.
| |
| 51 <menuitem></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 <script> | |
| 82 if (!window.eventSender) | |
| 83 debug("This test requires window.eventSender.") | |
| 84 | |
| 85 function contextClickAndGetMenuItems(element) | |
| 86 { | |
|
tkent
2014/08/25 23:07:41
Position of the '{' is inconsistent in this file.
pals
2014/08/26 07:13:23
Done.
| |
| 87 var x = element.offsetParent.offsetLeft + element.offsetLeft + 4; | |
| 88 var y = element.offsetParent.offsetTop + element.offsetTop + element.offsetH eight / 2; | |
| 89 eventSender.mouseMoveTo(x, y); | |
| 90 var items = eventSender.contextClick(); | |
|
tkent
2014/08/25 23:07:41
return eventSender.contextClick();
pals
2014/08/26 07:13:23
Done.
| |
| 91 return items; | |
| 92 } | |
| 93 | |
| 94 function cancel(event) { | |
| 95 event.preventDefault(); | |
| 96 } | |
| 97 | |
| 98 function removeMenu(event) { | |
| 99 parent = event.target.parentNode; | |
|
tkent
2014/08/25 23:07:41
event.target.remove();
pals
2014/08/26 07:13:22
Done.
| |
| 100 parent.removeChild(event.target); | |
| 101 } | |
| 102 | |
| 103 description("Tests the custom context menu items."); | |
| 104 var button = document.getElementById("button"); | |
| 105 var items = contextClickAndGetMenuItems(button); | |
| 106 | |
| 107 // Esc key to hide the context menu. | |
| 108 eventSender.keyDown(String.fromCharCode(0x001B), null); | |
|
tkent
2014/08/25 23:07:41
eventSender.keyDown("escape");
pals
2014/08/26 07:13:23
Done.
| |
| 109 | |
| 110 var buttonWithContextMenu = document.getElementById("button_with_contextmenu"); | |
| 111 var itemsWithCustomContextMenu = contextClickAndGetMenuItems(buttonWithContextMe nu); | |
| 112 | |
| 113 // Esc key to hide the context menu. | |
| 114 eventSender.keyDown(String.fromCharCode(0x001B), null); | |
| 115 | |
| 116 var button1 = document.getElementById("button_1"); | |
| 117 var items1 = contextClickAndGetMenuItems(button1); | |
| 118 | |
| 119 // Esc key to hide the context menu. | |
| 120 eventSender.keyDown(String.fromCharCode(0x001B), null); | |
| 121 | |
| 122 var button2 = document.getElementById("button_2"); | |
| 123 document.getElementById("menu_2").addEventListener("show", cancel, false); | |
| 124 var items2 = contextClickAndGetMenuItems(button2); | |
| 125 | |
| 126 // Esc key to hide the context menu. | |
| 127 eventSender.keyDown(String.fromCharCode(0x001B), null); | |
| 128 | |
| 129 var button3 = document.getElementById("button_3"); | |
| 130 document.getElementById("menu_3").addEventListener("show", removeMenu, false); | |
| 131 var items3 = contextClickAndGetMenuItems(button3); | |
| 132 | |
| 133 shouldBeEqualToNumber("itemsWithCustomContextMenu.length - items.length", 21); | |
| 134 shouldBeEqualToString("itemsWithCustomContextMenu[0]", "Item1"); | |
| 135 shouldBeEqualToString("itemsWithCustomContextMenu[4]", "Submenu >"); | |
| 136 shouldBeEqualToString("itemsWithCustomContextMenu[5]", "_Item4"); | |
| 137 shouldBeEqualToString("itemsWithCustomContextMenu[6]", "_Deeper submenu >"); | |
| 138 shouldBeEqualToString("itemsWithCustomContextMenu[7]", "__Item5"); | |
| 139 shouldBeEqualToString("itemsWithCustomContextMenu[8]", "__Separator"); | |
| 140 shouldBeEqualToString("itemsWithCustomContextMenu[10]", "Item7"); | |
| 141 shouldBeEqualToString("itemsWithCustomContextMenu[11]", "Separator"); | |
| 142 shouldBeEqualToString("itemsWithCustomContextMenu[12]", "Item8"); | |
| 143 shouldBeEqualToString("itemsWithCustomContextMenu[13]", "Separator"); | |
| 144 shouldBeEqualToString("itemsWithCustomContextMenu[14]", "Item9"); | |
| 145 shouldBeEqualToString("itemsWithCustomContextMenu[16]", "Separator"); | |
| 146 shouldBeEqualToString("itemsWithCustomContextMenu[19]", "Separator"); | |
| 147 shouldBeEqualToString("itemsWithCustomContextMenu[20]", "Item13"); | |
| 148 shouldBeEqualToNumber("items1.length - items.length", 0); | |
| 149 shouldBeEqualToNumber("items2.length - items.length", 0); | |
| 150 shouldBeEqualToNumber("items3.length - items.length", 0); | |
| 151 </script> | |
| OLD | NEW |