[Web Animations] Expose Web Animations CSS integration as an experimental feature
[WebKit-https.git] / LayoutTests / animations / spring-computed-style.html
1 <!DOCTYPE HTML>
2 <script src="../resources/js-test-pre.js"></script>
3 <p id="description"></p>
4 <div id="console"></div>
5 <script>
6 description("Test the computed style of the spring() function on the transition-timing-function property.");
7
8 if (window.internals)
9     internals.settings.setSpringTimingFunctionEnabled(true);
10
11 // These have to be global for the test helpers to see them.
12 var stylesheet, springStyle;
13 var styleElement = document.createElement("style");
14 document.head.appendChild(styleElement);
15 stylesheet = styleElement.sheet;
16 var div = document.createElement(div);
17 div.id = "target";
18 document.body.appendChild(div);
19
20 function testComputedSpring(description, spring, expectedValue)
21 {
22     debug("");
23     debug(description + " : " + spring);
24
25     stylesheet.insertRule("#target { transition-timing-function: " + spring + "; }", 0);
26
27     springStyle = window.getComputedStyle(div).getPropertyCSSValue("transition-timing-function");
28     shouldBe("springStyle.cssText", "'" + expectedValue + "'");
29     
30     stylesheet.deleteRule(0);
31 }
32
33 debug("")
34 debug("Valid spring tests");
35 debug("")
36
37 testComputedSpring("Basic", "spring(1 100 10 0)", "spring(1 100 10 0)");
38 testComputedSpring("Negative Velocity", "spring(1 100 10 -10)", "spring(1 100 10 -10)");
39 testComputedSpring("Positive Velocity", "spring(1 100 10 10)", "spring(1 100 10 10)");
40 testComputedSpring("Zero Damping", "spring(1 100 0 10)", "spring(1 100 0 10)");
41 testComputedSpring("Minimum Values", "spring(1 1 0 -999999)", "spring(1 1 0 -999999)");
42 testComputedSpring("Floating Point Values", "spring(1.5 2.3 3.7 -1.8)", "spring(1.5 2.3 3.7 -1.8)");
43
44 debug("")
45 debug("Invalid spring tests");
46 debug("")
47
48 testComputedSpring("No parameters", "spring()", "ease");
49 testComputedSpring("Not enough parameters", "spring(1 100 10)", "ease");
50 testComputedSpring("Too many parameters", "spring(1 100 10 0 0)", "ease");
51 testComputedSpring("Non-numeric parameters", "spring(a b c d)", "ease");
52 testComputedSpring("Illegal Mass (< 0)", "spring(-1 100 10 0)", "ease");
53 testComputedSpring("Illegal Mass (== 0)", "spring(0 100 10 0)", "ease");
54 testComputedSpring("Illegal Stiffness (< 0)", "spring(1 -1 10 0)", "ease");
55 testComputedSpring("Illegal Stiffness (== 0)", "spring(1 0 10 0)", "ease");
56 testComputedSpring("Illegal Damping (< 0)", "spring(1 100 -1 0)", "ease");
57
58 successfullyParsed = true;
59 </script>
60 <script src="../resources/js-test-post.js"></script>