blob: d2d1fbfcc17884ebefd5ac95f6933e911bf82383 [file] [log] [blame]
<!DOCTYPE HTML>
<html>
<head>
<script src="../../../../resources/js-test-pre.js"></script>
</head>
<body>
<div id="p"></div>
<script type="text/javascript">
function testPartiallyBalancedIsValid(stylesheet, target) {
cssRule = stylesheet.cssRules.item(0);
shouldBe("cssRule.type", "cssRule.STYLE_RULE");
declaration = cssRule.style;
shouldBe("declaration.length", "1");
shouldBeEqualToString("declaration.getPropertyValue('-apple-trailing-word')", "-webkit-partially-balanced");
computedStyle = window.getComputedStyle(target, null);
shouldBeEqualToString("computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText", "-webkit-partially-balanced");
stylesheet.deleteRule(0);
}
function testEmptyIsNone(stylesheet, target) {
cssRule = stylesheet.cssRules.item(0);
shouldBe("cssRule.type", "cssRule.STYLE_RULE");
declaration = cssRule.style;
shouldBe("declaration.length", "0");
shouldBeEqualToString("declaration.getPropertyValue('-apple-trailing-word')", "");
computedStyle = window.getComputedStyle(target, null);
shouldBeEqualToString("computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText", "auto");
stylesheet.deleteRule(0);
}
function testInitialIsNone(stylesheet, target) {
cssRule = stylesheet.cssRules.item(0);
shouldBe("cssRule.type", "cssRule.STYLE_RULE");
declaration = cssRule.style;
shouldBe("declaration.length", "1");
shouldBeEqualToString("declaration.getPropertyValue('-apple-trailing-word')", "initial");
computedStyle = window.getComputedStyle(target, null);
shouldBeEqualToString("computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText", "auto");
stylesheet.deleteRule(0);
}
function testInvalidRule(stylesheet, target) {
cssRule = stylesheet.cssRules.item(0);
shouldBe("cssRule.type", "cssRule.STYLE_RULE");
declaration = cssRule.style;
shouldBe("declaration.length", "0");
computedStyle = window.getComputedStyle(target, null);
shouldBeEqualToString("computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText", "auto");
stylesheet.deleteRule(0);
}
function testNoneIsValid(stylesheet, target) {
cssRule = stylesheet.cssRules.item(0);
shouldBe("cssRule.type", "cssRule.STYLE_RULE");
declaration = cssRule.style;
shouldBe("declaration.length", "1");
shouldBeEqualToString("declaration.getPropertyValue('-apple-trailing-word')", "auto");
computedStyle = window.getComputedStyle(target, null);
shouldBeEqualToString("computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText", "auto");
stylesheet.deleteRule(0);
}
var styleElement = document.createElement("style");
document.head.appendChild(styleElement);
stylesheet = styleElement.sheet;
var target = document.getElementById("p");
stylesheet.insertRule("#p { }", 0);
testEmptyIsNone(stylesheet, target);
stylesheet.insertRule("#p { -apple-trailing-word: initial; }", 0);
testInitialIsNone(stylesheet, target);
stylesheet.insertRule("#p { -apple-trailing-word: -apple-partially-balanced; }", 0);
testPartiallyBalancedIsValid(stylesheet, target);
stylesheet.insertRule("#p { -apple-trailing-word: -apple-partially-balanced -apple-partially-balanced -apple-partially-balanced; }", 0);
testInvalidRule(stylesheet, target);
stylesheet.insertRule("#p { -apple-trailing-word: garbage; }", 0);
testInvalidRule(stylesheet, target);
stylesheet.insertRule("#p { -apple-trailing-word: garbage -apple-partially-balanced; }", 0);
testInvalidRule(stylesheet, target);
stylesheet.insertRule("#p { -apple-trailing-word: -apple-partially-balanced garbage; }", 0);
testInvalidRule(stylesheet, target);
stylesheet.insertRule("#p { -apple-trailing-word: garbage -apple-partially-balanced garbage; }", 0);
testInvalidRule(stylesheet, target);
stylesheet.insertRule("#p { -apple-trailing-word: -apple-partially-balanced garbage -apple-partially-balanced; }", 0);
testInvalidRule(stylesheet, target);
stylesheet.insertRule("#p { -apple-trailing-word: auto; }", 0);
testNoneIsValid(stylesheet, target);
stylesheet.insertRule("#p { -apple-trailing-word: ; }", 0);
testInvalidRule(stylesheet, target);
</script>
<script src="../../../../resources/js-test-post.js"></script>
</body>
</html>