| 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='
     popup' label='menu 1'></menu></div>"); | 
 |   12 shouldBeEqualToString("document.getElementById('container1').contextMenu.id", "m
     enu1"); | 
 |   13 shouldBeEqualToString("document.getElementById('container1').contextMenu.type", 
     "popup"); | 
 |   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='popup' label='menu 2'></menu></div>"); | 
 |   18 shouldBeNull("document.getElementById('container2').contextMenu"); | 
 |   19  | 
 |   20 debug("Test setting contextmenu attribute to non-popup 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='popup' 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='popup' 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", "popup"); | 
 |   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 = 'popup'; | 
 |   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", "popup"); | 
 |   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 = 'popup'; | 
 |   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 = 'popup'; | 
 |   72 menu2.label = 'menu 5'; | 
 |   73 var menu3 = document.createElement('menu'); | 
 |   74 menu3.id = 'menu5'; | 
 |   75 menu3.type = 'popup'; | 
 |   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 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 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", ""); | 
 |  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 </script> | 
 |  128 </html> | 
| OLD | NEW |