Index: LayoutTests/fast/dom/shadow/shadow-tree-styles-with-apply-author-styles.html |
diff --git a/LayoutTests/fast/dom/shadow/shadow-tree-styles-with-apply-author-styles.html b/LayoutTests/fast/dom/shadow/shadow-tree-styles-with-apply-author-styles.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ba64a4d566b77c3150073452e14c4c091eb37746 |
--- /dev/null |
+++ b/LayoutTests/fast/dom/shadow/shadow-tree-styles-with-apply-author-styles.html |
@@ -0,0 +1,84 @@ |
+<!doctype html> |
+<html> |
+<head> |
+<script src="../../../resources/js-test.js"></script> |
+<script src="resources/shadow-dom.js"></script> |
+</head> |
+<body> |
+ <div id='sandbox'></div> |
+ <pre id='console'></pre> |
+</body> |
+<script> |
+description('Test for issue 247275: shadow tree styles selects shadow host when a shadow root has apply-author-styles true.'); |
+ |
+var sandbox = document.getElementById('sandbox'); |
+ |
+function borderColorOf(selector) { |
+ return window.getComputedStyle(getNodeInTreeOfTrees(selector)).borderColor; |
+} |
+ |
+function shouldHaveBorderColor(selector, color) { |
+ shouldBeEqualToString('borderColorOf(\'' + selector + '\')', color); |
+} |
+ |
+function cleanUp() { |
+ sandbox.innerHTML = ''; |
+} |
+ |
+sandbox.appendChild( |
+ createDOM('style', {}, |
+ document.createTextNode('div { border: 1px solid green; }'))); |
+sandbox.appendChild( |
+ createDOM('div', {'id': 'host'}, |
+ createShadowRoot( |
+ createDOM('div', {'id': 'target'}, |
+ createShadowRoot({'applyAuthorStyles': 'true'}, |
+ createDOM('span', {'id': 'span'}, |
+ document.createTextNode('Hello'))))))); |
+ |
+debug('Test when one shadow root has apply-author-styles true'); |
+shouldHaveBorderColor('host/target', 'rgb(0, 128, 0)'); |
+ |
+cleanUp(); |
+ |
+sandbox.appendChild( |
+ createDOM('style', {}, |
+ document.createTextNode('div { border: 1px solid green; }'))); |
+sandbox.appendChild( |
+ createDOM('div', {'id': 'host'}, |
+ createShadowRoot( |
+ createDOM('div', {'id': 'target'}, |
+ createShadowRoot({'applyAuthorStyles': 'true'}, |
+ createDOM('span', {'id': 'spanA'}, |
+ document.createTextNode('Hello'))), |
+ createShadowRoot( |
+ createDOM('span', {'id': 'spanB'}, |
+ document.createTextNode('Hello'))), |
+ document.createTextNode('child of target'))))); |
+ |
+debug('Test when an inert shadow root has apply-author-styles true'); |
+shouldHaveBorderColor('host/target', 'rgb(0, 0, 0)'); |
+ |
+cleanUp(); |
+ |
+sandbox.appendChild( |
+ createDOM('style', {}, |
+ document.createTextNode('div { border: 1px solid green; }'))); |
+sandbox.appendChild( |
+ createDOM('div', {'id': 'host'}, |
+ createShadowRoot( |
+ createDOM('div', {'id': 'target'}, |
+ createShadowRoot({'applyAuthorStyles': 'true'}, |
+ createDOM('span', {'id': 'spanA'}, |
+ document.createTextNode('Hello'))), |
+ createShadowRoot( |
+ createDOM('shadow', {}))), |
+ document.createTextNode('child of target')))); |
+ |
+debug('Test when one of shadow roots which are not out of compositing has apply-author-styles true'); |
+shouldHaveBorderColor('host/target', 'rgb(0, 128, 0)'); |
+ |
+cleanUp(); |
+ |
+</script> |
+</html> |