OLD | NEW |
| (Empty) |
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | |
2 <html> | |
3 <head> | |
4 <script src="../../../resources/js-test.js"></script> | |
5 </head> | |
6 <script> | |
7 | |
8 description("Tests the contextmenu attribute."); | |
9 | |
10 debug("Test with valid contextmenu attribute"); | |
11 document.write("<div id='container1' contextmenu='menu1'><menu id='menu1' type='
context' label='menu 1'></menu></div>"); | |
12 shouldBeEqualToString("document.getElementById('container1').contextMenu.id", "m
enu1"); | |
13 shouldBeEqualToString("document.getElementById('container1').contextMenu.type",
"context"); | |
14 shouldBeEqualToString("document.getElementById('container1').contextMenu.label",
"menu 1"); | |
15 | |
16 debug("Test with invalid contextmenu attribute"); | |
17 document.write("<div id='container2' contextmenu='nonexistent_menu'><menu id='me
nu2' type='context' label='menu 2'></menu></div>"); | |
18 shouldBeNull("document.getElementById('container2').contextMenu"); | |
19 | |
20 debug("Test setting contextmenu attribute to non-context type menu element"); | |
21 document.write("<div id='container11' contextmenu='menu11'><menu id='menu11' typ
e='toolbar' label='menu 11'></menu></div>"); | |
22 var container11 = document.getElementById('container11'); | |
23 shouldBeEqualToString("container11.contextMenu.id", "menu11"); | |
24 shouldBeEqualToString("container11.contextMenu.type", "toolbar"); | |
25 shouldBeEqualToString("container11.contextMenu.label", "menu 11"); | |
26 | |
27 debug("Test setting contextmenu attribute to non-menu element"); | |
28 document.write("<div id='container12' contextmenu='button'><button id='button'><
/button></div>"); | |
29 var container12 = document.getElementById('container12'); | |
30 shouldBeNull("container12.contextMenu"); | |
31 | |
32 debug("Test setting contextmenu attribute to an ID which multiple elements have"
); | |
33 document.write("<div id='container13' contextmenu='menu13'><button id='menu13'><
/button><menu id='menu13' type='context' label='menu 13'></menu></div>"); | |
34 var container13 = document.getElementById('container13'); | |
35 shouldBeNull("container13.contextMenu"); | |
36 document.write("<div id='container14' contextmenu='menu14'><menu id='menu14' typ
e='context' label='menu 14'></menu><button id='menu14'></button></div>"); | |
37 var container14 = document.getElementById('container14'); | |
38 shouldBeEqualToString("container14.contextMenu.id", "menu14"); | |
39 shouldBeEqualToString("container14.contextMenu.type", "context"); | |
40 shouldBeEqualToString("container14.contextMenu.label", "menu 14"); | |
41 | |
42 debug("Test setting contextmenu attribute"); | |
43 document.write("<div id='container3'></div>"); | |
44 var menu = document.createElement('menu'); | |
45 menu.id = 'menu3'; | |
46 menu.type = 'context'; | |
47 menu.label = 'menu 3'; | |
48 document.getElementById('container3').appendChild(menu); | |
49 var container3 = document.getElementById('container3'); | |
50 container3.contextMenu = menu; | |
51 shouldBeEqualToString("container3.contextMenu.id", "menu3"); | |
52 shouldBeEqualToString("container3.contextMenu.type", "context"); | |
53 shouldBeEqualToString("container3.contextMenu.label", "menu 3"); | |
54 | |
55 debug("Test setting contextmenu attribute with menu element without id"); | |
56 document.write("<div id='container4'></div>"); | |
57 var menu1 = document.createElement('menu'); | |
58 menu1.type = 'context'; | |
59 menu1.label = 'menu 4'; | |
60 document.getElementById('container4').appendChild(menu1); | |
61 var container4 = document.getElementById('container4'); | |
62 container4.contextMenu = menu1; | |
63 shouldBeNull("container4.contextMenu"); | |
64 shouldBeTrue("container4.hasAttribute('contextmenu')"); | |
65 shouldBeEqualToString("container4.getAttribute('contextmenu')", ""); | |
66 | |
67 debug("Test setting contextmenu attribute with multiple menu element with same i
d"); | |
68 document.write("<div id='container5'></div>"); | |
69 var menu2 = document.createElement('menu'); | |
70 menu2.id = 'menu5'; | |
71 menu2.type = 'context'; | |
72 menu2.label = 'menu 5'; | |
73 var menu3 = document.createElement('menu'); | |
74 menu3.id = 'menu5'; | |
75 menu3.type = 'context'; | |
76 menu3.label = 'menu 6'; | |
77 document.getElementById('container5').appendChild(menu2); | |
78 document.getElementById('container5').appendChild(menu3); | |
79 var container5 = document.getElementById('container5'); | |
80 container5.contextMenu = menu3; | |
81 shouldBeNull("container5.contextMenu"); | |
82 container5.contextMenu = menu2; | |
83 shouldBe("container5.contextMenu", "menu2"); | |
84 | |
85 debug("Test setting contextmenu attribute to null"); | |
86 document.write("<div id='container6' contextmenu='menu6'><menu id='menu6'></menu
></div>"); | |
87 var container6 = document.getElementById('container6'); | |
88 container6.contextMenu = null; | |
89 shouldBeNull("container6.contextMenu"); | |
90 shouldBeTrue("container6.hasAttribute('contextmenu')"); | |
91 shouldBeEqualToString("container6.getAttribute('contextmenu')", ""); | |
92 | |
93 debug("Test setting contextmenu attribute to some text"); | |
94 document.write("<div id='container7'></div>"); | |
95 var container7 = document.getElementById('container7'); | |
96 shouldThrow("container7.contextMenu = 'foobar'"); | |
97 shouldBeNull("container7.contextMenu"); | |
98 | |
99 debug("Test setting contextmenu attribute to comment"); | |
100 document.write("<div id='container8'></div>"); | |
101 var container8 = document.getElementById('container8'); | |
102 shouldThrow("container8.contextMenu = document.createComment('foo')"); | |
103 shouldBeNull("container8.contextMenu"); | |
104 | |
105 debug("Test setting contextmenu attribute to menu without type"); | |
106 document.write("<div id='container9'></div>"); | |
107 var menu4 = document.createElement('menu'); | |
108 menu4.id = 'menu_without_type'; | |
109 menu4.label = 'menu without type'; | |
110 document.getElementById('container9').appendChild(menu4); | |
111 var container9 = document.getElementById('container9'); | |
112 container9.contextMenu = menu4; | |
113 shouldBeEqualToString("container9.contextMenu.id", "menu_without_type"); | |
114 shouldBeEqualToString("container9.contextMenu.type", "toolbar"); | |
115 shouldBeEqualToString("container9.contextMenu.label", "menu without type"); | |
116 | |
117 debug("Test setting contextmenu attribute to menu element which is in shadow dom
"); | |
118 document.write("<div id='container10'></div>"); | |
119 var menu5 = document.createElement('menu'); | |
120 menu5.id = 'menu_in_shadow_dom'; | |
121 menu5.label = 'menu in shadow dom'; | |
122 var container10 = document.getElementById('container10'); | |
123 container10.createShadowRoot().appendChild(menu5); | |
124 container10.contextMenu = menu5; | |
125 shouldBeNull("container10.contextMenu"); | |
126 | |
127 debug("Test contextmenu attribute of an element with no contextmenu attribute bu
t parent has valid contextmenu"); | |
128 document.write("<div contextmenu='menu7'><button id='inner'></button><menu id='m
enu7' type='context' label='menu 7'></menu></div>"); | |
129 var inner = document.getElementById('inner'); | |
130 shouldBeNull("inner.contextMenu"); | |
131 | |
132 debug("Test setting menu type when parent is contextmenu"); | |
133 document.write("<menu id='menu15' type='context'></menu>"); | |
134 var menu15 = document.getElementById('menu15'); | |
135 var menu16 = document.createElement('menu'); | |
136 menu16.id = 'menu16'; | |
137 menu15.appendChild(menu16); | |
138 shouldBeEqualToString("menu15.type", "context"); | |
139 shouldBeEqualToString("menu16.type", "context"); | |
140 menu16.type = 'popup'; | |
141 shouldBeEqualToString("menu16.type", "context"); | |
142 menu15.type = 'toolbar'; | |
143 shouldBeEqualToString("menu15.type", "toolbar"); | |
144 shouldBeEqualToString("menu16.type", "toolbar"); | |
145 </script> | |
146 </html> | |
OLD | NEW |