2007-03-25 22:54:44 -07:00
|
|
|
<!DOCTYPE HTML>
|
|
|
|
<html>
|
|
|
|
<!--
|
|
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=375363
|
|
|
|
-->
|
|
|
|
<head>
|
|
|
|
<title>Test for parsing, storage, and serialization of CSS '-moz-initial'</title>
|
|
|
|
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
|
|
|
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
2007-04-15 15:28:07 -07:00
|
|
|
<script type="text/javascript" src="property_database.js"></script>
|
2007-03-25 22:54:44 -07:00
|
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=375363">Mozilla Bug 375363</a>
|
|
|
|
<p id="display"></p>
|
|
|
|
<div id="content" style="display: none">
|
|
|
|
|
|
|
|
<div id="testnode"></div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
<pre id="test">
|
|
|
|
<script class="testbody" type="text/javascript">
|
|
|
|
|
|
|
|
/** Test for parsing, storage, and serialization of CSS '-moz-initial' **/
|
|
|
|
|
|
|
|
var gDeclaration = document.getElementById("testnode").style;
|
|
|
|
|
2007-04-15 15:28:07 -07:00
|
|
|
var gKnownFails = {
|
|
|
|
/* bug 377519: */
|
|
|
|
"-moz-border-radius": true,
|
|
|
|
"-moz-outline-radius": true,
|
|
|
|
"background": true,
|
|
|
|
"border": true,
|
|
|
|
"border-bottom": true,
|
|
|
|
"border-color": true,
|
|
|
|
"border-left": true,
|
|
|
|
"border-right": true,
|
|
|
|
"border-style": true,
|
|
|
|
"border-top": true,
|
|
|
|
"border-width": true,
|
|
|
|
"cue": true,
|
|
|
|
"font": true,
|
|
|
|
"list-style": true,
|
|
|
|
"margin": true,
|
|
|
|
"outline": true,
|
|
|
|
"padding": true,
|
|
|
|
"pause": true
|
2007-04-16 20:50:30 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
var gKnownFails2 = {
|
|
|
|
"-moz-border-radius": true,
|
|
|
|
"-moz-outline-radius": true,
|
|
|
|
"background": true,
|
|
|
|
"border": true,
|
|
|
|
"border-bottom": true,
|
|
|
|
"border-left": true,
|
|
|
|
"border-right": true,
|
|
|
|
"border-top": true,
|
|
|
|
"cue": true,
|
|
|
|
"font": true,
|
|
|
|
"list-style": true,
|
|
|
|
"outline": true,
|
|
|
|
"pause": true
|
2007-04-15 15:28:07 -07:00
|
|
|
};
|
|
|
|
|
2007-03-25 22:54:44 -07:00
|
|
|
function test_property(property)
|
|
|
|
{
|
2007-04-15 15:28:07 -07:00
|
|
|
var info = gCSSProperties[property];
|
2007-03-25 22:54:44 -07:00
|
|
|
|
2007-04-15 15:28:07 -07:00
|
|
|
function check_initial(sproperty) {
|
|
|
|
var sinfo = gCSSProperties[sproperty];
|
|
|
|
var val = gDeclaration.getPropertyValue(sproperty);
|
|
|
|
is(val, "", "value of '" + sproperty + "' before we do anything");
|
|
|
|
if (sinfo.domProp) {
|
|
|
|
is(val, gDeclaration[sinfo.domProp],
|
|
|
|
"consistency between decl.getPropertyValue('" + sproperty + "') and decl." + sinfo.domProp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
check_initial(property);
|
|
|
|
if ("subproperties" in info)
|
|
|
|
for (var idx in info.subproperties)
|
|
|
|
check_initial(info.subproperties[idx]);
|
2007-03-25 22:54:44 -07:00
|
|
|
|
2007-04-15 15:28:07 -07:00
|
|
|
gDeclaration.setProperty(property, "-moz-initial", "");
|
2007-03-25 22:54:44 -07:00
|
|
|
|
2007-04-15 15:28:07 -07:00
|
|
|
function check_set(sproperty) {
|
|
|
|
var sinfo = gCSSProperties[sproperty];
|
|
|
|
val = gDeclaration.getPropertyValue(sproperty);
|
2007-04-16 20:50:30 -07:00
|
|
|
var func = is;
|
2007-05-14 22:13:49 -07:00
|
|
|
if (sproperty == property && property in gKnownFails)
|
2007-04-16 20:50:30 -07:00
|
|
|
func = todo_is;
|
|
|
|
func(val, "-moz-initial",
|
|
|
|
"-moz-initial reported back for property '" + sproperty + "'");
|
2007-04-15 15:28:07 -07:00
|
|
|
if (sinfo.domProp) {
|
|
|
|
is(val, gDeclaration[sinfo.domProp],
|
2007-04-16 20:50:30 -07:00
|
|
|
"consistency between decl.getPropertyValue('" + sproperty +
|
|
|
|
"') and decl." + sinfo.domProp);
|
2007-04-15 15:28:07 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
check_set(property);
|
|
|
|
if ("subproperties" in info)
|
|
|
|
for (var idx in info.subproperties)
|
|
|
|
check_set(info.subproperties[idx]);
|
2007-03-25 22:54:44 -07:00
|
|
|
|
2007-04-16 20:50:30 -07:00
|
|
|
// We don't care particularly about the whitespace or the placement of
|
|
|
|
// semicolons, but for simplicity we'll test the current behavior.
|
|
|
|
var cssTextFunc = is;
|
|
|
|
if (property in gKnownFails2)
|
|
|
|
cssTextFunc = todo_is;
|
|
|
|
cssTextFunc(gDeclaration.cssText, property + ": -moz-initial;",
|
|
|
|
"declaration should serialize to exactly what went in (for -moz-initial)");
|
|
|
|
|
2007-04-15 15:28:07 -07:00
|
|
|
gDeclaration.removeProperty(property);
|
2007-03-25 22:54:44 -07:00
|
|
|
|
2007-04-15 15:28:07 -07:00
|
|
|
function check_final(sproperty) {
|
|
|
|
var sinfo = gCSSProperties[sproperty];
|
|
|
|
var val = gDeclaration.getPropertyValue(sproperty);
|
|
|
|
is(val, "", "value of '" + sproperty + "' after removal of value");
|
|
|
|
if (sinfo.domProp) {
|
|
|
|
is(val, gDeclaration[sinfo.domProp],
|
|
|
|
"consistency between decl.getPropertyValue('" + sproperty + "') and decl." + sinfo.domProp);
|
|
|
|
}
|
2007-03-25 22:54:44 -07:00
|
|
|
}
|
2007-04-15 15:28:07 -07:00
|
|
|
check_final(property);
|
|
|
|
if ("subproperties" in info)
|
|
|
|
for (var idx in info.subproperties)
|
|
|
|
check_final(info.subproperties[idx]);
|
2007-03-25 22:54:44 -07:00
|
|
|
}
|
|
|
|
|
2007-04-15 15:28:07 -07:00
|
|
|
for (var prop in gCSSProperties)
|
|
|
|
test_property(prop);
|
2007-03-25 22:54:44 -07:00
|
|
|
|
|
|
|
</script>
|
|
|
|
</pre>
|
|
|
|
</body>
|
|
|
|
</html>
|