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="ConText"> | |
9 <!-- Test removal of separator at the start. --> | |
10 <hr> | |
11 <menuitem label="Item1"></menuitem> | |
12 <!-- Test disabled menuitem. --> | |
13 <menuitem label="Item2" disabled></menuitem> | |
14 <!-- Test addition of separator for <hr>. --> | |
15 <hr> | |
16 <menuitem label="Item3"></menuitem> | |
17 <!-- Test child menu with label. --> | |
18 <menu label="Submenu"> | |
19 <menuitem label="Item4"></menuitem> | |
20 <menu label="Deeper submenu"> | |
21 <!-- Test removal of separator at the start inside submenu. --> | |
22 <hr> | |
23 <menuitem label="Item5"></menuitem> | |
24 <hr> | |
25 <menuitem label="Item6"></menuitem> | |
26 <!-- Test removal of separator at the end inside submenu. --> | |
27 <hr> | |
28 </menu> | |
29 </menu> | |
30 <menuitem label="Item7"></menuitem> | |
31 <!-- Test child menu without label. --> | |
32 <menu> | |
33 <menuitem label="Item8"></menuitem> | |
34 <!-- Test child menu with empty label. --> | |
35 <menu label=""> | |
36 <menuitem label="Item9"></menuitem> | |
37 <menuitem label="Item10"></menuitem> | |
38 </menu> | |
39 <menuitem label="Item11"></menuitem> | |
40 <menuitem label="Item12"></menuitem> | |
41 </menu> | |
42 <!-- Test collapsing two or more adjacent separators. --> | |
43 <hr> | |
44 <hr> | |
45 <hr> | |
46 <hr> | |
47 <!-- Test menuitem menu without label. --> | |
48 <menuitem></menuitem> | |
49 <!-- Test menuitem menu with empty label. --> | |
50 <menuitem label=""></menuitem> | |
51 <menuitem label="Item13"></menuitem> | |
52 <!-- Test menuitem of type "checkbox" without "checked" attribute. --> | |
53 <menuitem type="checkbox" label="Item14"></menuitem> | |
54 <!-- Test menuitem of type "checkbox" with "checked" attribute. --> | |
55 <menuitem type="checkbox" label="Item15" checked></menuitem> | |
56 <!-- Test default menuitem with "checked" attribute. --> | |
57 <menuitem label="Item16" checked></menuitem> | |
58 <!-- Test menuitem of type "radio" with "checked" attribute. --> | |
59 <menuitem type="radio" radiogroup="group" label="Item17"></menuitem> | |
60 <menuitem type="radio" radiogroup="group" label="Item18" checked></menui
tem> | |
61 <menuitem type="radio" radiogroup="group" label="Item19"></menuitem> | |
62 <!-- Test removal of separator at the end. --> | |
63 <hr> | |
64 </menu> | |
65 </button> | |
66 <!-- Test with menu element without type attribute specified. --> | |
67 <button id="button_1" contextmenu="menu_without_type" style="height: 100px; widt
h: 100px;"> | |
68 <menu id="menu_without_type"> | |
69 <menuitem label="Item1"></menuitem> | |
70 <menuitem label="Item2"></menuitem> | |
71 <menuitem label="Item3"></menuitem> | |
72 </menu> | |
73 </button> | |
74 <!-- Test cancelling show event. --> | |
75 <button id="button_2" contextmenu="menu_2" style="height: 100px; width: 100px;"> | |
76 <menu id="menu_2" type="context"> | |
77 <menuitem label="Item1"></menuitem> | |
78 <menuitem label="Item2"></menuitem> | |
79 <menuitem label="Item3"></menuitem> | |
80 </menu> | |
81 </button> | |
82 <!-- Test removing menu element inside show event handler. --> | |
83 <button id="button_3" contextmenu="menu_3" style="height: 100px; width: 100px;"> | |
84 <menu id="menu_3" type="context"> | |
85 <menuitem label="Item1"></menuitem> | |
86 <menuitem label="Item2"></menuitem> | |
87 <menuitem label="Item3"></menuitem> | |
88 </menu> | |
89 </button> | |
90 <!-- Test with menu element without any children. --> | |
91 <button id="button_4" contextmenu="menu_4" style="height: 100px; width: 100px;"> | |
92 <menu id="menu_4" type="context"> | |
93 </menu> | |
94 </button> | |
95 <!-- Test if an element A has a parent element, then A's assigned context menu i
s the assigned context menu of its parent element. --> | |
96 <div contextmenu="menu_5"> | |
97 <div> | |
98 <button id="button_5" style="height: 100px; width: 100px;"></button> | |
99 </div> | |
100 <menu id="menu_5" type="context"> | |
101 <menuitem label="Item1"> | |
102 <menuitem label="Item2"> | |
103 <menuitem label="Item3"> | |
104 </menu> | |
105 </div> | |
106 <script> | |
107 if (!window.eventSender) | |
108 debug("This test requires window.eventSender.") | |
109 | |
110 function contextClickAndGetMenuItems(element) { | |
111 var x = element.offsetParent.offsetLeft + element.offsetLeft + 4; | |
112 var y = element.offsetParent.offsetTop + element.offsetTop + element.offsetH
eight / 2; | |
113 eventSender.mouseMoveTo(x, y); | |
114 return eventSender.contextClick(); | |
115 } | |
116 | |
117 function cancel(event) { | |
118 event.preventDefault(); | |
119 } | |
120 | |
121 function removeMenu(event) { | |
122 event.target.remove(); | |
123 } | |
124 | |
125 description("Tests the custom context menu items."); | |
126 var button = document.getElementById("button"); | |
127 var items = contextClickAndGetMenuItems(button); | |
128 | |
129 // Esc key to hide the context menu. | |
130 eventSender.keyDown("Escape"); | |
131 | |
132 var buttonWithContextMenu = document.getElementById("button_with_contextmenu"); | |
133 var itemsWithCustomContextMenu = contextClickAndGetMenuItems(buttonWithContextMe
nu); | |
134 | |
135 // Esc key to hide the context menu. | |
136 eventSender.keyDown("Escape"); | |
137 | |
138 var button1 = document.getElementById("button_1"); | |
139 var items1 = contextClickAndGetMenuItems(button1); | |
140 | |
141 // Esc key to hide the context menu. | |
142 eventSender.keyDown("Escape"); | |
143 | |
144 var button2 = document.getElementById("button_2"); | |
145 document.getElementById("menu_2").addEventListener("show", cancel, false); | |
146 var items2 = contextClickAndGetMenuItems(button2); | |
147 | |
148 // Esc key to hide the context menu. | |
149 eventSender.keyDown("Escape"); | |
150 | |
151 var button3 = document.getElementById("button_3"); | |
152 document.getElementById("menu_3").addEventListener("show", removeMenu, false); | |
153 var items3 = contextClickAndGetMenuItems(button3); | |
154 | |
155 // Esc key to hide the context menu. | |
156 eventSender.keyDown("Escape"); | |
157 | |
158 var button4 = document.getElementById("button_4"); | |
159 var items4 = contextClickAndGetMenuItems(button4); | |
160 | |
161 // Esc key to hide the context menu. | |
162 eventSender.keyDown("Escape"); | |
163 | |
164 var button5 = document.getElementById("button_5"); | |
165 var items5 = contextClickAndGetMenuItems(button5); | |
166 | |
167 shouldBeEqualToNumber("itemsWithCustomContextMenu.length - items.length", 23); | |
168 shouldBeEqualToString("itemsWithCustomContextMenu[0]", "Item1"); | |
169 shouldBeEqualToString("itemsWithCustomContextMenu[1]", "#Item2"); | |
170 shouldBeEqualToString("itemsWithCustomContextMenu[2]", "---------"); | |
171 shouldBeEqualToString("itemsWithCustomContextMenu[3]", "Item3"); | |
172 shouldBeEqualToString("itemsWithCustomContextMenu[4]", "Submenu >"); | |
173 shouldBeEqualToString("itemsWithCustomContextMenu[5]", "_Item4"); | |
174 shouldBeEqualToString("itemsWithCustomContextMenu[6]", "_Deeper submenu >"); | |
175 shouldBeEqualToString("itemsWithCustomContextMenu[7]", "__Item5"); | |
176 shouldBeEqualToString("itemsWithCustomContextMenu[8]", "__---------"); | |
177 shouldBeEqualToString("itemsWithCustomContextMenu[9]", "__Item6"); | |
178 shouldBeEqualToString("itemsWithCustomContextMenu[10]", "Item7"); | |
179 shouldBeEqualToString("itemsWithCustomContextMenu[11]", "---------"); | |
180 shouldBeEqualToString("itemsWithCustomContextMenu[12]", "Item8"); | |
181 shouldBeEqualToString("itemsWithCustomContextMenu[13]", "Item11"); | |
182 shouldBeEqualToString("itemsWithCustomContextMenu[14]", "Item12"); | |
183 shouldBeEqualToString("itemsWithCustomContextMenu[15]", "---------"); | |
184 shouldBeEqualToString("itemsWithCustomContextMenu[16]", "Item13"); | |
185 shouldBeEqualToString("itemsWithCustomContextMenu[17]", "Item14"); | |
186 shouldBeEqualToString("itemsWithCustomContextMenu[18]", "*Item15"); | |
187 shouldBeEqualToString("itemsWithCustomContextMenu[19]", "Item16"); | |
188 shouldBeEqualToString("itemsWithCustomContextMenu[20]", "Item17"); | |
189 shouldBeEqualToString("itemsWithCustomContextMenu[21]", "*Item18"); | |
190 shouldBeEqualToString("itemsWithCustomContextMenu[22]", "Item19"); | |
191 shouldBeEqualToNumber("items1.length - items.length", 0); | |
192 shouldBeEqualToNumber("items2.length - items.length", 0); | |
193 shouldBeEqualToNumber("items3.length - items.length", 0); | |
194 shouldBeEqualToNumber("items4.length - items.length", 0); | |
195 shouldBeEqualToNumber("items5.length - items.length", 3); | |
196 shouldBeEqualToString("items5[0]", "Item1"); | |
197 shouldBeEqualToString("items5[1]", "Item2"); | |
198 shouldBeEqualToString("items5[2]", "Item3"); | |
199 | |
200 </script> | |
OLD | NEW |