4 <script src="../../../resources/js-test.js"></script>
5 <script src="resources/shadow-dom.js"></script>
8 <div id='sandbox'></div>
9 <pre id='console'></pre>
12 description('Test for issue 247275: shadow tree styles selects shadow host when a shadow root has apply-author-styles true.');
14 var sandbox = document.getElementById('sandbox');
16 function borderColorOf(selector) {
17 return window.getComputedStyle(getNodeInTreeOfTrees(selector)).borderColor;
20 function shouldHaveBorderColor(selector, color) {
21 shouldBeEqualToString('borderColorOf(\'' + selector + '\')', color);
25 sandbox.innerHTML = '';
29 createDOM('style', {},
30 document.createTextNode('div { border: 1px solid green; }')));
32 createDOM('div', {'id': 'host'},
34 createDOM('div', {'id': 'target'},
35 createShadowRoot({'applyAuthorStyles': 'true'},
36 createDOM('span', {'id': 'span'},
37 document.createTextNode('Hello')))))));
39 debug('Test when one shadow root has apply-author-styles true');
40 shouldHaveBorderColor('host/target', 'rgb(0, 128, 0)');
45 createDOM('style', {},
46 document.createTextNode('div { border: 1px solid green; }')));
48 createDOM('div', {'id': 'host'},
50 createDOM('div', {'id': 'target'},
51 createShadowRoot({'applyAuthorStyles': 'true'},
52 createDOM('span', {'id': 'spanA'},
53 document.createTextNode('Hello'))),
55 createDOM('span', {'id': 'spanB'},
56 document.createTextNode('Hello'))),
57 document.createTextNode('child of target')))));
59 debug('Test when an inert shadow root has apply-author-styles true');
60 shouldHaveBorderColor('host/target', 'rgb(0, 0, 0)');
65 createDOM('style', {},
66 document.createTextNode('div { border: 1px solid green; }')));
68 createDOM('div', {'id': 'host'},
70 createDOM('div', {'id': 'target'},
71 createShadowRoot({'applyAuthorStyles': 'true'},
72 createDOM('span', {'id': 'spanA'},
73 document.createTextNode('Hello'))),
75 createDOM('shadow', {}))),
76 document.createTextNode('child of target'))));
78 debug('Test when one of shadow roots which are not out of compositing has apply-author-styles true');
79 shouldHaveBorderColor('host/target', 'rgb(0, 128, 0)');