| <!DOCTYPE html> |
| <meta charset=windows-1252> |
| <!-- Using windows-1252 to ensure that DOMImplementation.createHTMLDocument() |
| doesn't inherit utf-8 from the parent document. --> |
| <title>DOMImplementation.createHTMLDocument</title> |
| <link rel=help href="https://dom.spec.whatwg.org/#dom-domimplementation-createhtmldocument"> |
| <link rel=help href="https://dom.spec.whatwg.org/#dom-documenttype-name"> |
| <link rel=help href="https://dom.spec.whatwg.org/#dom-documenttype-publicid"> |
| <link rel=help href="https://dom.spec.whatwg.org/#dom-documenttype-systemid"> |
| <link rel=help href="https://dom.spec.whatwg.org/#dom-document-documentelement"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="DOMImplementation-createHTMLDocument.js"></script> |
| <div id="log"></div> |
| <script> |
| createHTMLDocuments(function(doc, expectedtitle, normalizedtitle) { |
| assert_true(doc instanceof Document, "Should be a Document") |
| assert_true(doc instanceof Node, "Should be a Node") |
| assert_equals(doc.childNodes.length, 2, |
| "Document should have two child nodes") |
| |
| var doctype = doc.doctype |
| assert_true(doctype instanceof DocumentType, |
| "Doctype should be a DocumentType") |
| assert_true(doctype instanceof Node, "Doctype should be a Node") |
| assert_equals(doctype.name, "html") |
| assert_equals(doctype.publicId, "") |
| assert_equals(doctype.systemId, "") |
| |
| var documentElement = doc.documentElement |
| assert_true(documentElement instanceof HTMLHtmlElement, |
| "Document element should be a HTMLHtmlElement") |
| assert_equals(documentElement.childNodes.length, 2, |
| "Document element should have two child nodes") |
| assert_equals(documentElement.localName, "html") |
| assert_equals(documentElement.tagName, "HTML") |
| |
| var head = documentElement.firstChild |
| assert_true(head instanceof HTMLHeadElement, |
| "Head should be a HTMLHeadElement") |
| assert_equals(head.localName, "head") |
| assert_equals(head.tagName, "HEAD") |
| |
| if (expectedtitle !== undefined) { |
| assert_equals(head.childNodes.length, 1) |
| |
| var title = head.firstChild |
| assert_true(title instanceof HTMLTitleElement, |
| "Title should be a HTMLTitleElement") |
| assert_equals(title.localName, "title") |
| assert_equals(title.tagName, "TITLE") |
| assert_equals(title.childNodes.length, 1) |
| assert_equals(title.firstChild.data, expectedtitle) |
| } else { |
| assert_equals(head.childNodes.length, 0) |
| } |
| |
| var body = documentElement.lastChild |
| assert_true(body instanceof HTMLBodyElement, |
| "Body should be a HTMLBodyElement") |
| assert_equals(body.localName, "body") |
| assert_equals(body.tagName, "BODY") |
| assert_equals(body.childNodes.length, 0) |
| }) |
| |
| test(function() { |
| var doc = document.implementation.createHTMLDocument("test"); |
| assert_equals(doc.URL, "about:blank"); |
| assert_equals(doc.documentURI, "about:blank"); |
| assert_equals(doc.compatMode, "CSS1Compat"); |
| assert_equals(doc.characterSet, "UTF-8"); |
| assert_equals(doc.contentType, "text/html"); |
| assert_equals(doc.createElement("DIV").localName, "div"); |
| }, "createHTMLDocument(): metadata") |
| |
| test(function() { |
| var doc = document.implementation.createHTMLDocument("test"); |
| assert_equals(doc.characterSet, "UTF-8", "characterSet"); |
| assert_equals(doc.charset, "UTF-8", "charset"); |
| assert_equals(doc.inputEncoding, "UTF-8", "inputEncoding"); |
| }, "createHTMLDocument(): characterSet aliases") |
| |
| test(function() { |
| var doc = document.implementation.createHTMLDocument("test"); |
| var a = doc.createElement("a"); |
| // In UTF-8: 0xC3 0xA4 |
| a.href = "http://example.org/?\u00E4"; |
| assert_equals(a.href, "http://example.org/?%C3%A4"); |
| }, "createHTMLDocument(): URL parsing") |
| </script> |