| <!DOCTYPE HTML> | |
| <meta charset=utf-8> | |
| <title>DOMStringMap Test: Supported property names</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <div id="log"></div> | |
| <div id="edge1" data-="012">Simple</div> | |
| <div id="edge2" data-id-="012">Simple</div> | |
| <div id="user" data-id="1234567890" data-user="johndoe" data-date-of-birth> | |
| John Doe | |
| </div> | |
| <div id="user2" data-unique-id="1234567890"> Jane Doe </div> | |
| <div id="user3" data-unique-id="4324324241"> Jim Doe </div> | |
| <script> | |
| test(function() { | |
| var element = document.querySelector('#edge1'); | |
| assert_array_equals(Object.getOwnPropertyNames(element.dataset), | |
| [""]); | |
| }, "Object.getOwnPropertyNames on DOMStringMap, empty data attribute"); | |
| test(function() { | |
| var element = document.querySelector('#edge2'); | |
| assert_array_equals(Object.getOwnPropertyNames(element.dataset), | |
| ["id-"]); | |
| }, "Object.getOwnPropertyNames on DOMStringMap, data attribute trailing hyphen"); | |
| test(function() { | |
| var element = document.querySelector('#user'); | |
| assert_array_equals(Object.getOwnPropertyNames(element.dataset), | |
| ['id', 'user', 'dateOfBirth']); | |
| }, "Object.getOwnPropertyNames on DOMStringMap, multiple data attributes"); | |
| test(function() { | |
| var element = document.querySelector('#user2'); | |
| element.dataset.middleName = "mark"; | |
| assert_array_equals(Object.getOwnPropertyNames(element.dataset), | |
| ['uniqueId', 'middleName']); | |
| }, "Object.getOwnPropertyNames on DOMStringMap, attribute set on dataset in JS"); | |
| test(function() { | |
| var element = document.querySelector('#user3'); | |
| element.setAttribute("data-age", 30); | |
| assert_array_equals(Object.getOwnPropertyNames(element.dataset), | |
| ['uniqueId', 'age']); | |
| }, "Object.getOwnPropertyNames on DOMStringMap, attribute set on element in JS"); | |
| </script> |