| OLD | NEW |
| (Empty) |
| 1 description("Test the parsing of the -webkit-filter property."); | |
| 2 | |
| 3 // These have to be global for the test helpers to see them. | |
| 4 var stylesheet, cssRule, declaration; | |
| 5 var styleElement = document.createElement("style"); | |
| 6 document.head.appendChild(styleElement); | |
| 7 stylesheet = styleElement.sheet; | |
| 8 | |
| 9 function testInvalidFilterRule(description, rule) | |
| 10 { | |
| 11 debug(""); | |
| 12 debug(description + " : " + rule); | |
| 13 | |
| 14 stylesheet.insertRule("body { -webkit-filter: " + rule + "; }", 0); | |
| 15 cssRule = stylesheet.cssRules.item(0); | |
| 16 | |
| 17 shouldBe("cssRule.type", "1"); | |
| 18 | |
| 19 declaration = cssRule.style; | |
| 20 shouldBe("declaration.length", "0"); | |
| 21 shouldBeEqualToString("declaration.getPropertyValue('-webkit-filter')", ""); | |
| 22 } | |
| 23 | |
| 24 testInvalidFilterRule("Too many parameters", "url(#a #b)"); | |
| 25 | |
| 26 testInvalidFilterRule("Length instead of number", "grayscale(10px)"); | |
| 27 testInvalidFilterRule("Too many parameters", "grayscale(0.5 0.5)"); | |
| 28 testInvalidFilterRule("Too many parameters and commas", "grayscale(0.5, 0.5)"); | |
| 29 testInvalidFilterRule("Trailing comma", "grayscale(0.5,)"); | |
| 30 testInvalidFilterRule("Negative parameter", "grayscale(-0.5)"); | |
| 31 testInvalidFilterRule("Negative percent", "grayscale(-10%)"); | |
| 32 testInvalidFilterRule("Parameter out of bounds", "grayscale(1.5)"); | |
| 33 | |
| 34 testInvalidFilterRule("Too many parameters", "sepia(0.5 0.5 3.0)"); | |
| 35 testInvalidFilterRule("Too many parameters and commas", "sepia(0.1, 0.1)"); | |
| 36 testInvalidFilterRule("Trailing comma", "sepia(0.5,)"); | |
| 37 testInvalidFilterRule("Negative parameter", "sepia(-0.01)"); | |
| 38 testInvalidFilterRule("Negative percent", "sepia(-10%)"); | |
| 39 testInvalidFilterRule("Parameter out of bounds", "sepia(10000)"); | |
| 40 | |
| 41 testInvalidFilterRule("Length instead of number", "saturate(10px)"); | |
| 42 testInvalidFilterRule("Too many parameters", "saturate(0.5 0.5)"); | |
| 43 testInvalidFilterRule("Too many parameters and commas", "saturate(0.5, 0.5)"); | |
| 44 testInvalidFilterRule("Trailing comma", "saturate(0.5,)"); | |
| 45 testInvalidFilterRule("Negative parameter", "saturate(-0.5)"); | |
| 46 testInvalidFilterRule("Negative percent", "saturate(-10%)"); | |
| 47 | |
| 48 testInvalidFilterRule("Bare number", "hue-rotate(10)"); | |
| 49 testInvalidFilterRule("Length", "hue-rotate(10px)"); | |
| 50 testInvalidFilterRule("Too many parameters", "hue-rotate(10deg 4)"); | |
| 51 testInvalidFilterRule("Too many parameters and commas", "hue-rotate(10deg, 5deg)
"); | |
| 52 testInvalidFilterRule("Trailing comma", "hue-rotate(10deg,)"); | |
| 53 | |
| 54 testInvalidFilterRule("Length instead of number", "invert(10px)"); | |
| 55 testInvalidFilterRule("Too many parameters", "invert(0.5 0.5)"); | |
| 56 testInvalidFilterRule("Too many parameters and commas", "invert(0.5, 0.5)"); | |
| 57 testInvalidFilterRule("Trailing comma", "invert(0.5,)"); | |
| 58 testInvalidFilterRule("Negative parameter", "invert(-0.5)"); | |
| 59 testInvalidFilterRule("Parameter out of bounds", "invert(1.5)"); | |
| 60 | |
| 61 testInvalidFilterRule("Length instead of number", "opacity(10px)"); | |
| 62 testInvalidFilterRule("Too many parameters", "opacity(0.5 0.5)"); | |
| 63 testInvalidFilterRule("Too many parameters and commas", "opacity(0.5, 0.5)"); | |
| 64 testInvalidFilterRule("Trailing comma", "opacity(0.5,)"); | |
| 65 testInvalidFilterRule("Negative parameter", "opacity(-0.5)"); | |
| 66 testInvalidFilterRule("Negative percent", "opacity(-10%)"); | |
| 67 testInvalidFilterRule("Parameter out of bounds", "opacity(1.5)"); | |
| 68 | |
| 69 testInvalidFilterRule("Length instead of number", "brightness(10px)"); | |
| 70 testInvalidFilterRule("Too many parameters", "brightness(0.5 0.5)"); | |
| 71 testInvalidFilterRule("Too many parameters and commas", "brightness(0.5, 0.5)"); | |
| 72 testInvalidFilterRule("Trailing comma", "brightness(0.5,)"); | |
| 73 | |
| 74 testInvalidFilterRule("Length instead of number", "contrast(10px)"); | |
| 75 testInvalidFilterRule("Too many parameters", "contrast(0.5 0.5)"); | |
| 76 testInvalidFilterRule("Too many parameters and commas", "contrast(0.5, 0.5)"); | |
| 77 testInvalidFilterRule("Trailing comma", "contrast(0.5,)"); | |
| 78 testInvalidFilterRule("Negative parameter", "contrast(-0.5)"); | |
| 79 testInvalidFilterRule("Negative percent", "contrast(-10%)"); | |
| 80 | |
| 81 testInvalidFilterRule("Bare number", "blur(1)"); | |
| 82 testInvalidFilterRule("Negative number", "blur(-1px)"); | |
| 83 testInvalidFilterRule("Percentage", "blur(10%)"); | |
| 84 testInvalidFilterRule("Too many parameters", "blur(1px 1px)"); | |
| 85 testInvalidFilterRule("Too many parameters and commas", "blur(1em, 1em)"); | |
| 86 testInvalidFilterRule("Commas", "blur(10px, 10px)"); | |
| 87 testInvalidFilterRule("Trailing comma", "blur(1em,)"); | |
| 88 | |
| 89 testInvalidFilterRule("No values", "drop-shadow()"); | |
| 90 testInvalidFilterRule("Missing lengths", "drop-shadow(red)"); | |
| 91 testInvalidFilterRule("Not enough lengths", "drop-shadow(red 1px)"); | |
| 92 testInvalidFilterRule("Missing units", "drop-shadow(red 1 2 3)"); | |
| 93 testInvalidFilterRule("Inset", "drop-shadow(red 1px 2px 3px inset)"); | |
| 94 testInvalidFilterRule("Too many parameters", "drop-shadow(red 1px 2px 3px 4px)")
; | |
| 95 testInvalidFilterRule("Commas", "drop-shadow(red, 1px, 2px, 3px)"); | |
| 96 testInvalidFilterRule("Negative radius", "drop-shadow(10px 10px -1px red)"); | |
| 97 | |
| 98 testInvalidFilterRule("Unknown function", "fancify(150%)"); | |
| 99 | |
| 100 successfullyParsed = true; | |
| OLD | NEW |