Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/collections/HTMLCollection-supported-property-indices.html |
diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/collections/HTMLCollection-supported-property-indices.html b/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/collections/HTMLCollection-supported-property-indices.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f5d4455f835b0a3a66bde40e7bfb4e650a931365 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/collections/HTMLCollection-supported-property-indices.html |
@@ -0,0 +1,100 @@ |
+<!doctype html> |
+<meta charset=utf-8> |
+<title></title> |
+<script src=../../../../resources/testharness.js></script> |
+<script src=../../../../resources/testharnessreport.js></script> |
+<!-- We want to use a tag name that will not interact with our test harness, |
+ so just make one up. "foo" is a good one --> |
+ |
+<!-- Ids that look like negative indices. These should come first, so we can |
+ assert that lookups for nonnegative indices find these by index --> |
+<foo id="-2"></foo> |
+<foo id="-1"></foo> |
+ |
+<!-- Ids that look like nonnegative indices --> |
+<foo id="0"></foo> |
+<foo id="1"></foo> |
+ |
+<!-- Ids that look like nonnegative indices near 2^31 = 2147483648 --> |
+<foo id="2147483645"></foo> <!-- 2^31 - 3 --> |
+<foo id="2147483646"></foo> <!-- 2^31 - 2 --> |
+<foo id="2147483647"></foo> <!-- 2^31 - 1 --> |
+<foo id="2147483648"></foo> <!-- 2^31 --> |
+<foo id="2147483649"></foo> <!-- 2^31 + 1 --> |
+ |
+<!-- Ids that look like nonnegative indices near 2^32 = 4294967296 --> |
+<foo id="4294967293"></foo> <!-- 2^32 - 3 --> |
+<foo id="4294967294"></foo> <!-- 2^32 - 2 --> |
+<foo id="4294967295"></foo> <!-- 2^32 - 1 --> |
+<foo id="4294967296"></foo> <!-- 2^32 --> |
+<foo id="4294967297"></foo> <!-- 2^32 + 1 --> |
+ |
+<script> |
+test(function() { |
+ var collection = document.getElementsByTagName("foo"); |
+ assert_equals(collection.item(-2), null); |
+ assert_equals(collection.item(-1), null); |
+ assert_equals(collection.namedItem(-2), document.getElementById("-2")); |
+ assert_equals(collection.namedItem(-1), document.getElementById("-1")); |
+ assert_equals(collection[-2], document.getElementById("-2")); |
+ assert_equals(collection[-1], document.getElementById("-1")); |
+}, "Handling of property names that look like negative integers"); |
+ |
+test(function() { |
+ var collection = document.getElementsByTagName("foo"); |
+ assert_equals(collection.item(0), document.getElementById("-2")); |
+ assert_equals(collection.item(1), document.getElementById("-1")); |
+ assert_equals(collection.namedItem(0), document.getElementById("0")); |
+ assert_equals(collection.namedItem(1), document.getElementById("1")); |
+ assert_equals(collection[0], document.getElementById("-2")); |
+ assert_equals(collection[1], document.getElementById("-1")); |
+}, "Handling of property names that look like small nonnegative integers"); |
+ |
+test(function() { |
+ var collection = document.getElementsByTagName("foo"); |
+ assert_equals(collection.item(2147483645), null); |
+ assert_equals(collection.item(2147483646), null); |
+ assert_equals(collection.item(2147483647), null); |
+ assert_equals(collection.item(2147483648), null); |
+ assert_equals(collection.item(2147483649), null); |
+ assert_equals(collection.namedItem(2147483645), |
+ document.getElementById("2147483645")); |
+ assert_equals(collection.namedItem(2147483646), |
+ document.getElementById("2147483646")); |
+ assert_equals(collection.namedItem(2147483647), |
+ document.getElementById("2147483647")); |
+ assert_equals(collection.namedItem(2147483648), |
+ document.getElementById("2147483648")); |
+ assert_equals(collection.namedItem(2147483649), |
+ document.getElementById("2147483649")); |
+ assert_equals(collection[2147483645], undefined); |
+ assert_equals(collection[2147483646], undefined); |
+ assert_equals(collection[2147483647], undefined); |
+ assert_equals(collection[2147483648], undefined); |
+ assert_equals(collection[2147483649], undefined); |
+}, "Handling of property names that look like integers around 2^31"); |
+ |
+test(function() { |
+ var collection = document.getElementsByTagName("foo"); |
+ assert_equals(collection.item(4294967293), null); |
+ assert_equals(collection.item(4294967294), null); |
+ assert_equals(collection.item(4294967295), null); |
+ assert_equals(collection.item(4294967296), document.getElementById("-2")); |
+ assert_equals(collection.item(4294967297), document.getElementById("-1")); |
+ assert_equals(collection.namedItem(4294967293), |
+ document.getElementById("4294967293")); |
+ assert_equals(collection.namedItem(4294967294), |
+ document.getElementById("4294967294")); |
+ assert_equals(collection.namedItem(4294967295), |
+ document.getElementById("4294967295")); |
+ assert_equals(collection.namedItem(4294967296), |
+ document.getElementById("4294967296")); |
+ assert_equals(collection.namedItem(4294967297), |
+ document.getElementById("4294967297")); |
+ assert_equals(collection[4294967293], undefined); |
+ assert_equals(collection[4294967294], undefined); |
+ assert_equals(collection[4294967295], document.getElementById("4294967295")); |
+ assert_equals(collection[4294967296], document.getElementById("4294967296")); |
+ assert_equals(collection[4294967297], document.getElementById("4294967297")); |
+}, "Handling of property names that look like integers around 2^32"); |
+</script> |