blob: 7ba5b22762099acf9d8860ee75707e3612758fae [file] [log] [blame]
<!DOCTYPE HTML>
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<div id="p"></div>
<div id="q"><div id="r"></div></div>
<script type="text/javascript">
function testEmptyIsBoth(stylesheet, target) {
cssRule = stylesheet.cssRules.item(0);
shouldBe("cssRule.type", "cssRule.STYLE_RULE");
declaration = cssRule.style;
shouldBe("declaration.length", "0");
shouldBeEqualToString("declaration.getPropertyValue('font-synthesis')", "");
computedStyle = window.getComputedStyle(target, null);
shouldBeEqualToString("computedStyle.getPropertyCSSValue('font-synthesis').cssText", "style weight small-caps");
stylesheet.deleteRule(0);
}
function testInitialIsBoth(stylesheet, target) {
cssRule = stylesheet.cssRules.item(0);
shouldBe("cssRule.type", "cssRule.STYLE_RULE");
declaration = cssRule.style;
shouldBe("declaration.length", "1");
shouldBeEqualToString("declaration.getPropertyValue('font-synthesis')", "initial");
computedStyle = window.getComputedStyle(target, null);
shouldBeEqualToString("computedStyle.getPropertyCSSValue('font-synthesis').cssText", "style weight small-caps");
stylesheet.deleteRule(0);
}
function testWeight(stylesheet, target) {
cssRule = stylesheet.cssRules.item(0);
shouldBe("cssRule.type", "cssRule.STYLE_RULE");
declaration = cssRule.style;
shouldBe("declaration.length", "1");
shouldBeEqualToString("declaration.getPropertyValue('font-synthesis')", "weight");
computedStyle = window.getComputedStyle(target, null);
shouldBeEqualToString("computedStyle.getPropertyCSSValue('font-synthesis').cssText", "weight");
stylesheet.deleteRule(0);
}
function testStyle(stylesheet, target) {
cssRule = stylesheet.cssRules.item(0);
shouldBe("cssRule.type", "cssRule.STYLE_RULE");
declaration = cssRule.style;
shouldBe("declaration.length", "1");
shouldBeEqualToString("declaration.getPropertyValue('font-synthesis')", "style");
computedStyle = window.getComputedStyle(target, null);
shouldBeEqualToString("computedStyle.getPropertyCSSValue('font-synthesis').cssText", "style");
stylesheet.deleteRule(0);
}
function testWeightAndStyle(stylesheet, target) {
cssRule = stylesheet.cssRules.item(0);
shouldBe("cssRule.type", "cssRule.STYLE_RULE");
declaration = cssRule.style;
shouldBe("declaration.length", "1");
shouldBeEqualToString("declaration.getPropertyValue('font-synthesis')", "weight style");
computedStyle = window.getComputedStyle(target, null);
shouldBeEqualToString("computedStyle.getPropertyCSSValue('font-synthesis').cssText", "style weight");
stylesheet.deleteRule(0);
}
function testStyleAndWeight(stylesheet, target) {
cssRule = stylesheet.cssRules.item(0);
shouldBe("cssRule.type", "cssRule.STYLE_RULE");
declaration = cssRule.style;
shouldBe("declaration.length", "1");
shouldBeEqualToString("declaration.getPropertyValue('font-synthesis')", "style weight");
computedStyle = window.getComputedStyle(target, null);
shouldBeEqualToString("computedStyle.getPropertyCSSValue('font-synthesis').cssText", "style weight");
stylesheet.deleteRule(0);
}
var styleElement = document.createElement("style");
document.head.appendChild(styleElement);
stylesheet = styleElement.sheet;
var target = document.getElementById("p");
stylesheet.insertRule("#p { }", 0);
testEmptyIsBoth(stylesheet, target);
stylesheet.insertRule("#p { font-synthesis: initial; }", 0);
testInitialIsBoth(stylesheet, target);
stylesheet.insertRule("#p { font-synthesis: weight }", 0);
testWeight(stylesheet, target);
stylesheet.insertRule("#p { font-synthesis: style }", 0);
testStyle(stylesheet, target);
stylesheet.insertRule("#p { font-synthesis: weight style }", 0);
testWeightAndStyle(stylesheet, target);
stylesheet.insertRule("#p { font-synthesis: style weight }", 0);
testStyleAndWeight(stylesheet, target);
stylesheet.insertRule("#p { font-synthesis: garbage style }", 0);
testEmptyIsBoth(stylesheet, target);
stylesheet.insertRule("#p { font-synthesis: style garbage }", 0);
testEmptyIsBoth(stylesheet, target);
stylesheet.insertRule("#p { font-synthesis: garbage style garbage }", 0);
testEmptyIsBoth(stylesheet, target);
stylesheet.insertRule("#p { font-synthesis: style garbage style }", 0);
testEmptyIsBoth(stylesheet, target);
stylesheet.insertRule("#p { font-synthesis: weight garbage }", 0);
testEmptyIsBoth(stylesheet, target);
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>