Index: sky/tests/dom/ownerScope.sky |
diff --git a/sky/tests/dom/ownerScope.sky b/sky/tests/dom/ownerScope.sky |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5eb7a8ec96efaaad5a99438f586bbb1e07e44518 |
--- /dev/null |
+++ b/sky/tests/dom/ownerScope.sky |
@@ -0,0 +1,47 @@ |
+<sky> |
+<import src="../resources/chai.sky" /> |
+<import src="../resources/mocha.sky" /> |
+<script> |
+describe("ownerScope", function() { |
+ it("should return null for elements not a child of a scope", function() { |
+ var doc = new Document(); |
+ var element = doc.createElement("div"); |
+ assert.isNull(element.ownerScope); |
+ }); |
+ it("should return the document for elements in the document scope", function() { |
+ var doc = new Document(); |
+ var element = doc.createElement("div"); |
+ doc.appendChild(element); |
+ assert.equal(element.ownerScope, element.ownerDocument); |
+ assert.equal(element.ownerScope, doc); |
+ }); |
+ it("should return the shadow root for elements in the shadow root scope", function() { |
+ var doc = new Document(); |
+ var host = doc.createElement("div"); |
+ var child = doc.createElement("div"); |
+ var shadowRoot = host.ensureShadowRoot(); |
+ shadowRoot.appendChild(child); |
+ assert.equal(child.ownerScope, shadowRoot); |
+ }); |
+ it("should return self for a shadow root or document", function() { |
+ var doc = new Document(); |
+ var host = doc.createElement("div"); |
+ doc.appendChild(host); |
+ var shadowRoot = host.ensureShadowRoot(); |
+ assert.equal(shadowRoot.ownerScope, shadowRoot); |
+ assert.equal(doc.ownerScope, doc); |
+ }); |
+ it("should dynamically update", function() { |
+ var doc = new Document(); |
+ var host = doc.createElement("div"); |
+ var child = doc.createElement("div"); |
+ var shadowRoot = host.ensureShadowRoot(); |
+ assert.equal(child.ownerScope, null); |
+ shadowRoot.appendChild(child); |
+ assert.equal(child.ownerScope, shadowRoot); |
+ child.remove(); |
+ assert.equal(child.ownerScope, null); |
+ }); |
+}); |
+</script> |
+</sky> |