110 lines
4.8 KiB
HTML
110 lines
4.8 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
<script>
|
|
description("Test the parsing of the -webkit-filter property.");
|
|
|
|
// These have to be global for the test helpers to see them.
|
|
var stylesheet, cssRule, declaration;
|
|
var styleElement = document.createElement("style");
|
|
document.head.appendChild(styleElement);
|
|
stylesheet = styleElement.sheet;
|
|
|
|
function testInvalidFilterRule(description, rule)
|
|
{
|
|
debug("");
|
|
debug(description + " : " + rule);
|
|
|
|
stylesheet.insertRule("body { -webkit-filter: " + rule + "; }", 0);
|
|
cssRule = stylesheet.cssRules.item(0);
|
|
|
|
shouldBe("cssRule.type", "1");
|
|
|
|
declaration = cssRule.style;
|
|
shouldBe("declaration.length", "0");
|
|
shouldBeEqualToString("declaration.getPropertyValue('-webkit-filter')", "");
|
|
stylesheet.deleteRule(0);
|
|
}
|
|
|
|
testInvalidFilterRule("Too many parameters", "url(#a #b)");
|
|
|
|
testInvalidFilterRule("Length instead of number", "grayscale(10px)");
|
|
testInvalidFilterRule("Too many parameters", "grayscale(0.5 0.5)");
|
|
testInvalidFilterRule("Too many parameters and commas", "grayscale(0.5, 0.5)");
|
|
testInvalidFilterRule("Trailing comma", "grayscale(0.5,)");
|
|
testInvalidFilterRule("Negative parameter", "grayscale(-0.5)");
|
|
testInvalidFilterRule("Negative percent", "grayscale(-10%)");
|
|
|
|
testInvalidFilterRule("Too many parameters", "sepia(0.5 0.5 3.0)");
|
|
testInvalidFilterRule("Too many parameters and commas", "sepia(0.1, 0.1)");
|
|
testInvalidFilterRule("Trailing comma", "sepia(0.5,)");
|
|
testInvalidFilterRule("Negative parameter", "sepia(-0.01)");
|
|
testInvalidFilterRule("Negative percent", "sepia(-10%)");
|
|
|
|
testInvalidFilterRule("Length instead of number", "saturate(10px)");
|
|
testInvalidFilterRule("Too many parameters", "saturate(0.5 0.5)");
|
|
testInvalidFilterRule("Too many parameters and commas", "saturate(0.5, 0.5)");
|
|
testInvalidFilterRule("Trailing comma", "saturate(0.5,)");
|
|
testInvalidFilterRule("Negative parameter", "saturate(-0.5)");
|
|
testInvalidFilterRule("Negative percent", "saturate(-10%)");
|
|
|
|
testInvalidFilterRule("Bare number", "hue-rotate(10)");
|
|
testInvalidFilterRule("Length", "hue-rotate(10px)");
|
|
testInvalidFilterRule("Too many parameters", "hue-rotate(10deg 4)");
|
|
testInvalidFilterRule("Too many parameters and commas", "hue-rotate(10deg, 5deg)");
|
|
testInvalidFilterRule("Trailing comma", "hue-rotate(10deg,)");
|
|
|
|
testInvalidFilterRule("Length instead of number", "invert(10px)");
|
|
testInvalidFilterRule("Too many parameters", "invert(0.5 0.5)");
|
|
testInvalidFilterRule("Too many parameters and commas", "invert(0.5, 0.5)");
|
|
testInvalidFilterRule("Trailing comma", "invert(0.5,)");
|
|
testInvalidFilterRule("Negative parameter", "invert(-0.5)");
|
|
|
|
testInvalidFilterRule("Length instead of number", "opacity(10px)");
|
|
testInvalidFilterRule("Too many parameters", "opacity(0.5 0.5)");
|
|
testInvalidFilterRule("Too many parameters and commas", "opacity(0.5, 0.5)");
|
|
testInvalidFilterRule("Trailing comma", "opacity(0.5,)");
|
|
testInvalidFilterRule("Negative parameter", "opacity(-0.5)");
|
|
testInvalidFilterRule("Negative percent", "opacity(-10%)");
|
|
|
|
testInvalidFilterRule("Length instead of number", "brightness(10px)");
|
|
testInvalidFilterRule("Too many parameters", "brightness(0.5 0.5)");
|
|
testInvalidFilterRule("Too many parameters and commas", "brightness(0.5, 0.5)");
|
|
testInvalidFilterRule("Trailing comma", "brightness(0.5,)");
|
|
|
|
testInvalidFilterRule("Length instead of number", "contrast(10px)");
|
|
testInvalidFilterRule("Too many parameters", "contrast(0.5 0.5)");
|
|
testInvalidFilterRule("Too many parameters and commas", "contrast(0.5, 0.5)");
|
|
testInvalidFilterRule("Trailing comma", "contrast(0.5,)");
|
|
testInvalidFilterRule("Negative parameter", "contrast(-0.5)");
|
|
testInvalidFilterRule("Negative percent", "contrast(-10%)");
|
|
|
|
testInvalidFilterRule("Bare number", "blur(1)");
|
|
testInvalidFilterRule("Negative number", "blur(-1px)");
|
|
testInvalidFilterRule("Percentage", "blur(10%)");
|
|
testInvalidFilterRule("Too many parameters", "blur(1px 1px)");
|
|
testInvalidFilterRule("Too many parameters and commas", "blur(1em, 1em)");
|
|
testInvalidFilterRule("Commas", "blur(10px, 10px)");
|
|
testInvalidFilterRule("Trailing comma", "blur(1em,)");
|
|
|
|
testInvalidFilterRule("No values", "drop-shadow()");
|
|
testInvalidFilterRule("Missing lengths", "drop-shadow(red)");
|
|
testInvalidFilterRule("Not enough lengths", "drop-shadow(red 1px)");
|
|
testInvalidFilterRule("Missing units", "drop-shadow(red 1 2 3)");
|
|
testInvalidFilterRule("Inset", "drop-shadow(red 1px 2px 3px inset)");
|
|
testInvalidFilterRule("Too many parameters", "drop-shadow(red 1px 2px 3px 4px)");
|
|
testInvalidFilterRule("Commas", "drop-shadow(red, 1px, 2px, 3px)");
|
|
testInvalidFilterRule("Negative radius", "drop-shadow(10px 10px -1px red)");
|
|
|
|
successfullyParsed = true;
|
|
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|