<!DOCTYPE html>
<html>
<body>
<script src="../../resources/js-test-pre.js"></script>
<script>
description("Test support for DOMTokenList.supports()");

shouldBeType("DOMTokenList.prototype.supports", "Function");

debug("");
debug("* HTMLLinkElement.relList");
var link = document.createElement("link");
shouldBe("link.relList.__proto__", "DOMTokenList.prototype");
var linkRelSupportedValues = ["alternate", "dns-prefetch", "icon", "stylesheet"];
for (var i = 0; i < linkRelSupportedValues.length; i++) {
    shouldBeTrue("link.relList.supports('" + linkRelSupportedValues[i] + "')");
    shouldBeTrue("link.relList.supports('" + linkRelSupportedValues[i].toUpperCase() + "')");
}
shouldBeFalse("link.relList.supports('unsupported')");

debug("");
debug("* HTMLAnchorElement.relList");
var anchor = document.createElement("a");
shouldBe("anchor.relList.__proto__", "DOMTokenList.prototype");
var anchorRelSupportedValues = ["noreferrer", "noopener", "opener"];
for (var i = 0; i < anchorRelSupportedValues.length; i++) {
    shouldBeTrue("anchor.relList.supports('" + anchorRelSupportedValues[i] + "')");
    shouldBeTrue("anchor.relList.supports('" + anchorRelSupportedValues[i].toUpperCase() + "')");
}
shouldBeFalse("anchor.relList.supports('unsupported')");

debug("");
debug("* HTMLAreaElement.relList");
var area = document.createElement("area");
shouldBe("area.relList.__proto__", "DOMTokenList.prototype");
var areaRelSupportedValues = ["noreferrer", "noopener"];
for (var i = 0; i < areaRelSupportedValues.length; i++) {
    shouldBeTrue("area.relList.supports('" + areaRelSupportedValues[i] + "')");
    shouldBeTrue("area.relList.supports('" + areaRelSupportedValues[i].toUpperCase() + "')");
}
shouldBeFalse("area.relList.supports('unsupported')");

debug("");
debug("* HTMLIFrameElement.sandbox");
var iframe = document.createElement("iframe");
shouldBe("iframe.sandbox.__proto__", "DOMTokenList.prototype");
var iframeSandboxSupportedValues = ["allow-forms", "allow-same-origin", "allow-scripts", "allow-top-navigation", "allow-pointer-lock", "allow-popups"];
for (var i = 0; i < iframeSandboxSupportedValues.length; i++) {
    shouldBeTrue("iframe.sandbox.supports('" + iframeSandboxSupportedValues[i] + "')");
    shouldBeTrue("iframe.sandbox.supports('" + iframeSandboxSupportedValues[i].toUpperCase() + "')");
}
shouldBeFalse("iframe.sandbox.supports('unsupported')");

debug("");
debug("* HTMLLinkElement.sizes");
shouldBe("link.sizes.__proto__", "DOMTokenList.prototype");
shouldThrowErrorName("link.sizes.supports('token')", "TypeError");

debug("");
debug("* HTMLOutputElement.htmlFor");
var output = document.createElement("output");
shouldBe("output.htmlFor.__proto__", "DOMTokenList.prototype");
shouldThrowErrorName("output.htmlFor.supports('token')", "TypeError");

debug("");
debug("* HTMLElement.dropzone");
if (link.dropzone) {
    shouldBe("link.dropzone.__proto__", "DOMTokenList.prototype");
    var dropzoneSupportedValues = ["copy", "move", "link"];
    for (var i = 0; i < dropzoneSupportedValues.length; i++) {
        shouldBeTrue("link.dropzone.supports('" + dropzoneSupportedValues[i] + "')");
        shouldBeTrue("link.dropzone.supports('" + dropzoneSupportedValues[i].toUpperCase() + "')");
    }
    shouldBeFalse("link.dropzone.supports('unsupported')");
} else
    testFailed("HTMLElement.dropzone is not supported.");

debug("");
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
