Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(361)

Side by Side Diff: third_party/WebKit/LayoutTests/imported/web-platform-tests/web-animations/keyframe-effect/getComputedTiming.html

Issue 1866333004: Import web-platform-tests@5a8700479d98852455bee6117558897867eb278a (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@wpt-sync
Patch Set: Add Failure option for two TestExpectations entries Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <meta charset=utf-8>
3 <title>KeyframeEffectReadOnly getComputedTiming() tests</title>
4 <link rel="help" href="https://w3c.github.io/web-animations/#dom-animationeffect readonly-getcomputedtiming">
5 <link rel="author" title="Boris Chiou" href="mailto:boris.chiou@gmail.com">
6 <script src="../../../../resources/testharness.js"></script>
7 <script src="../../../../resources/testharnessreport.js"></script>
8 <script src="../testcommon.js"></script>
9 <body>
10 <div id="log"></div>
11 <div id="target"></div>
12 <script>
13 "use strict";
14
15 var target = document.getElementById("target");
16
17 test(function(t) {
18 var effect = new KeyframeEffectReadOnly(target,
19 { left: ["10px", "20px"] });
20
21 var ct = effect.getComputedTiming();
22 assert_equals(ct.delay, 0, "computed delay");
23 assert_equals(ct.fill, "none", "computed fill");
24 assert_equals(ct.iterations, 1.0, "computed iterations");
25 assert_equals(ct.duration, 0, "computed duration");
26 assert_equals(ct.direction, "normal", "computed direction");
27 }, "values of getComputedTiming() when a KeyframeEffectReadOnly is " +
28 "constructed without any KeyframeEffectOptions object");
29
30 var gGetComputedTimingTests = [
31 { desc: "an empty KeyframeEffectOptions object",
32 input: { },
33 expected: { } },
34 { desc: "a normal KeyframeEffectOptions object",
35 input: { delay: 1000,
36 fill: "auto",
37 iterations: 5.5,
38 duration: "auto",
39 direction: "alternate" },
40 expected: { delay: 1000,
41 fill: "none",
42 iterations: 5.5,
43 duration: 0,
44 direction: "alternate" } },
45 { desc: "a double value",
46 input: 3000,
47 timing: { duration: 3000 },
48 expected: { delay: 0,
49 fill: "none",
50 iterations: 1,
51 duration: 3000,
52 direction: "normal" } },
53 { desc: "+Infinity",
54 input: Infinity,
55 expected: { duration: Infinity } },
56 { desc: "an Infinity duration",
57 input: { duration: Infinity },
58 expected: { duration: Infinity } },
59 { desc: "an auto duration",
60 input: { duration: "auto" },
61 expected: { duration: 0 } },
62 { desc: "an Infinity iterations",
63 input: { iterations: Infinity },
64 expected: { iterations: Infinity } },
65 { desc: "a negative Infinity iterations",
66 input: { iterations: -Infinity},
67 expected: { iterations: 1 } },
68 { desc: "a NaN iterations",
69 input: { iterations: NaN },
70 expected: { iterations: 1 } },
71 { desc: "a negative iterations",
72 input: { iterations: -1 },
73 expected: { iterations: 1 } },
74 { desc: "an auto fill",
75 input: { fill: "auto" },
76 expected: { fill: "none" } },
77 { desc: "a forwards fill",
78 input: { fill: "forwards" },
79 expected: { fill: "forwards" } }
80 ];
81
82 gGetComputedTimingTests.forEach(function(stest) {
83 test(function(t) {
84 var effect = new KeyframeEffectReadOnly(target,
85 { left: ["10px", "20px"] },
86 stest.input);
87
88 // Helper function to provide default expected values when the test does
89 // not supply them.
90 var expected = function(field, defaultValue) {
91 return field in stest.expected ? stest.expected[field] : defaultValue;
92 };
93
94 var ct = effect.getComputedTiming();
95 assert_equals(ct.delay, expected("delay", 0),
96 "computed delay");
97 assert_equals(ct.fill, expected("fill", "none"),
98 "computed fill");
99 assert_equals(ct.iterations, expected("iterations", 1),
100 "computed iterations");
101 assert_equals(ct.duration, expected("duration", 0),
102 "computed duration");
103 assert_equals(ct.direction, expected("direction", "normal"),
104 "computed direction");
105
106 }, "values of getComputedTiming() when a KeyframeEffectReadOnly is " +
107 "constructed by " + stest.desc);
108 });
109
110 var gActiveDurationTests = [
111 { desc: "an empty KeyframeEffectOptions object",
112 input: { },
113 expected: 0 },
114 { desc: "a non-zero duration and default iteration count",
115 input: { duration: 1000 },
116 expected: 1000 },
117 { desc: "a non-zero duration and integral iteration count",
118 input: { duration: 1000, iterations: 7 },
119 expected: 7000 },
120 { desc: "a non-zero duration and fractional iteration count",
121 input: { duration: 1000, iterations: 2.5 },
122 expected: 2500 },
123 { desc: "an non-zero duration and infinite iteration count",
124 input: { duration: 1000, iterations: Infinity },
125 expected: Infinity },
126 { desc: "an non-zero duration and zero iteration count",
127 input: { duration: 1000, iterations: 0 },
128 expected: 0 },
129 { desc: "a zero duration and default iteration count",
130 input: { duration: 0 },
131 expected: 0 },
132 { desc: "a zero duration and fractional iteration count",
133 input: { duration: 0, iterations: 2.5 },
134 expected: 0 },
135 { desc: "a zero duration and infinite iteration count",
136 input: { duration: 0, iterations: Infinity },
137 expected: 0 },
138 { desc: "a zero duration and zero iteration count",
139 input: { duration: 0, iterations: 0 },
140 expected: 0 },
141 { desc: "an infinite duration and default iteration count",
142 input: { duration: Infinity },
143 expected: Infinity },
144 { desc: "an infinite duration and zero iteration count",
145 input: { duration: Infinity, iterations: 0 },
146 expected: 0 },
147 { desc: "an infinite duration and fractional iteration count",
148 input: { duration: Infinity, iterations: 2.5 },
149 expected: Infinity },
150 { desc: "an infinite duration and infinite iteration count",
151 input: { duration: Infinity, iterations: Infinity },
152 expected: Infinity },
153 { desc: "an infinite duration and zero iteration count",
154 input: { duration: Infinity, iterations: 0 },
155 expected: 0 },
156 { desc: "a non-zero duration and invalid iteration count",
157 input: { duration: 1000, iterations: "cabbage" },
158 expected: 1000 }
159 ];
160
161 gActiveDurationTests.forEach(function(stest) {
162 test(function(t) {
163 var effect = new KeyframeEffectReadOnly(target,
164 { left: ["10px", "20px"] },
165 stest.input);
166
167 assert_equals(effect.getComputedTiming().activeDuration,
168 stest.expected);
169
170 }, "getComputedTiming().activeDuration for " + stest.desc);
171 });
172
173 var gEndTimeTests = [
174 { desc: "an empty KeyframeEffectOptions object",
175 input: { },
176 expected: 0 },
177 { desc: "a non-zero duration and default iteration count",
178 input: { duration: 1000 },
179 expected: 1000 },
180 { desc: "a non-zero duration and non-default iteration count",
181 input: { duration: 1000, iterations: 2.5 },
182 expected: 2500 },
183 { desc: "a non-zero duration and non-zero delay",
184 input: { duration: 1000, delay: 1500 },
185 expected: 2500 },
186 { desc: "a non-zero duration, non-zero delay and non-default iteration",
187 input: { duration: 1000, delay: 1500, iterations: 2 },
188 expected: 3500 },
189 { desc: "an infinite iteration count",
190 input: { duration: 1000, iterations: Infinity },
191 expected: Infinity },
192 { desc: "an infinite duration",
193 input: { duration: Infinity, iterations: 10 },
194 expected: Infinity },
195 { desc: "an infinite duration and delay",
196 input: { duration: Infinity, iterations: 10, delay: 1000 },
197 expected: Infinity },
198 { desc: "an infinite duration and negative delay",
199 input: { duration: Infinity, iterations: 10, delay: -1000 },
200 expected: Infinity },
201 { desc: "an non-zero duration and negative delay",
202 input: { duration: 1000, iterations: 2, delay: -1000 },
203 expected: 1000 },
204 { desc: "an non-zero duration and negative delay greater than active " +
205 "duration",
206 input: { duration: 1000, iterations: 2, delay: -3000 },
207 expected: -1000 },
208 { desc: "a zero duration and negative delay",
209 input: { duration: 0, iterations: 2, delay: -1000 },
210 expected: -1000 }
211 ];
212
213 gEndTimeTests.forEach(function(stest) {
214 test(function(t) {
215 var effect = new KeyframeEffectReadOnly(target,
216 { left: ["10px", "20px"] },
217 stest.input);
218
219 assert_equals(effect.getComputedTiming().endTime,
220 stest.expected);
221
222 }, "getComputedTiming().endTime for " + stest.desc);
223 });
224
225 done();
226 </script>
227 </body>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698