domstringmap-supported-property-names.html (1867B)
1 <!DOCTYPE HTML> 2 <meta charset=utf-8> 3 <title>DOMStringMap Test: Supported property names</title> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <div id="log"></div> 7 8 <div id="edge1" data-="012">Simple</div> 9 10 <div id="edge2" data-id-="012">Simple</div> 11 12 <div id="user" data-id="1234567890" data-user="johndoe" data-date-of-birth> 13 John Doe 14 </div> 15 16 <div id="user2" data-unique-id="1234567890"> Jane Doe </div> 17 18 <div id="user3" data-unique-id="4324324241"> Jim Doe </div> 19 20 <script> 21 22 test(function() { 23 var element = document.querySelector('#edge1'); 24 assert_array_equals(Object.getOwnPropertyNames(element.dataset), 25 [""]); 26 }, "Object.getOwnPropertyNames on DOMStringMap, empty data attribute"); 27 28 test(function() { 29 var element = document.querySelector('#edge2'); 30 assert_array_equals(Object.getOwnPropertyNames(element.dataset), 31 ["id-"]); 32 }, "Object.getOwnPropertyNames on DOMStringMap, data attribute trailing hyphen"); 33 34 test(function() { 35 var element = document.querySelector('#user'); 36 assert_array_equals(Object.getOwnPropertyNames(element.dataset), 37 ['id', 'user', 'dateOfBirth']); 38 }, "Object.getOwnPropertyNames on DOMStringMap, multiple data attributes"); 39 40 test(function() { 41 var element = document.querySelector('#user2'); 42 element.dataset.middleName = "mark"; 43 assert_array_equals(Object.getOwnPropertyNames(element.dataset), 44 ['uniqueId', 'middleName']); 45 }, "Object.getOwnPropertyNames on DOMStringMap, attribute set on dataset in JS"); 46 47 test(function() { 48 var element = document.querySelector('#user3'); 49 element.setAttribute("data-age", 30); 50 assert_array_equals(Object.getOwnPropertyNames(element.dataset), 51 ['uniqueId', 'age']); 52 }, "Object.getOwnPropertyNames on DOMStringMap, attribute set on element in JS"); 53 54 </script>