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 |