Index: third_party/WebKit/LayoutTests/imported/wpt/html/semantics/forms/the-form-element/form-nameditem.html |
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/html/semantics/forms/the-form-element/form-nameditem.html b/third_party/WebKit/LayoutTests/imported/wpt/html/semantics/forms/the-form-element/form-nameditem.html |
index 3edf903b735248f57d2565c20d65650c42170758..0155d38b5473adf45ccb6421ecf8de89a03537bb 100644 |
--- a/third_party/WebKit/LayoutTests/imported/wpt/html/semantics/forms/the-form-element/form-nameditem.html |
+++ b/third_party/WebKit/LayoutTests/imported/wpt/html/semantics/forms/the-form-element/form-nameditem.html |
@@ -327,4 +327,93 @@ test(function() { |
assert_equals(form["new-name2"], 5); |
}, 'Trying to set a non-configurable expando that shadows a named property that gets added later'); |
+test(function() { |
+ var form = document.getElementsByTagName("form")[1]; |
+ |
+ var i1 = document.createElement("input"); |
+ i1.name = "past-name1"; |
+ i1.id = "past-id1" |
+ |
+ assert_equals(form["past-name1"], undefined); |
+ assert_equals(form["past-id1"], undefined); |
+ form.appendChild(i1); |
+ assert_equals(form["past-name1"], i1); |
+ assert_equals(form["past-id1"], i1); |
+ |
+ i1.name = "twiddled-name1"; |
+ i1.id = "twiddled-id1"; |
+ assert_equals(form["past-name1"], i1); |
+ assert_equals(form["twiddled-name1"], i1); |
+ assert_equals(form["past-id1"], i1); |
+ assert_equals(form["twiddled-id1"], i1); |
+ |
+ i1.name = "twiddled-name2"; |
+ i1.id = "twiddled-id2"; |
+ assert_equals(form["past-name1"], i1); |
+ assert_equals(form["twiddled-name1"], i1); |
+ assert_equals(form["twiddled-name2"], i1); |
+ assert_equals(form["past-id1"], i1); |
+ assert_equals(form["twiddled-id1"], i1); |
+ assert_equals(form["twiddled-id2"], i1); |
+ |
+ i1.removeAttribute("id"); |
+ i1.removeAttribute("name"); |
+ assert_equals(form["past-name1"], i1); |
+ assert_equals(form["twiddled-name1"], i1); |
+ assert_equals(form["twiddled-name2"], i1); |
+ assert_equals(form["past-id1"], i1); |
+ assert_equals(form["twiddled-id1"], i1); |
+ assert_equals(form["twiddled-id2"], i1); |
+ |
+ i1.remove(); |
+ assert_equals(form["past-name1"], undefined); |
+ assert_equals(form["twiddled-name1"], undefined); |
+ assert_equals(form["twiddled-name2"], undefined); |
+ assert_equals(form["past-id1"], undefined); |
+ assert_equals(form["twiddled-id1"], undefined); |
+ assert_equals(form["twiddled-id2"], undefined); |
+ |
+ var i2 = document.createElement("input"); |
+ i2.name = "past-name2"; |
+ i2.id = "past-id2"; |
+ |
+ assert_equals(form["past-name2"], undefined); |
+ assert_equals(form["past-id2"], undefined); |
+ form.appendChild(i2); |
+ assert_equals(form["past-name2"], i2); |
+ assert_equals(form["past-id2"], i2); |
+ |
+ i2.name = "twiddled-name3"; |
+ i2.id = "twiddled-id3"; |
+ assert_equals(form["past-name2"], i2); |
+ assert_equals(form["twiddled-name3"], i2); |
+ assert_equals(form["past-id2"], i2); |
+ assert_equals(form["twiddled-id3"], i2); |
+ |
+ i2.name = "twiddled-name4"; |
+ i2.id = "twiddled-id4"; |
+ assert_equals(form["past-name2"], i2); |
+ assert_equals(form["twiddled-name3"], i2); |
+ assert_equals(form["twiddled-name4"], i2); |
+ assert_equals(form["past-id2"], i2); |
+ assert_equals(form["twiddled-id3"], i2); |
+ assert_equals(form["twiddled-id4"], i2); |
+ |
+ i2.removeAttribute("id"); |
+ i2.removeAttribute("name"); |
+ assert_equals(form["past-name2"], i2); |
+ assert_equals(form["twiddled-name3"], i2); |
+ assert_equals(form["twiddled-name4"], i2); |
+ assert_equals(form["past-id2"], i2); |
+ assert_equals(form["twiddled-id3"], i2); |
+ assert_equals(form["twiddled-id4"], i2); |
+ |
+ i2.setAttribute("form", "c"); |
+ assert_equals(form["past-name2"], undefined); |
+ assert_equals(form["twiddled-name3"], undefined); |
+ assert_equals(form["twiddled-name4"], undefined); |
+ assert_equals(form["past-id2"], undefined); |
+ assert_equals(form["twiddled-id3"], undefined); |
+ assert_equals(form["twiddled-id4"], undefined); |
+}, "Past names map should work correctly"); |
</script> |