| <!doctype html> |
| <html> |
| <head> |
| <title>HTML details element API</title> |
| <style>#one, #two { visibility: hidden; }</style> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <div id="log"></div> |
| |
| <!-- Used in parsing tests --> |
| <div id='one'><details></details><details></details></div> |
| <div id='two'><p><details></details></div> |
| |
| <script type="text/javascript"> |
| |
| function makeDetails () { |
| return document.createElement('details'); |
| } |
| |
| |
| // <details> |
| test(function () { |
| var times = document.getElementById('one').getElementsByTagName('details'); |
| assert_equals( times.length, 2 ); |
| }, 'HTML parsing should locate 2 details elements in this document'); |
| |
| test(function () { |
| assert_equals( document.getElementById('two').getElementsByTagName('p')[0].innerHTML, '' ); |
| }, 'HTML parsing should close an unclosed <p> before <details>'); |
| |
| test(function () { |
| assert_true( !!window.HTMLDetailsElement ); |
| }, 'HTMLDetailsElement should be exposed for prototyping'); |
| |
| test(function () { |
| assert_true( makeDetails() instanceof window.HTMLDetailsElement); |
| }, 'a dynamically created details element should be instanceof HTMLDetailsElement'); |
| |
| test(function () { |
| assert_true( document.getElementById('one').getElementsByTagName('details')[0] instanceof window.HTMLDetailsElement); |
| }, 'a details element from the parser should be instanceof HTMLDetailsElement'); |
| </script> |
| |
| </body> |
| </html> |