historical.html (5900B)
1 <!DOCTYPE html> 2 <title>Historical DOM features must be removed</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <div id=log></div> 6 <script> 7 function isInterfaceRemoved(name) { 8 test(function() { 9 assert_false(name in window) 10 assert_equals(window[name], undefined) 11 }, "Historical DOM features must be removed: " + name) 12 } 13 var removedInterfaces = [ 14 "DOMConfiguration", 15 "DOMCursor", 16 "DOMError", 17 "DOMErrorHandler", 18 "DOMImplementationList", 19 "DOMImplementationSource", 20 "DOMLocator", 21 "DOMObject", 22 "DOMRequest", 23 "DOMSettableTokenList", 24 "DOMUserData", 25 "Entity", 26 "EntityReference", 27 "EventException", // DOM Events 28 "NameList", 29 "Notation", 30 "TypeInfo", 31 "UserDataHandler", 32 "RangeException", // DOM Range 33 "SVGPathSegList" 34 ] 35 removedInterfaces.forEach(isInterfaceRemoved) 36 37 function isRemovedFromDocument(name) { 38 test(function() { 39 var doc = document.implementation.createDocument(null,null,null) 40 assert_false(name in document) 41 assert_equals(document[name], undefined) 42 assert_false(name in doc) 43 assert_equals(doc[name], undefined) 44 }, "Historical DOM features must be removed: " + name) 45 } 46 var documentRemoved = [ 47 "createEntityReference", 48 "xmlEncoding", 49 "xmlStandalone", 50 "xmlVersion", 51 "strictErrorChecking", 52 "domConfig", 53 "normalizeDocument", 54 "renameNode", 55 "defaultCharset", 56 "height", 57 "width", 58 // https://github.com/whatwg/html/commit/a64aea7fdb221bba027d95dc3cabda09e0b3e5dc 59 "commands", 60 // https://github.com/whatwg/html/commit/797b4d273955a0fe3cc2e2d0ca5d578f37c0f126 61 "cssElementMap", 62 // https://github.com/whatwg/html/commit/e236f46820b93d6fe2e2caae0363331075c6c4fb 63 "async", 64 // https://github.com/whatwg/dom/pull/815 65 "origin", 66 ] 67 documentRemoved.forEach(isRemovedFromDocument) 68 69 test(function() { 70 // https://github.com/whatwg/html/commit/e236f46820b93d6fe2e2caae0363331075c6c4fb 71 assert_false("load" in document); 72 assert_equals(document["load"], undefined) 73 }, "document.load"); 74 75 test(function() { 76 // https://github.com/whatwg/html/commit/523f7a8773d2ab8a1eb0da6510651e8c5d2a7531 77 var doc = document.implementation.createDocument(null, null, null); 78 assert_false("load" in doc); 79 assert_equals(doc["load"], undefined) 80 }, "XMLDocument.load"); 81 82 test(function() { 83 assert_false("getFeature" in document.implementation) 84 assert_equals(document.implementation["getFeature"], undefined) 85 }, "DOMImplementation.getFeature() must be removed.") 86 87 function isRemovedFromElement(name) { 88 test(function() { 89 var ele = document.createElementNS("test", "test") 90 assert_false(name in document.body) 91 assert_equals(document.body[name], undefined) 92 assert_false(name in ele) 93 assert_equals(ele[name], undefined) 94 }, "Historical DOM features must be removed: " + name) 95 } 96 var elementRemoved = [ 97 "schemaTypeInfo", 98 "setIdAttribute", 99 "setIdAttributeNS", 100 "setIdAttributeNode" 101 ] 102 elementRemoved.forEach(isRemovedFromElement) 103 104 function isRemovedFromAttr(name) { 105 test(function() { 106 var attr = document.createAttribute("test") 107 assert_false(name in attr) 108 assert_equals(attr[name], undefined) 109 }, "Attr member must be removed: " + name) 110 } 111 var attrRemoved = [ 112 "schemaTypeInfo", 113 "isId" 114 ] 115 attrRemoved.forEach(isRemovedFromAttr) 116 117 function isRemovedFromDoctype(name) { 118 test(function() { 119 var doctype = document.implementation.createDocumentType("test", "", "") 120 assert_false(name in doctype) 121 assert_equals(doctype[name], undefined) 122 }, "DocumentType member must be removed: " + name) 123 } 124 var doctypeRemoved = [ 125 "entities", 126 "notations", 127 "internalSubset" 128 ] 129 doctypeRemoved.forEach(isRemovedFromDoctype) 130 131 function isRemovedFromText(name) { 132 test(function() { 133 var text = document.createTextNode("test") 134 assert_false(name in text) 135 assert_equals(text[name], undefined) 136 }, "Text member must be removed: " + name) 137 } 138 var textRemoved = [ 139 "isElementContentWhitespace", 140 "replaceWholeText" 141 ] 142 textRemoved.forEach(isRemovedFromText) 143 144 function isRemovedFromNode(name) { 145 test(function() { 146 var doc = document.implementation.createDocument(null,null,null) 147 var doctype = document.implementation.createDocumentType("test", "", "") 148 var text = document.createTextNode("test") 149 assert_false(name in doc) 150 assert_equals(doc[name], undefined) 151 assert_false(name in doctype) 152 assert_equals(doctype[name], undefined) 153 assert_false(name in text) 154 assert_equals(text[name], undefined) 155 }, "Node member must be removed: " + name) 156 } 157 var nodeRemoved = [ 158 "hasAttributes", 159 "attributes", 160 "namespaceURI", 161 "prefix", 162 "localName", 163 "isSupported", 164 "getFeature", 165 "getUserData", 166 "setUserData", 167 "rootNode", 168 ] 169 nodeRemoved.forEach(isRemovedFromNode) 170 171 function isRemovedFromWindow(name) { 172 test(function() { 173 assert_false(name in window) 174 assert_equals(window[name], undefined) 175 }, "Window member must be removed: " + name) 176 } 177 var windowRemoved = [ 178 "attachEvent", 179 "content", 180 "sidebar", 181 ] 182 windowRemoved.forEach(isRemovedFromWindow) 183 184 function isRemovedFromEvent(name) { 185 test(() => { 186 assert_false(name in Event) 187 assert_equals(Event[name], undefined) 188 }, "Event should not have this constant: " + name) 189 } 190 var EventRemoved = [ 191 "MOUSEDOWN", 192 "MOUSEUP", 193 "MOUSEOVER", 194 "MOUSEOUT", 195 "MOUSEMOVE", 196 "MOUSEDRAG", 197 "CLICK", 198 "DBLCLICK", 199 "KEYDOWN", 200 "KEYUP", 201 "KEYPRESS", 202 "DRAGDROP", 203 "FOCUS", 204 "BLUR", 205 "SELECT", 206 "CHANGE" 207 ] 208 EventRemoved.forEach(isRemovedFromEvent) 209 210 var EventPrototypeRemoved = [ 211 "getPreventDefault", 212 "path" 213 ] 214 EventPrototypeRemoved.forEach(name => { 215 test(() => { 216 assert_false(name in Event.prototype) 217 assert_equals(Event.prototype[name], undefined) 218 assert_false(name in new Event("test")) 219 assert_equals((new Event("test"))[name], undefined) 220 }, "Event.prototype should not have this property: " + name) 221 }) 222 </script>