| <!DOCTYPE html> |
| <title>Historical DOM features must be removed</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <div id=log></div> |
| <script> |
| function isInterfaceRemoved(name) { |
| test(function() { |
| assert_equals(window[name], undefined) |
| }, "Historical DOM features must be removed: " + name) |
| } |
| var removedInterfaces = [ |
| "DOMConfiguration", |
| "DOMCursor", |
| "DOMError", |
| "DOMErrorHandler", |
| "DOMImplementationList", |
| "DOMImplementationSource", |
| "DOMLocator", |
| "DOMObject", |
| "DOMRequest", |
| "DOMSettableTokenList", |
| "DOMUserData", |
| "Entity", |
| "EntityReference", |
| "EventException", // DOM Events |
| "NameList", |
| "Notation", |
| "TypeInfo", |
| "UserDataHandler", |
| "RangeException" // DOM Range |
| ] |
| removedInterfaces.forEach(isInterfaceRemoved) |
| |
| function isRemovedFromDocument(name) { |
| test(function() { |
| var doc = document.implementation.createDocument(null,null,null) |
| assert_equals(document[name], undefined) |
| assert_equals(doc[name], undefined) |
| }, "Historical DOM features must be removed: " + name) |
| } |
| var documentRemoved = [ |
| "createEntityReference", |
| "xmlEncoding", |
| "xmlStandalone", |
| "xmlVersion", |
| "strictErrorChecking", |
| "domConfig", |
| "normalizeDocument", |
| "renameNode", |
| "defaultCharset", |
| "height", |
| "width", |
| // https://github.com/whatwg/html/commit/a64aea7fdb221bba027d95dc3cabda09e0b3e5dc |
| "commands", |
| // https://github.com/whatwg/html/commit/797b4d273955a0fe3cc2e2d0ca5d578f37c0f126 |
| "cssElementMap", |
| // https://github.com/whatwg/html/commit/e236f46820b93d6fe2e2caae0363331075c6c4fb |
| "async", |
| // https://github.com/whatwg/dom/pull/815 |
| "origin", |
| ] |
| documentRemoved.forEach(isRemovedFromDocument) |
| |
| test(function() { |
| // https://github.com/whatwg/html/commit/e236f46820b93d6fe2e2caae0363331075c6c4fb |
| assert_false("load" in document); |
| }, "document.load"); |
| |
| test(function() { |
| // https://github.com/whatwg/html/commit/523f7a8773d2ab8a1eb0da6510651e8c5d2a7531 |
| var doc = document.implementation.createDocument(null, null, null); |
| assert_false("load" in doc); |
| }, "XMLDocument.load"); |
| |
| test(function() { |
| assert_equals(document.implementation["getFeature"], undefined) |
| }, "DOMImplementation.getFeature() must be removed.") |
| |
| function isRemovedFromElement(name) { |
| test(function() { |
| var ele = document.createElementNS("test", "test") |
| assert_equals(document.body[name], undefined) |
| assert_equals(ele[name], undefined) |
| }, "Historical DOM features must be removed: " + name) |
| } |
| var elementRemoved = [ |
| "schemaTypeInfo", |
| "setIdAttribute", |
| "setIdAttributeNS", |
| "setIdAttributeNode" |
| ] |
| elementRemoved.forEach(isRemovedFromElement) |
| |
| function isRemovedFromAttr(name) { |
| test(function() { |
| var attr = document.createAttribute("test") |
| assert_equals(attr[name], undefined) |
| }, "Attr member must be removed: " + name) |
| } |
| var attrRemoved = [ |
| "schemaTypeInfo", |
| "isId" |
| ] |
| attrRemoved.forEach(isRemovedFromAttr) |
| |
| function isRemovedFromDoctype(name) { |
| test(function() { |
| var doctype = document.implementation.createDocumentType("test", "", "") |
| assert_equals(doctype[name], undefined) |
| }, "DocumentType member must be removed: " + name) |
| } |
| var doctypeRemoved = [ |
| "entities", |
| "notations", |
| "internalSubset" |
| ] |
| doctypeRemoved.forEach(isRemovedFromDoctype) |
| |
| function isRemovedFromText(name) { |
| test(function() { |
| var text = document.createTextNode("test") |
| assert_equals(text[name], undefined) |
| }, "Text member must be removed: " + name) |
| } |
| var textRemoved = [ |
| "isElementContentWhitespace", |
| "replaceWholeText" |
| ] |
| textRemoved.forEach(isRemovedFromText) |
| |
| function isRemovedFromNode(name) { |
| test(function() { |
| var doc = document.implementation.createDocument(null,null,null) |
| var doctype = document.implementation.createDocumentType("test", "", "") |
| var text = document.createTextNode("test") |
| assert_equals(doc[name], undefined) |
| assert_equals(doctype[name], undefined) |
| assert_equals(text[name], undefined) |
| }, "Node member must be removed: " + name) |
| } |
| var nodeRemoved = [ |
| "hasAttributes", |
| "attributes", |
| "namespaceURI", |
| "prefix", |
| "localName", |
| "isSupported", |
| "getFeature", |
| "getUserData", |
| "setUserData", |
| "rootNode", |
| ] |
| nodeRemoved.forEach(isRemovedFromNode) |
| |
| function isRemovedFromWindow(name) { |
| test(function() { |
| assert_equals(window[name], undefined) |
| }, "Window member must be removed: " + name) |
| } |
| var windowRemoved = [ |
| "attachEvent" |
| ] |
| windowRemoved.forEach(isRemovedFromWindow) |
| |
| function isRemovedFromEvent(name) { |
| test(() => { |
| assert_equals(Event[name], undefined) |
| }, "Event should not have this constant: " + name) |
| } |
| var EventRemoved = [ |
| "MOUSEDOWN", |
| "MOUSEUP", |
| "MOUSEOVER", |
| "MOUSEOUT", |
| "MOUSEMOVE", |
| "MOUSEDRAG", |
| "CLICK", |
| "DBLCLICK", |
| "KEYDOWN", |
| "KEYUP", |
| "KEYPRESS", |
| "DRAGDROP", |
| "FOCUS", |
| "BLUR", |
| "SELECT", |
| "CHANGE" |
| ] |
| EventRemoved.forEach(isRemovedFromEvent) |
| |
| var EventPrototypeRemoved = [ |
| "getPreventDefault", |
| ] |
| EventPrototypeRemoved.forEach(name => { |
| test(() => { |
| assert_equals(Event.prototype[name], undefined) |
| assert_equals((new Event("test"))[name], undefined) |
| }, "Event.prototype should not have this property: " + name) |
| }) |
| </script> |