Index: LayoutTests/fast/dom/script-tests/unsigned-long-attribute-reflection.js |
diff --git a/LayoutTests/fast/dom/script-tests/unsigned-long-attribute-reflection.js b/LayoutTests/fast/dom/script-tests/unsigned-long-attribute-reflection.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..45a35159b1f57aaa43ade3eede78db6591b86ef0 |
--- /dev/null |
+++ b/LayoutTests/fast/dom/script-tests/unsigned-long-attribute-reflection.js |
@@ -0,0 +1,49 @@ |
+// http://whatwg.org/html#reflecting-content-attributes-in-idl-attributes |
+// http://whatwg.org/html#rules-for-parsing-non-negative-integers |
+function testUnsignedLong(interface, createElement, attribute) |
+{ |
+ test(function() |
+ { |
+ var element = createElement(); |
+ |
+ assert_equals(element[attribute], 0); |
+ |
+ function t(input, output) |
+ { |
+ element.setAttribute(attribute, input); |
+ assert_equals(element[attribute], output); |
+ } |
+ |
+ t("", 0); |
+ t("0", 0); |
+ t("1", 1); |
+ t("2147483647", 2147483647); |
+ t("2147483648", 0); |
+ t("-1", 0); |
+ t("+42", 42); |
+ t(" 42", 42); |
+ t("42!", 42); |
+ }, "get " + interface + "." + attribute); |
+ |
+ test(function() |
+ { |
+ var element = createElement(); |
+ |
+ assert_false(element.hasAttribute(attribute)); |
+ |
+ function t(input, output) |
+ { |
+ element[attribute] = input; |
+ assert_equals(element.getAttribute(attribute), output); |
+ } |
+ |
+ t(0, "0"); |
+ t(2147483647, "2147483647"); |
+ // per spec: |
+ //t(2147483648, "0"); |
+ //t(-1, "0"); |
+ // per implementation <http://crbug.com/316122>: |
+ t(2147483648, "2147483648"); |
+ t(-1, "4294967295"); |
+ }, "set " + interface + "." + attribute); |
+} |