| <!doctype html> | |
| <title>DOMParser basic test of HTML parsing</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script> | |
| // |expected| should be an object indicating the expected type of node. | |
| function assert_node(actual, expected) { | |
| assert_true(actual instanceof expected.type, | |
| 'Node type mismatch: actual = ' + actual.nodeType + ', expected = ' + expected.nodeType); | |
| if (typeof(expected.id) !== 'undefined') | |
| assert_equals(actual.id, expected.id, expected.idMessage); | |
| if (typeof(expected.nodeValue) !== 'undefined') | |
| assert_equals(actual.nodeValue, expected.nodeValue, expected.nodeValueMessage); | |
| } | |
| var doc; | |
| setup(function() { | |
| var parser = new DOMParser(); | |
| var input = '<html id="root"><head></head><body></body></html>'; | |
| doc = parser.parseFromString(input, 'text/html'); | |
| }); | |
| test(function() { | |
| var root = doc.documentElement; | |
| assert_node(root, { type: HTMLHtmlElement, id: 'root', | |
| idMessage: 'documentElement id attribute should be root.' }); | |
| }, 'Parsing of id attribute'); | |
| test(function() { | |
| assert_equals(doc.contentType, "text/html") | |
| }, 'contentType'); | |
| test(function() { | |
| assert_equals(doc.characterSet, "UTF-8") | |
| }, 'characterSet'); | |
| test(function() { | |
| assert_equals(doc.inputEncoding, "UTF-8") | |
| }, 'inputEncoding'); | |
| test(function() { | |
| assert_equals(doc.charset, "UTF-8") | |
| }, 'charset'); | |
| test(function() { | |
| var url = document.URL; | |
| assert_equals(doc.documentURI, url, | |
| 'The document must have a URL value equal to the URL of the active document.'); | |
| assert_equals(doc.URL, url, | |
| 'The document must have a URL value equal to the URL of the active document.'); | |
| }, 'URL value'); | |
| test(function() { | |
| assert_equals(doc.location, null, | |
| 'The document must have a location value of null.'); | |
| }, 'Location value'); | |
| test(function() { | |
| var soup = "<!DOCTYPE foo></><foo></multiple></>"; | |
| var htmldoc = new DOMParser().parseFromString(soup, "text/html"); | |
| assert_equals(htmldoc.documentElement.localName, "html"); | |
| assert_equals(htmldoc.documentElement.namespaceURI, "http://www.w3.org/1999/xhtml"); | |
| }, "DOMParser parses HTML tag soup with no problems"); | |
| </script> |