Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(81)

Side by Side Diff: LayoutTests/fast/dom/HTMLMenuElement/custom-context-menu.html

Issue 492753002: Add support to populate custom context menu items. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fixed comments Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | LayoutTests/fast/dom/HTMLMenuElement/custom-context-menu-expected.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(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>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/fast/dom/HTMLMenuElement/custom-context-menu-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698