DOMImplementation-createHTMLDocument.html (4002B)
1 <!DOCTYPE html> 2 <meta charset=windows-1252> 3 <!-- Using windows-1252 to ensure that DOMImplementation.createHTMLDocument() 4 doesn't inherit utf-8 from the parent document. --> 5 <title>DOMImplementation.createHTMLDocument</title> 6 <link rel=help href="https://dom.spec.whatwg.org/#dom-domimplementation-createhtmldocument"> 7 <link rel=help href="https://dom.spec.whatwg.org/#dom-documenttype-name"> 8 <link rel=help href="https://dom.spec.whatwg.org/#dom-documenttype-publicid"> 9 <link rel=help href="https://dom.spec.whatwg.org/#dom-documenttype-systemid"> 10 <link rel=help href="https://dom.spec.whatwg.org/#dom-document-documentelement"> 11 <script src="/resources/testharness.js"></script> 12 <script src="/resources/testharnessreport.js"></script> 13 <script src="DOMImplementation-createHTMLDocument.js"></script> 14 <div id="log"></div> 15 <script> 16 createHTMLDocuments(function(doc, expectedtitle, normalizedtitle) { 17 assert_true(doc instanceof Document, "Should be a Document") 18 assert_true(doc instanceof Node, "Should be a Node") 19 assert_equals(doc.childNodes.length, 2, 20 "Document should have two child nodes") 21 22 var doctype = doc.doctype 23 assert_true(doctype instanceof DocumentType, 24 "Doctype should be a DocumentType") 25 assert_true(doctype instanceof Node, "Doctype should be a Node") 26 assert_equals(doctype.name, "html") 27 assert_equals(doctype.publicId, "") 28 assert_equals(doctype.systemId, "") 29 30 var documentElement = doc.documentElement 31 assert_true(documentElement instanceof HTMLHtmlElement, 32 "Document element should be a HTMLHtmlElement") 33 assert_equals(documentElement.childNodes.length, 2, 34 "Document element should have two child nodes") 35 assert_equals(documentElement.localName, "html") 36 assert_equals(documentElement.tagName, "HTML") 37 38 var head = documentElement.firstChild 39 assert_true(head instanceof HTMLHeadElement, 40 "Head should be a HTMLHeadElement") 41 assert_equals(head.localName, "head") 42 assert_equals(head.tagName, "HEAD") 43 44 if (expectedtitle !== undefined) { 45 assert_equals(head.childNodes.length, 1) 46 47 var title = head.firstChild 48 assert_true(title instanceof HTMLTitleElement, 49 "Title should be a HTMLTitleElement") 50 assert_equals(title.localName, "title") 51 assert_equals(title.tagName, "TITLE") 52 assert_equals(title.childNodes.length, 1) 53 assert_equals(title.firstChild.data, expectedtitle) 54 } else { 55 assert_equals(head.childNodes.length, 0) 56 } 57 58 var body = documentElement.lastChild 59 assert_true(body instanceof HTMLBodyElement, 60 "Body should be a HTMLBodyElement") 61 assert_equals(body.localName, "body") 62 assert_equals(body.tagName, "BODY") 63 assert_equals(body.childNodes.length, 0) 64 }) 65 66 test(function() { 67 var doc = document.implementation.createHTMLDocument("test"); 68 assert_equals(doc.URL, "about:blank"); 69 assert_equals(doc.documentURI, "about:blank"); 70 assert_equals(doc.compatMode, "CSS1Compat"); 71 assert_equals(doc.characterSet, "UTF-8"); 72 assert_equals(doc.contentType, "text/html"); 73 assert_equals(doc.createElement("DIV").localName, "div"); 74 }, "createHTMLDocument(): metadata") 75 76 test(function() { 77 var doc = document.implementation.createHTMLDocument("test"); 78 assert_equals(doc.characterSet, "UTF-8", "characterSet"); 79 assert_equals(doc.charset, "UTF-8", "charset"); 80 assert_equals(doc.inputEncoding, "UTF-8", "inputEncoding"); 81 }, "createHTMLDocument(): characterSet aliases") 82 83 test(function() { 84 var doc = document.implementation.createHTMLDocument("test"); 85 var a = doc.createElement("a"); 86 // In UTF-8: 0xC3 0xA4 87 a.href = "http://example.org/?\u00E4"; 88 assert_equals(a.href, "http://example.org/?%C3%A4"); 89 }, "createHTMLDocument(): URL parsing") 90 91 // Test the document location getter is null outside of browser context 92 test(function() { 93 var doc = document.implementation.createHTMLDocument(); 94 assert_equals(doc.location, null); 95 }, "createHTMLDocument(): document location getter is null") 96 </script>