var sectionElements = {
body: {
// Obsolete
text: {type: "string", treatNullAsEmptyString: true},
link: {type: "string", treatNullAsEmptyString: true},
vLink: {type: "string", treatNullAsEmptyString: true},
aLink: {type: "string", treatNullAsEmptyString: true},
bgColor: {type: "string", treatNullAsEmptyString: true},
background: "string",
},
article: {},
section: {},
nav: {},
aside: {},
h1: {
// Obsolete
align: "string",
},
h2: {
// Obsolete
align: "string",
},
h3: {
// Obsolete
align: "string",
},
h4: {
// Obsolete
align: "string",
},
h5: {
// Obsolete
align: "string",
},
h6: {
// Obsolete
align: "string",
},
hgroup: {},
header: {},
footer: {},
address: {},
};
mergeElements(sectionElements);
extraTests.push(function() {
ReflectionTests.reflects({type: "enum", keywords: ["ltr", "rtl", "auto"]}, "dir", document, "dir", document.documentElement);
// TODO: these behave differently if the body element is a frameset. Also
// should probably test with multiple bodies.
ReflectionTests.reflects({type: "string", treatNullAsEmptyString: true}, "fgColor", document, "text", document.body);
ReflectionTests.reflects({type: "string", treatNullAsEmptyString: true}, "linkColor", document, "link", document.body);
ReflectionTests.reflects({type: "string", treatNullAsEmptyString: true}, "vlinkColor", document, "vlink", document.body);
ReflectionTests.reflects({type: "string", treatNullAsEmptyString: true}, "alinkColor", document, "alink", document.body);
ReflectionTests.reflects({type: "string", treatNullAsEmptyString: true}, "bgColor", document, "bgcolor", document.body);
// Edge remains RTL if we don't do this, despite removing the attribute
document.dir = "ltr";
// Don't mess up the colors :)
document.documentElement.removeAttribute("dir");
var attrs = ["text", "bgcolor", "link", "alink", "vlink"];
for (var i = 0; i < attrs.length; i++) {
document.body.removeAttribute(attrs[i]);
}
});