diff options
Diffstat (limited to 'testing/web-platform/tests/html/dom/elements/global-attributes/dataset-delete.html')
-rw-r--r-- | testing/web-platform/tests/html/dom/elements/global-attributes/dataset-delete.html | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/dom/elements/global-attributes/dataset-delete.html b/testing/web-platform/tests/html/dom/elements/global-attributes/dataset-delete.html new file mode 100644 index 0000000000..1440118f6d --- /dev/null +++ b/testing/web-platform/tests/html/dom/elements/global-attributes/dataset-delete.html @@ -0,0 +1,54 @@ +<!DOCTYPE html> +<html> + <head> + <title>Dataset - Delete</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <h1>Dataset - Delete</h1> + <div id="log"></div> + <script> + function testDelete(attr, prop) + { + var d = document.createElement("div"); + d.setAttribute(attr, "value"); + delete d.dataset[prop]; + return d.hasAttribute(attr) === false && d.getAttribute(attr) != "value"; + } + + function testDeleteNoAdd(prop) + { + var d = document.createElement("div"); + delete d.dataset[prop]; + return true; + } + + test(function() { assert_true(testDelete('data-foo', 'foo')); }, + "Deleting element.dataset['foo'] should also remove an attribute with name 'data-foo' should it exist."); + test(function() { assert_true(testDelete('data-foo-bar', 'fooBar')); }, + "Deleting element.dataset['fooBar'] should also remove an attribute with name 'data-foo-bar' should it exist."); + test(function() { assert_true(testDelete('data--', '-')); }, + "Deleting element.dataset['-'] should also remove an attribute with name 'data--' should it exist."); + test(function() { assert_true(testDelete('data--foo', 'Foo')); }, + "Deleting element.dataset['Foo'] should also remove an attribute with name 'data--foo' should it exist."); + test(function() { + var d = document.createElement("div"); + d.setAttribute('data--foo', "value"); + assert_equals(d.dataset['-foo'], undefined); + assert_false('-foo' in d.dataset); + delete d.dataset['-foo']; + assert_true(d.hasAttribute('data--foo')); + assert_equals(d.getAttribute('data--foo'), "value"); + }, "Deleting element.dataset['-foo'] should not remove an attribute with name 'data--foo' should it exist."); + test(function() { assert_true(testDelete('data---foo', '-Foo')); }, + "Deleting element.dataset['-Foo'] should also remove an attribute with name 'data---foo' should it exist."); + test(function() { assert_true(testDelete('data-', '')); }, + "Deleting element.dataset[''] should also remove an attribute with name 'data-' should it exist."); + test(function() { assert_true(testDelete('data-\xE0', '\xE0')); }, + "Deleting element.dataset['\xE0'] should also remove an attribute with name 'data-\xE0' should it exist."); + test(function() { assert_true(testDeleteNoAdd('foo')); }, + "Deleting element.dataset['foo'] should not throw if even if the element does now have an attribute with the name data-foo."); + </script> + </body> +</html> |