| <!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 = [ |
| "CDATASection", |
| "DOMConfiguration", |
| "DOMError", |
| "DOMErrorHandler", |
| "DOMImplementationList", |
| "DOMImplementationSource", |
| "DOMLocator", |
| "DOMObject", |
| "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 = [ |
| "createCDATASection", |
| "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" |
| ] |
| 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> |