File: transition-timing-function-001.html

package info (click to toggle)
firefox-esr 68.10.0esr-1~deb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 3,143,932 kB
  • sloc: cpp: 5,227,879; javascript: 4,315,531; ansic: 2,467,042; python: 794,975; java: 349,993; asm: 232,034; xml: 228,320; sh: 82,008; lisp: 41,202; makefile: 22,347; perl: 15,555; objc: 5,277; cs: 4,725; yacc: 1,778; ada: 1,681; pascal: 1,673; lex: 1,417; exp: 527; php: 436; ruby: 225; awk: 162; sed: 53; csh: 44
file content (94 lines) | stat: -rw-r--r-- 4,257 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>CSS Transitions Test: Parsing transition-timing-function</title>
        <meta name="assert" content="Test checks that transition-timing-function values are parsed properly">
        <link rel="help" title="2.3. The 'transition-timing-function' Property" href="http://www.w3.org/TR/css3-transitions/#transition-timing-function-property">
        <link rel="author" title="Rodney Rehm" href="http://rodneyrehm.de/en/">
        <meta name="flags" content="dom">

        <script src="/resources/testharness.js" type="text/javascript"></script>
        <script src="/resources/testharnessreport.js" type="text/javascript"></script>

        <script src="./support/vendorPrefix.js" type="text/javascript"></script>
        <script src="./support/helper.js" type="text/javascript"></script>
    </head>
    <body>
        <!-- required by testharnessreport.js -->
        <div id="log"></div>
        <!-- elements used for testing -->
        <div id="container">
            <div id="transition"></div>
        </div>

        <script>
            var transition = document.getElementById('transition');
            var defaultValue = 'ease';
            var values = {
                // keywords
                'ease': 'ease',
                'linear': 'linear',
                'ease-in': 'ease-in',
                'ease-out': 'ease-out',
                'ease-in-out': 'ease-in-out',
                'step-start': 'steps(1, start)',
                'step-end': 'steps(1)',
                // cubic bezier
                'cubic-bezier(0.1, 0.2, 0.3, 0.4)': 'cubic-bezier(0.1, 0.2, 0.3, 0.4)',
                'cubic-bezier(0.1, -0.2, 0.3, -0.4)': 'cubic-bezier(0.1, -0.2, 0.3, -0.4)',
                'cubic-bezier(0.1, 1.2, 0.3, 1.4)': 'cubic-bezier(0.1, 1.2, 0.3, 1.4)',
                // steps
                'steps(3, start)': 'steps(3, start)',
                'steps(3, end)': 'steps(3)',
                'steps(3)': 'steps(3)',
                'steps(3, jump-start)': 'steps(3, jump-start)',
                'steps(3, jump-end)': 'steps(3)',
                'steps(3, jump-both)': 'steps(3, jump-both)',
                'steps(3, jump-none)': 'steps(3, jump-none)',
                // invalid
                'cubic-bezier(foobar)': defaultValue,
                'steps(foobar)': defaultValue,
                'steps(3.3, end)': defaultValue,
                'steps(3, top)': defaultValue,
                'steps(-3, top)': defaultValue,
                'steps(0, jump-start)': defaultValue,
                'steps(0, jump-end)': defaultValue,
                'steps(0, jump-both)': defaultValue,
                'steps(1, jump-none)': defaultValue,
                // Both x values must be in the range [0, 1]
                'cubic-bezier(-0.1, -0.2, -0.3, -0.4)': defaultValue,
                'cubic-bezier(1.1, 1.2, 1.3, 1.4)': defaultValue
            };

            // these tests are supposed to fail and
            // possibly make the engine issue a parser warning
            var invalidTests = {
                'cubic-bezier(foobar)': true,
                'steps(foobar)': true,
                'steps(3.3, end)': true,
                'steps(3, top)': true,
                'steps(-3, top)': true,
                // Both x values must be in the range [0, 1]
                'cubic-bezier(-0.1, -0.2, -0.3, -0.4)': true,
                'cubic-bezier(1.1, 1.2, 1.3, 1.4)': true
            };

            for (var key in values) {
                if (Object.prototype.hasOwnProperty.call(values, key)) {
                    test(function() {
                        setStyle('#transition', {
                            'transition-timing-function': key
                        });
                        var result = computedStyle(transition, 'transition-timing-function');
                        assert_equals(result, values[key], "Expected computed value");
                    }, "parse '" + key + "'",
                    {
                        // mark tests that fail as such
                        flags: invalidTests[key] ? "invalid" : ""
                    });
                }
            }
        </script>
    </body>
</html>