test_bug1269155.html (4070B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=1269155 5 --> 6 <head> 7 <title>Test for Bug 1269155</title> 8 <script type="text/javascript" src="head.js"></script> 9 <script src="/tests/SimpleTest/SimpleTest.js"></script> 10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 11 </head> 12 <body> 13 <a target="_blank" 14 href="https://bugzilla.mozilla.org/show_bug.cgi?id=1269155">Mozilla Bug 1269155</a> 15 <p id="display"></p> 16 17 <pre id="test"> 18 <script class="testbody" type="text/javascript"> 19 20 /** Test for Bug 1269155 */ 21 SimpleTest.waitForExplicitFinish(); 22 23 var content = '<div id="content" style="display: none"> </div>'; 24 createIframe(content) 25 .then((aDocument) => { 26 var host = aDocument.querySelector('#content'); 27 var root = host.attachShadow({mode: "open"}); 28 29 var header1 = aDocument.createElement('h1'); 30 header1.textContent = 'Shadow Header1'; 31 32 var paragraph1 = aDocument.createElement('p'); 33 paragraph1.textContent = 'shadow text paragraph1'; 34 35 root.appendChild(header1); 36 root.appendChild(paragraph1); 37 38 var root2 = paragraph1.attachShadow({mode: "open"}); 39 var header2 = aDocument.createElement('h2'); 40 header2.textContent = 'Shadow Header2'; 41 42 var paragraph2 = aDocument.createElement('p'); 43 paragraph2.textContent = 'shadow text paragraph2'; 44 root2.appendChild(header2); 45 root2.appendChild(paragraph2); 46 47 48 var frag = aDocument.createDocumentFragment(); 49 var paragraph3 = aDocument.createElement('p'); 50 paragraph3.textContent = 'fragment paragraph3'; 51 frag.appendChild(paragraph3); 52 53 var root3 = paragraph3.attachShadow({mode: "open"}); 54 var header4 = aDocument.createElement('h2'); 55 header4.textContent = 'Shadow Header3'; 56 57 var paragraph4 = aDocument.createElement('p'); 58 paragraph4.textContent = 'shadow text paragraph4'; 59 60 root3.appendChild(header4); 61 root3.appendChild(paragraph4); 62 63 //shadow dom without compose 64 is(root.getRootNode(), root, "root.getRootNode() should be root."); 65 is(root2.getRootNode(), root2, "root2.getRootNode() should be root."); 66 is(root3.getRootNode(), root3, "root3.getRootNode() should be root."); 67 is(header1.getRootNode(), root, "header1.getRootNode() should be root."); 68 is(header2.getRootNode(), root2, "header1.getRootNode() should be root2."); 69 is(header4.getRootNode(), root3, "header1.getRootNode() should be root3."); 70 //shadow dom with compose 71 is(root.getRootNode({ composed: true }), aDocument, "root.getRootNode() with composed flag should be document."); 72 is(root2.getRootNode({ composed: true }), aDocument, "root2.getRootNode() with composed flag should be document."); 73 is(root3.getRootNode({ composed: true }), frag, "root3.getRootNode() with composed flag should be frag."); 74 is(header1.getRootNode({ composed: true }) , aDocument, "header1.getRootNode() with composed flag should be document."); 75 is(header2.getRootNode({ composed: true }) , aDocument, "header2.getRootNode() with composed flag should be document."); 76 is(header4.getRootNode({ composed: true }) , frag, "head4.getRootNode() with composed flag should be frag."); 77 //dom without compose 78 is(host.getRootNode(), aDocument, "host.getRootNode() should be document."); 79 is(header1.getRootNode(), root, "header1.getRootNode() should be root."); 80 is(paragraph1.getRootNode(), root, "paragraph1.getRootNode() should be root."); 81 is(frag.getRootNode(), frag, "frag.getRootNode() should be frag."); 82 //dom with compose 83 is(host.getRootNode({ composed: true }) , aDocument, "host.getRootNode() with composed flag should be document."); 84 is(header1.getRootNode({ composed: true }) , aDocument, "header1.getRootNode() with composed flag should be document."); 85 is(paragraph1.getRootNode({ composed: true }) , aDocument, "paragraph1.getRootNode() with composed flag should be document."); 86 is(frag.getRootNode({ composed: true }) , frag, "frag.getRootNode() with composed flag should be frag."); 87 88 SimpleTest.finish(); 89 }); 90 </script> 91 </pre> 92 </body> 93 </html>