summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/dom/elements/global-attributes/dataset-binding.window.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/dom/elements/global-attributes/dataset-binding.window.js')
-rw-r--r--testing/web-platform/tests/html/dom/elements/global-attributes/dataset-binding.window.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/dom/elements/global-attributes/dataset-binding.window.js b/testing/web-platform/tests/html/dom/elements/global-attributes/dataset-binding.window.js
new file mode 100644
index 0000000000..e0e85677d1
--- /dev/null
+++ b/testing/web-platform/tests/html/dom/elements/global-attributes/dataset-binding.window.js
@@ -0,0 +1,45 @@
+[9, "x"].forEach(function(key) {
+ test(function() {
+ var element = document.createElement("div");
+ var dataset = element.dataset;
+
+ var value = "value for " + this.name;
+
+ assert_equals(dataset[key], undefined);
+
+ element.setAttribute("data-" + key, value);
+ assert_equals(element.getAttribute("data-" + key), value);
+ assert_equals(dataset[key], value);
+
+ var propdesc = Object.getOwnPropertyDescriptor(dataset, key);
+ assert_not_equals(propdesc, undefined);
+ assert_equals(propdesc.value, value);
+ assert_true(propdesc.writable);
+ assert_true(propdesc.enumerable);
+ assert_true(propdesc.configurable);
+ }, "Getting property descriptor for key " + key);
+
+ test(function() {
+ var element = document.createElement("div");
+ var dataset = element.dataset;
+
+ var proto = "proto getter for " + this.name;
+ var calledSetter = [];
+ Object.defineProperty(DOMStringMap.prototype, key, {
+ "get": function() { return proto; },
+ "set": this.unreached_func("Should not call [[Set]] on prototype"),
+ "configurable": true,
+ });
+ this.add_cleanup(function() {
+ delete DOMStringMap.prototype[key];
+ });
+
+ var value = "value for " + this.name;
+
+ assert_equals(dataset[key], proto);
+ assert_equals(element.getAttribute("data-" + key), null);
+ assert_equals(dataset[key] = value, value);
+ assert_equals(dataset[key], value);
+ assert_equals(element.getAttribute("data-" + key), value);
+ }, "Setting property for key " + key + " with accessor property on prototype");
+});