tizen beta release
[profile/ivi/webkit-efl.git] / LayoutTests / css3 / filters / script-tests / custom-filter-property-parsing-invalid.js
1 description("Test the parsing of custom() function 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
6 function testInvalidFilterRule(description, rule)
7 {
8     debug("");
9     debug(description + " : " + rule);
10
11     stylesheet = document.styleSheets.item(0);
12     stylesheet.insertRule("body { -webkit-filter: " + rule + "; }", 0);
13     cssRule = stylesheet.cssRules.item(0);
14   
15     shouldBe("cssRule.type", "1");
16
17     declaration = cssRule.style;
18     shouldBe("declaration.length", "0");
19     shouldBe("declaration.getPropertyValue('-webkit-filter')", "null");
20 }
21
22 testInvalidFilterRule("Empty function", "custom()");
23 testInvalidFilterRule("No values 1", "custom(,)");
24 testInvalidFilterRule("No values 2", "custom(,,)");
25
26 testInvalidFilterRule("Too many shaders 1", "custom(url(shader1) url(shader2) url(shader2))");
27 testInvalidFilterRule("Too many shaders 2", "custom(none none none)");
28 testInvalidFilterRule("Too many shaders 3", "custom(none url(shader1) url(shader2) url(shader2))");
29
30 testInvalidFilterRule("No shader", "custom(none, 10 20)");
31 testInvalidFilterRule("Too many mesh sizes", "custom(none, 10 20 30)");
32 testInvalidFilterRule("Wrong mesh-box type - 'padding'", "custom(url(shader), padding)");
33 testInvalidFilterRule("Wrong mesh-box type - 'none'", "custom(url(shader), none)");
34 testInvalidFilterRule("More mesh-box types", "custom(url(shader), padding-box filter-box)");
35 testInvalidFilterRule("Wrong order for mesh-detached and mesh-box type", "custom(url(shader), detached padding-box)");
36 testInvalidFilterRule("Wrong order for mesh size and mesh-box type", "custom(url(shader), padding-box 10)");
37 testInvalidFilterRule("Too many mesh sizes with mesh-box type", "custom(url(shader), 20 30 40 padding-box)");
38 testInvalidFilterRule("Invalid comma between mesh-sizes", "custom(url(shader), 20, 40 padding-box)");
39 testInvalidFilterRule("Invalid comma before mesh type", "custom(url(shader), 20, padding-box)");
40 testInvalidFilterRule("No mesh parameter", "custom(url(shader), )");
41 testInvalidFilterRule("Wrong mesh type - correct identifier is 'detached'", "custom(url(shader), detach)");
42 testInvalidFilterRule("No mesh size", "custom(url(shader), , p1 2)");
43
44 testInvalidFilterRule("Too many parameter values", "custom(url(shader), p1 1 2 3 4 5)");
45 testInvalidFilterRule("Invalid parameter types", "custom(url(shader), p1 1.0 2.0 'text')");
46
47 testInvalidFilterRule("No parameter value 1", "custom(url(shader), p1)");
48 testInvalidFilterRule("No parameter value 2", "custom(url(shader), p1, p2, p3)");
49