| 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 |