diff options
Diffstat (limited to 'testing/web-platform/tests/html/dom/documents/dom-tree-accessors/document.images.html')
-rw-r--r-- | testing/web-platform/tests/html/dom/documents/dom-tree-accessors/document.images.html | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/dom/documents/dom-tree-accessors/document.images.html b/testing/web-platform/tests/html/dom/documents/dom-tree-accessors/document.images.html new file mode 100644 index 000000000..558fdebc3 --- /dev/null +++ b/testing/web-platform/tests/html/dom/documents/dom-tree-accessors/document.images.html @@ -0,0 +1,105 @@ +<!doctype html> +<meta charset=utf-8> +<title>Document.images</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div id=log></div> +<div id=test> +<img> +<img id=x><img name=y><img id=z1 name=z2> +<img id=a><img id=a> +<img name=b><img name=b> +<img id=><img name=> +<input type=image name=input> +</div> +<script> +function assert_all(aAssertFunc, aCollection) { + for (var i = 0; i < aCollection.length; ++i) { + aAssertFunc(aCollection[i]); + } +} + +var XHTML = "http://www.w3.org/1999/xhtml"; +var div, images, c; + +setup(function() { + div = document.getElementById("test"); + var foreign = + div.appendChild(document.createElementNS("http://example.org", "img")); + foreign.setAttribute("id", "f"); + + images = [].slice.call(div.getElementsByTagNameNS(XHTML, "img")); + + c = document.images; +}); + +test(function() { + assert_equals(c.length, 10); + assert_array_equals(c, images); + + assert_all(function (aElement) { + assert_equals(aElement.namespaceURI, XHTML); + }, c); +}, "document.images should contain all HTML img elements"); + +test(function() { + assert_equals(c.x, images[1]); + assert_equals(c.namedItem("x"), images[1]); + assert_true("x" in c, '"x" in c'); +}, "img with id"); + +test(function() { + assert_equals(c.y, images[2]); + assert_equals(c.namedItem("y"), images[2]); + assert_true("y" in c, '"y" in c'); +}, "img with name"); + +test(function() { + assert_equals(c.z1, images[3]); + assert_equals(c.namedItem("z1"), images[3]); + assert_true("z1" in c, '"z1" in c'); + assert_equals(c.z2, images[3]); + assert_equals(c.namedItem("z2"), images[3]); + assert_true("z2" in c, '"z2" in c'); +}, "img with id and name"); + +test(function() { + assert_equals(c.a, images[4]); + assert_equals(c.namedItem("a"), images[4]); + assert_true("a" in c, '"a" in c'); +}, "Two img elements with the same id"); + +test(function() { + assert_equals(c.b, images[6]); + assert_equals(c.namedItem("b"), images[6]); + assert_true("b" in c, '"b" in c'); +}, "Two img elements with the same name"); + +test(function() { + assert_equals(c.c, undefined); + assert_equals(c.namedItem("c"), null); + assert_false("c" in c, '"c" in c'); +}, "Unknown name should not be in the collection"); + +test(function() { + assert_equals(c.f, undefined); + assert_equals(c.namedItem("f"), null); + assert_false("f" in c, '"f" in c'); +}, "Foreign element should not be in the collection"); + +test(function() { + assert_equals(c.input, undefined); + assert_equals(c.namedItem("input"), null); + assert_false("input" in c, '"input" in c'); + var input = div.getElementsByTagName("input")[0]; + assert_all(function (aElement) { + assert_not_equals(aElement.namespaceURI, input); + }, c); +}, "Input elements should not be in the collection"); + +test(function() { + assert_equals(c[""], undefined); + assert_equals(c.namedItem(""), null); + assert_false("" in c, '"" in c'); +}, "The empty string should not be in the collections"); +</script> |