| <!DOCTYPE html> |
| <html> |
| <body> |
| <p>Test passes if you see a single 100px by 100px green box below.</p> |
| <style> |
| |
| div { |
| width: 100px; |
| height: 25px; |
| background: red; |
| } |
| |
| </style> |
| <script> |
| |
| function appendShadowHost(container, template, callback) { |
| var host = document.createElement('div'); |
| container.appendChild(host); |
| var shadow = host.attachShadow({mode: 'closed'}); |
| shadow.innerHTML = template; |
| callback(shadow); |
| return host; |
| } |
| |
| appendShadowHost(document.body, ` |
| <style></style> |
| <div>FAIL</div> |
| `, function (shadow) { |
| var style = shadow.querySelector('style'); |
| style.sheet.insertRule('div { width: 100%; height: 100%; background: green; color: green; }', 0); |
| }); |
| appendShadowHost(document.body, ` |
| <style media="aural"> div { width: 100%; height: 100%; color: green; background: green; } </style> |
| <div>FAIL</div> |
| `, function (shadow) { |
| var style = shadow.querySelector('style'); |
| style.removeAttribute('media'); |
| }); |
| appendShadowHost(document.body, ` |
| <style> div { width: 100%; height: 100%; color: green; background: green; } </style> |
| <style> div { color: black; background: red; } </style> |
| <div>FAIL</div> |
| `, function (shadow) { |
| var style = shadow.querySelectorAll('style')[1]; |
| style.disabled = true; |
| }); |
| appendShadowHost(document.body, ` |
| <style> div { width: 100%; height: 100%; color: green; background: green; } </style> |
| <style> div { color: black; background: red; } </style> |
| <div>FAIL</div> |
| `, function (shadow) { |
| shadow.querySelectorAll('style')[1].remove(); |
| }); |
| |
| </script> |
| </body> |
| </html> |