haikuwebkit/LayoutTests/fast/dom/URL-attribute-reflection.html

80 lines
2.9 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<script>
description("Test reflecting URL attributes with empty string values.");
function testURLReflection(attributeName, tag, scriptAttributeName)
{
if (!scriptAttributeName)
scriptAttributeName = attributeName.toLowerCase();
var element;
if (tag === "html")
element = document.documentElement;
else {
element = document.createElement(tag);
document.body.appendChild(element);
}
element.setAttribute(scriptAttributeName, "x");
var xValue = element[attributeName];
element.setAttribute(scriptAttributeName, "");
var emptyValue = element[attributeName];
if (tag !== "html")
document.body.removeChild(element);
if (xValue === undefined)
return "none";
if (xValue === "x")
return "non-URL";
if (xValue !== document.baseURI.replace(/[^\/]+$/, "x"))
return "error (x): " + xValue;
if (emptyValue === "")
return "non-empty URL";
if (emptyValue === document.baseURI)
return "URL";
return "error (empty): " + emptyValue;
}
shouldBe("testURLReflection('attribute', 'element')", "'none'");
shouldBe("testURLReflection('id', 'element')", "'non-URL'");
// The following list comes from the HTML5 documents attributes index.
// These are the URL attributes from that list.
shouldBe("testURLReflection('action', 'form')", "'URL'");
shouldBe("testURLReflection('cite', 'blockquote')", "'URL'");
shouldBe("testURLReflection('cite', 'del')", "'URL'");
shouldBe("testURLReflection('cite', 'ins')", "'URL'");
shouldBe("testURLReflection('cite', 'q')", "'URL'");
shouldBe("testURLReflection('data', 'object')", "'URL'");
shouldBe("testURLReflection('formaction', 'button')", "'URL'");
shouldBe("testURLReflection('formaction', 'input')", "'URL'");
shouldBe("testURLReflection('href', 'a')", "'URL'");
shouldBe("testURLReflection('href', 'area')", "'URL'");
shouldBe("testURLReflection('href', 'link')", "'URL'");
shouldBe("testURLReflection('href', 'base')", "'URL'");
shouldBe("testURLReflection('icon', 'command')", "'URL'");
shouldBe("testURLReflection('manifest', 'html')", "'URL'");
shouldBe("testURLReflection('poster', 'video')", "'URL'");
shouldBe("testURLReflection('src', 'audio')", "'URL'");
shouldBe("testURLReflection('src', 'embed')", "'URL'");
shouldBe("testURLReflection('src', 'iframe')", "'URL'");
shouldBe("testURLReflection('src', 'img')", "'URL'");
shouldBe("testURLReflection('src', 'input')", "'URL'");
shouldBe("testURLReflection('src', 'script')", "'URL'");
shouldBe("testURLReflection('src', 'source')", "'URL'");
shouldBe("testURLReflection('src', 'video')", "'URL'");
// Other reflected URL attributes.
shouldBe("testURLReflection('longDesc', 'img')", "'URL'");
shouldBe("testURLReflection('lowsrc', 'img')", "'URL'");
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>