| 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 f372742a721151b426f0de62926ac25b2faaf6c7..3edf903b735248f57d2565c20d65650c42170758 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
|
| @@ -115,6 +115,11 @@ test(function() {
|
| var button = document.getElementsByTagName("input")[0]
|
| assert_equals(button.type, "button")
|
| assert_equals(form.button, button)
|
| + var desc = Object.getOwnPropertyDescriptor(form, "button");
|
| + assert_equals(desc.value, button);
|
| + assert_false(desc.writable);
|
| + assert_true(desc.configurable);
|
| + assert_false(desc.enumerable);
|
| assert_equals(form.button.length, undefined)
|
| }, "Name for a single element should work")
|
|
|
| @@ -222,6 +227,12 @@ test(function() {
|
| assert_equals(input2.localName, "input")
|
| assert_equals(input2.getAttribute("form"), "c")
|
|
|
| + var desc = Object.getOwnPropertyDescriptor(form, "d");
|
| + assert_equals(desc.value, form.d);
|
| + assert_false(desc.writable);
|
| + assert_true(desc.configurable);
|
| + assert_false(desc.enumerable);
|
| +
|
| assert_true(form.d instanceof NodeList, "form.d should be a NodeList")
|
| assert_array_equals(form.d, [input1, input2])
|
| }, "The form attribute should be taken into account for named getters (multiple elements)")
|
| @@ -236,4 +247,84 @@ test(function() {
|
| assert_equals(f.x, undefined)
|
| assert_equals(g.x, input)
|
| }, "Input should only be a named property on the innermost form that contains it")
|
| +
|
| +test(function() {
|
| + var form = document.getElementsByTagName("form")[1];
|
| + var old_item = form["l1"];
|
| + var old_desc = Object.getOwnPropertyDescriptor(form, "l1");
|
| + assert_equals(old_desc.value, old_item);
|
| + assert_false(old_desc.enumerable);
|
| + assert_true(old_desc.configurable);
|
| + assert_false(old_desc.writable);
|
| +
|
| + form["l1"] = 5;
|
| + assert_equals(form["l1"], old_item);
|
| + assert_throws(new TypeError(), function() {
|
| + "use strict";
|
| + form["l1"] = 5;
|
| + });
|
| + assert_throws(new TypeError(), function() {
|
| + Object.defineProperty(form, "l1", { value: 5 });
|
| + });
|
| +
|
| + delete form["l1"];
|
| + assert_equals(form["l1"], old_item);
|
| +
|
| + assert_throws(new TypeError(), function() {
|
| + "use strict";
|
| + delete form["l1"];
|
| + });
|
| + assert_equals(form["l1"], old_item);
|
| +
|
| +}, 'Trying to set an expando that would shadow an already-existing named property');
|
| +
|
| +test(function() {
|
| + var form = document.getElementsByTagName("form")[1];
|
| + var old_item = form["new-name"];
|
| + var old_desc = Object.getOwnPropertyDescriptor(form, "new-name");
|
| + assert_equals(old_item, undefined);
|
| + assert_equals(old_desc, undefined);
|
| +
|
| + form["new-name"] = 5;
|
| + assert_equals(form["new-name"], 5);
|
| +
|
| + var input = document.createElement("input");
|
| + this.add_cleanup(function () {input.remove();});
|
| + input.name = "new-name";
|
| + form.appendChild(input);
|
| +
|
| + assert_equals(form["new-name"], 5);
|
| +
|
| + delete form["new-name"];
|
| + assert_equals(form["new-name"], input);
|
| +}, 'Trying to set an expando that shadows a named property that gets added later');
|
| +
|
| +test(function() {
|
| + var form = document.getElementsByTagName("form")[1];
|
| + var old_item = form["new-name2"];
|
| + var old_desc = Object.getOwnPropertyDescriptor(form, "new-name2");
|
| + assert_equals(old_item, undefined);
|
| + assert_equals(old_desc, undefined);
|
| +
|
| + Object.defineProperty(form, "new-name2", { configurable: false, writable:
|
| + false, value: 5 });
|
| + assert_equals(form["new-name2"], 5);
|
| +
|
| + var input = document.createElement("input");
|
| + this.add_cleanup(function () {input.remove();});
|
| + input.name = "new-name2";
|
| + form.appendChild(input);
|
| +
|
| + assert_equals(form["new-name2"], 5);
|
| +
|
| + delete form["new-name2"];
|
| + assert_equals(form["new-name2"], 5);
|
| +
|
| + assert_throws(new TypeError(), function() {
|
| + "use strict";
|
| + delete form["new-name2"];
|
| + });
|
| + assert_equals(form["new-name2"], 5);
|
| +}, 'Trying to set a non-configurable expando that shadows a named property that gets added later');
|
| +
|
| </script>
|
|
|