Index: LayoutTests/fast/dom/shadow/host-pseudo-class.html |
diff --git a/LayoutTests/fast/dom/shadow/host-pseudo-class.html b/LayoutTests/fast/dom/shadow/host-pseudo-class.html |
index 9e85306b28d49531dcf98e2666bfcf2e21aa9def..7d87996c273e473648c40b59e66f65616a611346 100644 |
--- a/LayoutTests/fast/dom/shadow/host-pseudo-class.html |
+++ b/LayoutTests/fast/dom/shadow/host-pseudo-class.html |
@@ -116,10 +116,24 @@ cleanUp(); |
debug(':host in a shadow tree should match its shadow host.'); |
sandbox.appendChild( |
- createDOM('div', {'id': 'host'}, |
+ createDOM('div', {'id': 'host', 'class': 'foobar'}, |
+ createShadowRoot( |
+ createDOM('style', {}, |
+ document.createTextNode(':host(div.foobar) { background-color: green; }')), |
+ createDOM('div', {}, |
+ document.createTextNode('Hello'))))); |
+ |
+backgroundColorShouldBe('host', 'rgb(0, 128, 0)'); |
+ |
+cleanUp(); |
+ |
+debug(':host with :ancestor in a shadow tree should match its shadow host.'); |
+ |
+sandbox.appendChild( |
+ createDOM('div', {'id': 'host', 'class': 'foobar'}, |
createShadowRoot( |
createDOM('style', {}, |
- document.createTextNode(':host(body.mytheme) { background-color: green; }')), |
+ document.createTextNode(':host(:ancestor(body.mytheme)) { background-color: green; }')), |
createDOM('div', {}, |
document.createTextNode('Hello'))))); |
@@ -130,13 +144,12 @@ cleanUp(); |
debug(':host takes simple selectors and matches when one of the simple selectors matches.'); |
sandbox.appendChild( |
- createDOM('div', {'id': 'parentOfHost'}, |
- createDOM('div', {'id': 'host'}, |
- createShadowRoot( |
- createDOM('style', {}, |
- document.createTextNode(':host(body:not(.mytheme), span, div#parentOfHost) { background-color: green; }')), |
- createDOM('div', {}, |
- document.createTextNode('Hello')))))); |
+ createDOM('div', {'id': 'host'}, |
+ createShadowRoot( |
+ createDOM('style', {}, |
+ document.createTextNode(':host(body:not(.mytheme), span, div#host) { background-color: green; }')), |
+ createDOM('div', {}, |
+ document.createTextNode('Hello'))))); |
backgroundColorShouldBe('host', 'rgb(0, 128, 0)'); |
@@ -157,89 +170,34 @@ sandbox.appendChild( |
backgroundColorShouldBe('host1', 'rgba(0, 0, 0, 0)'); |
backgroundColorShouldBe('host1/host2', 'rgb(0, 128, 0)'); |
-debug(':host matches based on a composed tree.'); |
+debug(':host is updated when its matched host changes className or id.'); |
sandbox.appendChild( |
- createDOM('div', {'id': 'parentOfHost'}, |
+ createDOM('div', {'id': 'host', 'class': 'sometheme' }, |
createShadowRoot( |
- createDOM('span', {'id': 'spanA'}, |
- createDOM('content', {}))), |
- createDOM('div', {'id': 'host'}, |
- createShadowRoot( |
- createDOM('style', {}, |
- document.createTextNode(':host(span#spanA) > div { background-color: green; }')), |
- createDOM('div', {'id': 'target'}, |
- document.createTextNode('Hello')))))); |
- |
-backgroundColorShouldBe('host/target', 'rgb(0, 128, 0)'); |
- |
-cleanUp(); |
- |
-debug(':host matches based on a composed tree when having multiple shadow roots.'); |
- |
-sandbox.appendChild( |
- createDOM('div', {'id': 'parentOfHost'}, |
- createShadowRoot( |
- createDOM('span', {'id': 'spanA'}, |
- document.createTextNode('no content, no shadow'))), |
- createShadowRoot( |
- createDOM('span', {'id': 'spanB'}, |
- createDOM('content', {}))), |
- createShadowRoot( |
- createDOM('span', {'id': 'spanC'}, |
- createDOM('shadow', {}, |
- createDOM('content')))), |
- createDOM('div', {'id': 'host'}, |
- createShadowRoot( |
- createDOM('style', {}, |
- document.createTextNode(':host(span#spanA) > #targetA { background-color: red; }')), |
- createDOM('style', {}, |
- document.createTextNode(':host(span#spanB) > #targetB { background-color: green; }')), |
- createDOM('style', {}, |
- document.createTextNode(':host(span#spanC) > #targetC { background-color: green; }')), |
- createDOM('div', {'id': 'targetA'}, |
- document.createTextNode('Hello')), |
- createDOM('div', {'id': 'targetB'}, |
- document.createTextNode('Hello')), |
- createDOM('div', {'id': 'targetC'}, |
- document.createTextNode('Hello')))))); |
- |
-backgroundColorShouldBe('host/targetA', 'rgba(0, 0, 0, 0)'); |
-backgroundColorShouldBe('host/targetB', 'rgb(0, 128, 0)'); |
-backgroundColorShouldBe('host/targetC', 'rgb(0, 128, 0)'); |
- |
-cleanUp(); |
- |
-debug(':host is updated when its matched ancestor changes className or id.'); |
- |
-sandbox.appendChild( |
- createDOM('div', {'id': 'parentOfHost', 'class': 'sometheme' }, |
- createDOM('div', {'id': 'host'}, |
- createShadowRoot( |
- createDOM('style', {}, |
- document.createTextNode(':host(div#parentOfHost.sometheme) { background-color: green; }')), |
- createDOM('div', {}, |
- document.createTextNode('Hello')))))); |
+ createDOM('style', {}, |
+ document.createTextNode(':host(.sometheme) { background-color: green; }')), |
+ createDOM('div', {}, |
+ document.createTextNode('Hello'))))); |
backgroundColorShouldBe('host', 'rgb(0, 128, 0)'); |
-document.getElementById('parentOfHost').className = 'mytheme'; |
+document.getElementById('host').className = 'mytheme'; |
backgroundColorShouldBe('host', 'rgba(0, 0, 0, 0)'); |
cleanUp(); |
sandbox.appendChild( |
- createDOM('div', {'id': 'parentOfHost', 'class': 'sometheme' }, |
- createDOM('div', {'id': 'host'}, |
- createShadowRoot( |
- createDOM('style', {}, |
- document.createTextNode(':host(div#parentOfHost.sometheme) { background-color: green; }')), |
- createDOM('div', {}, |
- document.createTextNode('Hello')))))); |
+ createDOM('div', {'id': 'host', 'class': 'sometheme'}, |
+ createShadowRoot( |
+ createDOM('style', {}, |
+ document.createTextNode(':host(div#host.sometheme) { background-color: green; }')), |
+ createDOM('div', {}, |
+ document.createTextNode('Hello'))))); |
backgroundColorShouldBe('host', 'rgb(0, 128, 0)'); |
-var parentOfHost = document.getElementById('parentOfHost'); |
-parentOfHost.id = 'differntIdValue'; |
-backgroundColorShouldBe('host', 'rgba(0, 0, 0, 0)'); |
+var host = document.getElementById('host'); |
+host.id = 'host2'; |
+backgroundColorShouldBe('host2', 'rgba(0, 0, 0, 0)'); |
cleanUp(); |
@@ -261,28 +219,28 @@ backgroundColorShouldBe('host', 'rgb(0, 128, 0)'); |
cleanUp(); |
sandbox.appendChild( |
- createDOM('div', {'id': 'host'}, |
+ createDOM('div', {'id': 'host', 'class': 'foobar' }, |
createShadowRoot( |
createDOM('style', {}, |
document.createTextNode(':host(div:host, div#nomatch) { background-color: green; }')), |
createDOM('style', {}, |
- document.createTextNode(':host(body.mytheme) { background-color: red; }')), |
+ document.createTextNode(':host(div.foobar) { background-color: red; }')), |
createDOM('div', {}, |
document.createTextNode('Hello'))))); |
-// :host(body.mytheme) wins, because div:host < body.mytheme. |
+// :host(div.foobar) wins, because div:host < div.foobar. |
backgroundColorShouldBe('host', 'rgb(255, 0, 0)'); |
cleanUp(); |
// Test for specificiy of ":host(...) > ...". |
sandbox.appendChild( |
- createDOM('div', {'id': 'host'}, |
+ createDOM('div', {'id': 'host', 'class': 'foobar' }, |
createShadowRoot( |
createDOM('style', {}, |
document.createTextNode(':host(div:host, div#host:host) > div { background-color: green; }')), |
createDOM('style', {}, |
- document.createTextNode(':host(body.mytheme) > div { background-color: red; }')), |
+ document.createTextNode(':host(div.foobar) > div { background-color: red; }')), |
createDOM('div', {'id': 'target'}, |
document.createTextNode('Hello'))))); |
@@ -296,7 +254,7 @@ sandbox.appendChild( |
createDOM('style', {}, |
document.createTextNode(':host(div:host, div#host.host:host) > div { background-color: green; }')), |
createDOM('style', {}, |
- document.createTextNode(':host(body) > div#target { background-color: red; }')), |
+ document.createTextNode(':host(div) > div#target { background-color: red; }')), |
createDOM('div', {'id': 'target'}, |
document.createTextNode('Hello'))))); |