| <!DOCTYPE html> |
| <title>dataset: should exist and work on HTML and SVG elements, but not random elements</title> |
| <link rel="author" title="Ms2ger" href="mailto:ms2ger@gmail.com"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <div id="log"></div> |
| <script> |
| var div = document.createElement("div"); |
| test(function() { |
| assert_true(div.dataset instanceof DOMStringMap); |
| }, "HTML elements should have a .dataset"); |
| test(function() { |
| assert_false("foo" in div.dataset); |
| assert_equals(div.dataset.foo, undefined); |
| }, "Should return 'undefined' before setting an attribute") |
| test(function() { |
| div.setAttribute("data-foo", "value"); |
| assert_true("foo" in div.dataset); |
| assert_equals(div.dataset.foo, "value"); |
| }, "Should return 'value' if that's the value") |
| test(function() { |
| div.setAttribute("data-foo", ""); |
| assert_true("foo" in div.dataset); |
| assert_equals(div.dataset.foo, ""); |
| }, "Should return the empty string if that's the value") |
| test(function() { |
| div.removeAttribute("data-foo"); |
| assert_false("foo" in div.dataset); |
| assert_equals(div.dataset.foo, undefined); |
| }, "Should return 'undefined' after removing an attribute") |
| test(function() { |
| assert_equals(document.createElementNS("test", "test").dataset, undefined); |
| }, "Should not have a .dataset on random elements"); |
| test(function() { |
| var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg") |
| assert_true(svg.dataset instanceof DOMStringMap); |
| }, "SVG elements should have a .dataset"); |
| </script> |