mirror of
https://github.com/servo/servo.git
synced 2025-10-17 00:39:15 +01:00
74 lines
2.6 KiB
HTML
74 lines
2.6 KiB
HTML
<!DOCTYPE html>
|
|
<title>Only certain HTML elements reflect the name content attribute as a property</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<div id="log"></div>
|
|
<script>
|
|
function doesReflect(tagName) {
|
|
var element = document.createElement(tagName);
|
|
element.setAttribute("name", "foo");
|
|
assert_equals(element.getAttribute("name"), "foo", "setAttribute should change content attribute");
|
|
element.name = "bar";
|
|
assert_equals(element.getAttribute("name"), "bar", "assignment to .name should change content attribute");
|
|
}
|
|
|
|
function doesNotReflect(tagName) {
|
|
var element = document.createElement(tagName);
|
|
element.setAttribute("name", "foo");
|
|
assert_equals(element.getAttribute("name"), "foo", "setAttribute should change content attribute");
|
|
element.name = "bar";
|
|
assert_equals(element.getAttribute("name"), "foo", "assignment to .name should not change content attribute");
|
|
}
|
|
|
|
var nonReflectingTagNames = [
|
|
"abbr", "acronym", "address", "area", "article", "aside", "audio",
|
|
"b", "base", "bdi", "bdo", "bgsound", "big", "blink", "blockquote", "body","br",
|
|
"canvas", "caption", "center", "cite", "code", "col", "colgroup",
|
|
"data", "datalist", "dd", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt",
|
|
"em",
|
|
"figcaption", "figure", "font", "footer", "frameset",
|
|
"h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html",
|
|
"i", "ins", "isindex",
|
|
"kbd",
|
|
"label", "legend", "li", "link", "listing",
|
|
"main", "mark", "marquee", "meter", "multicol",
|
|
"nav", "nextid", "nobr", "noframes", "noscript",
|
|
"option",
|
|
"p", "picture", "plaintext", "pre", "progress",
|
|
"q",
|
|
"rp", "rt", "ruby",
|
|
"s", "samp", "script", "section", "small", "source", "spacer",
|
|
"span", "strike", "strong", "style", "sub", "summary", "sup",
|
|
"table", "tbody", "td", "template", "tfoot",
|
|
"th", "thead", "time", "title", "tr", "tt", "track",
|
|
"u", "ul",
|
|
"var", "video",
|
|
"wbr",
|
|
"xmp",
|
|
"unknown"
|
|
];
|
|
|
|
var reflectingTagNames = [
|
|
"a", "button", "embed",
|
|
"fieldset", "form", "frame",
|
|
"iframe", "img", "input",
|
|
"map", "meta",
|
|
"object", "output",
|
|
"param",
|
|
"select", "slot",
|
|
"textarea",
|
|
];
|
|
|
|
reflectingTagNames.forEach(function(tagName) {
|
|
test(function() {
|
|
doesReflect(tagName)
|
|
}, tagName + " element's name property reflects its content attribute");
|
|
});
|
|
|
|
nonReflectingTagNames.forEach(function(tagName) {
|
|
test(function() {
|
|
doesNotReflect(tagName)
|
|
}, tagName + " element's name property does not reflect its content attribute");
|
|
});
|
|
</script>
|
|
|