<!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.baseURI, document.URL); }, 'baseURI 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"); test(function() { assert_throws(new TypeError(), function() { new DOMParser().parseFromString("", "text/foo-this-is-invalid"); }) }, "DOMParser throws on an invalid enum value") </script>