<!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 isInterfaceNuked(name) { test(function() { assert_equals(window[name], undefined) }, "Historical DOM features must be removed: " + name) } var nukedInterfaces = [ "DOMConfiguration", "DOMError", "DOMErrorHandler", "DOMImplementationList", "DOMImplementationSource", "DOMLocator", "DOMObject", "DOMSettableTokenList", "DOMUserData", "Entity", "EntityReference", "EventException", // DOM Events "NameList", "Notation", "TypeInfo", "UserDataHandler", "RangeException" // DOM Range ] nukedInterfaces.forEach(isInterfaceNuked) function isNukedFromDocument(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 documentNuked = [ "createEntityReference", "xmlEncoding", "xmlStandalone", "xmlVersion", "strictErrorChecking", "domConfig", "normalizeDocument", "renameNode", "defaultCharset", "height", "width" ] documentNuked.forEach(isNukedFromDocument) test(function() { assert_equals(document.implementation["getFeature"], undefined) }, "DOMImplementation.getFeature() must be nuked.") function isNukedFromElement(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 elementNuked = [ "schemaTypeInfo", "setIdAttribute", "setIdAttributeNS", "setIdAttributeNode" ] elementNuked.forEach(isNukedFromElement) function isNukedFromDoctype(name) { test(function() { var doctype = document.implementation.createDocumentType("test", "", "") assert_equals(doctype[name], undefined) }, "DocumentType member must be nuked: " + name) } var doctypeNuked = [ "entities", "notations", "internalSubset" ] doctypeNuked.forEach(isNukedFromDoctype) function isNukedFromText(name) { test(function() { var text = document.createTextNode("test") assert_equals(text[name], undefined) }, "Text member must be nuked: " + name) } var textNuked = [ "isElementContentWhitespace", "replaceWholeText" ] textNuked.forEach(isNukedFromText) function isNukedFromNode(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 nuked: " + name) } var nodeNuked = [ "hasAttributes", "attributes", "namespaceURI", "prefix", "localName", "isSupported", "getFeature", "getUserData", "setUserData", "rootNode", ] nodeNuked.forEach(isNukedFromNode) function isNukedFromWindow(name) { test(function() { assert_equals(window[name], undefined) }, "Window member must be nuked: " + name) } var windowNuked = [ "attachEvent" ] windowNuked.forEach(isNukedFromWindow) </script>