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

Side by Side Diff: LayoutTests/contextmenu/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: Menu builder algorithm Created 6 years, 4 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
OLDNEW
(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>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/contextmenu/custom-context-menu-expected.txt » ('j') | Source/core/page/ContextMenuController.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698