Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Unified Diff: third_party/WebKit/LayoutTests/imported/wpt/dom/collections/HTMLCollection-supported-property-names.html

Issue 2408493002: Import wpt@357b83b809e3cbc7a1805e7c3ca108a7980d782f (Closed)
Patch Set: Added one more win7-specific baseline Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/imported/wpt/dom/collections/HTMLCollection-supported-property-names.html
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/dom/collections/HTMLCollection-supported-property-names.html b/third_party/WebKit/LayoutTests/imported/wpt/dom/collections/HTMLCollection-supported-property-names.html
index a37163b7d189c292336f17a5db8ba3c0ac512efa..0a9df1ad6606476c3f3463032957cec931af19b4 100644
--- a/third_party/WebKit/LayoutTests/imported/wpt/dom/collections/HTMLCollection-supported-property-names.html
+++ b/third_party/WebKit/LayoutTests/imported/wpt/dom/collections/HTMLCollection-supported-property-names.html
@@ -51,4 +51,85 @@ test(function () {
assert_array_equals(Object.getOwnPropertyNames(elements), ['0', 'someProperty']);
}, 'Object.getOwnPropertyNames on HTMLCollection with expando object');
+
+test(function() {
+ var elements = document.getElementsByTagName("span");
+ var old_item = elements["some-id"];
+ var old_desc = Object.getOwnPropertyDescriptor(elements, "some-id");
+ assert_equals(old_desc.value, old_item);
+ assert_false(old_desc.enumerable);
+ assert_true(old_desc.configurable);
+ assert_false(old_desc.writable);
+
+ elements["some-id"] = 5;
+ assert_equals(elements["some-id"], old_item);
+ assert_throws(new TypeError(), function() {
+ "use strict";
+ elements["some-id"] = 5;
+ });
+ assert_throws(new TypeError(), function() {
+ Object.defineProperty(elements, "some-id", { value: 5 });
+ });
+
+ delete elements["some-id"];
+ assert_equals(elements["some-id"], old_item);
+
+ assert_throws(new TypeError(), function() {
+ "use strict";
+ delete elements["some-id"];
+ });
+ assert_equals(elements["some-id"], old_item);
+
+}, 'Trying to set an expando that would shadow an already-existing named property');
+
+test(function() {
+ var elements = document.getElementsByTagName("span");
+ var old_item = elements["new-id"];
+ var old_desc = Object.getOwnPropertyDescriptor(elements, "new-id");
+ assert_equals(old_item, undefined);
+ assert_equals(old_desc, undefined);
+
+ elements["new-id"] = 5;
+ assert_equals(elements["new-id"], 5);
+
+ var span = document.createElement("span");
+ this.add_cleanup(function () {span.remove();});
+ span.id = "new-id";
+ document.body.appendChild(span);
+
+ assert_equals(elements.namedItem("new-id"), span);
+ assert_equals(elements["new-id"], 5);
+
+ delete elements["new-id"];
+ assert_equals(elements["new-id"], span);
+}, 'Trying to set an expando that shadows a named property that gets added later');
+
+test(function() {
+ var elements = document.getElementsByTagName("span");
+ var old_item = elements["new-id2"];
+ var old_desc = Object.getOwnPropertyDescriptor(elements, "new-id2");
+ assert_equals(old_item, undefined);
+ assert_equals(old_desc, undefined);
+
+ Object.defineProperty(elements, "new-id2", { configurable: false, writable:
+ false, value: 5 });
+ assert_equals(elements["new-id2"], 5);
+
+ var span = document.createElement("span");
+ this.add_cleanup(function () {span.remove();});
+ span.id = "new-id2";
+ document.body.appendChild(span);
+
+ assert_equals(elements.namedItem("new-id2"), span);
+ assert_equals(elements["new-id2"], 5);
+
+ delete elements["new-id2"];
+ assert_equals(elements["new-id2"], 5);
+
+ assert_throws(new TypeError(), function() {
+ "use strict";
+ delete elements["new-id2"];
+ });
+ assert_equals(elements["new-id2"], 5);
+}, 'Trying to set a non-configurable expando that shadows a named property that gets added later');
</script>

Powered by Google App Engine
This is Rietveld 408576698