blob: 8a71e364e5ef30a0f9d9621d3eb018a34d42ae4c [file] [log] [blame]
<!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>