OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013, Google Inc. All rights reserved. | 2 * Copyright (c) 2013, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 19 matching lines...) Expand all Loading... |
30 | 30 |
31 #include "core/animation/TimingCalculations.h" | 31 #include "core/animation/TimingCalculations.h" |
32 | 32 |
33 #include "testing/gtest/include/gtest/gtest.h" | 33 #include "testing/gtest/include/gtest/gtest.h" |
34 | 34 |
35 namespace blink { | 35 namespace blink { |
36 | 36 |
37 TEST(AnimationTimingCalculationsTest, ActiveTime) { | 37 TEST(AnimationTimingCalculationsTest, ActiveTime) { |
38 Timing timing; | 38 Timing timing; |
39 | 39 |
40 // calculateActiveTime(activeDuration, fillMode, localTime, parentPhase, phase
, timing) | 40 // calculateActiveTime( |
| 41 // activeDuration, fillMode, localTime, parentPhase, phase, timing) |
41 | 42 |
42 // Before Phase | 43 // Before Phase |
43 timing.startDelay = 10; | 44 timing.startDelay = 10; |
44 EXPECT_TRUE(isNull(calculateActiveTime( | 45 EXPECT_TRUE(isNull(calculateActiveTime( |
45 20, Timing::FillMode::FORWARDS, 0, AnimationEffectReadOnly::PhaseActive, | 46 20, Timing::FillMode::FORWARDS, 0, AnimationEffectReadOnly::PhaseActive, |
46 AnimationEffectReadOnly::PhaseBefore, timing))); | 47 AnimationEffectReadOnly::PhaseBefore, timing))); |
47 EXPECT_TRUE(isNull(calculateActiveTime( | 48 EXPECT_TRUE(isNull(calculateActiveTime( |
48 20, Timing::FillMode::NONE, 0, AnimationEffectReadOnly::PhaseActive, | 49 20, Timing::FillMode::NONE, 0, AnimationEffectReadOnly::PhaseActive, |
49 AnimationEffectReadOnly::PhaseBefore, timing))); | 50 AnimationEffectReadOnly::PhaseBefore, timing))); |
50 EXPECT_EQ(0, | 51 EXPECT_EQ(0, |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 timing.playbackRate = -1; | 134 timing.playbackRate = -1; |
134 EXPECT_EQ(std::numeric_limits<double>::infinity(), | 135 EXPECT_EQ(std::numeric_limits<double>::infinity(), |
135 calculateScaledActiveTime(std::numeric_limits<double>::infinity(), | 136 calculateScaledActiveTime(std::numeric_limits<double>::infinity(), |
136 std::numeric_limits<double>::infinity(), | 137 std::numeric_limits<double>::infinity(), |
137 0, timing)); | 138 0, timing)); |
138 } | 139 } |
139 | 140 |
140 TEST(AnimationTimingCalculationsTest, IterationTime) { | 141 TEST(AnimationTimingCalculationsTest, IterationTime) { |
141 Timing timing; | 142 Timing timing; |
142 | 143 |
143 // calculateIterationTime(iterationDuration, repeatedDuration, scaledActiveTim
e, startOffset, phase, timing) | 144 // calculateIterationTime( |
| 145 // iterationDuration, repeatedDuration, scaledActiveTime, startOffset, |
| 146 // phase, timing) |
144 | 147 |
145 // if the scaled active time is null | 148 // if the scaled active time is null |
146 EXPECT_TRUE(isNull(calculateIterationTime( | 149 EXPECT_TRUE(isNull(calculateIterationTime( |
147 1, 1, nullValue(), 1, AnimationEffectReadOnly::PhaseActive, timing))); | 150 1, 1, nullValue(), 1, AnimationEffectReadOnly::PhaseActive, timing))); |
148 | 151 |
149 // if (complex-conditions)... | 152 // if (complex-conditions)... |
150 EXPECT_EQ( | 153 EXPECT_EQ( |
151 12, calculateIterationTime(12, 12, 12, 0, | 154 12, calculateIterationTime(12, 12, 12, 0, |
152 AnimationEffectReadOnly::PhaseActive, timing)); | 155 AnimationEffectReadOnly::PhaseActive, timing)); |
153 | 156 |
154 // otherwise | 157 // otherwise |
155 timing.iterationCount = 10; | 158 timing.iterationCount = 10; |
156 EXPECT_EQ( | 159 EXPECT_EQ( |
157 5, calculateIterationTime(10, 100, 25, 4, | 160 5, calculateIterationTime(10, 100, 25, 4, |
158 AnimationEffectReadOnly::PhaseActive, timing)); | 161 AnimationEffectReadOnly::PhaseActive, timing)); |
159 EXPECT_EQ( | 162 EXPECT_EQ( |
160 7, calculateIterationTime(11, 110, 29, 1, | 163 7, calculateIterationTime(11, 110, 29, 1, |
161 AnimationEffectReadOnly::PhaseActive, timing)); | 164 AnimationEffectReadOnly::PhaseActive, timing)); |
162 timing.iterationStart = 1.1; | 165 timing.iterationStart = 1.1; |
163 EXPECT_EQ( | 166 EXPECT_EQ( |
164 8, calculateIterationTime(12, 120, 20, 7, | 167 8, calculateIterationTime(12, 120, 20, 7, |
165 AnimationEffectReadOnly::PhaseActive, timing)); | 168 AnimationEffectReadOnly::PhaseActive, timing)); |
166 } | 169 } |
167 | 170 |
168 TEST(AnimationTimingCalculationsTest, CurrentIteration) { | 171 TEST(AnimationTimingCalculationsTest, CurrentIteration) { |
169 Timing timing; | 172 Timing timing; |
170 | 173 |
171 // calculateCurrentIteration(iterationDuration, iterationTime, scaledActiveTim
e, timing) | 174 // calculateCurrentIteration( |
| 175 // iterationDuration, iterationTime, scaledActiveTime, timing) |
172 | 176 |
173 // if the scaled active time is null | 177 // if the scaled active time is null |
174 EXPECT_TRUE(isNull(calculateCurrentIteration(1, 1, nullValue(), timing))); | 178 EXPECT_TRUE(isNull(calculateCurrentIteration(1, 1, nullValue(), timing))); |
175 | 179 |
176 // if the scaled active time is zero | 180 // if the scaled active time is zero |
177 EXPECT_EQ(0, calculateCurrentIteration(1, 1, 0, timing)); | 181 EXPECT_EQ(0, calculateCurrentIteration(1, 1, 0, timing)); |
178 | 182 |
179 // if the iteration time equals the iteration duration | 183 // if the iteration time equals the iteration duration |
180 timing.iterationStart = 4; | 184 timing.iterationStart = 4; |
181 timing.iterationCount = 7; | 185 timing.iterationCount = 7; |
182 EXPECT_EQ(10, calculateCurrentIteration(5, 5, 9, timing)); | 186 EXPECT_EQ(10, calculateCurrentIteration(5, 5, 9, timing)); |
183 | 187 |
184 // otherwise | 188 // otherwise |
185 EXPECT_EQ(3, calculateCurrentIteration(3.2, 3.1, 10, timing)); | 189 EXPECT_EQ(3, calculateCurrentIteration(3.2, 3.1, 10, timing)); |
186 } | 190 } |
187 | 191 |
188 TEST(AnimationTimingCalculationsTest, DirectedTime) { | 192 TEST(AnimationTimingCalculationsTest, DirectedTime) { |
189 Timing timing; | 193 Timing timing; |
190 | 194 |
191 // calculateDirectedTime(currentIteration, iterationDuration, iterationTime, t
iming) | 195 // calculateDirectedTime( |
| 196 // currentIteration, iterationDuration, iterationTime, timing) |
192 | 197 |
193 // if the iteration time is null | 198 // if the iteration time is null |
194 EXPECT_TRUE(isNull(calculateDirectedTime(1, 2, nullValue(), timing))); | 199 EXPECT_TRUE(isNull(calculateDirectedTime(1, 2, nullValue(), timing))); |
195 | 200 |
196 // forwards | 201 // forwards |
197 EXPECT_EQ(17, calculateDirectedTime(0, 20, 17, timing)); | 202 EXPECT_EQ(17, calculateDirectedTime(0, 20, 17, timing)); |
198 EXPECT_EQ(17, calculateDirectedTime(1, 20, 17, timing)); | 203 EXPECT_EQ(17, calculateDirectedTime(1, 20, 17, timing)); |
199 timing.direction = Timing::PlaybackDirection::ALTERNATE_NORMAL; | 204 timing.direction = Timing::PlaybackDirection::ALTERNATE_NORMAL; |
200 EXPECT_EQ(17, calculateDirectedTime(0, 20, 17, timing)); | 205 EXPECT_EQ(17, calculateDirectedTime(0, 20, 17, timing)); |
201 EXPECT_EQ(17, calculateDirectedTime(2, 20, 17, timing)); | 206 EXPECT_EQ(17, calculateDirectedTime(2, 20, 17, timing)); |
202 timing.direction = Timing::PlaybackDirection::ALTERNATE_REVERSE; | 207 timing.direction = Timing::PlaybackDirection::ALTERNATE_REVERSE; |
203 EXPECT_EQ(17, calculateDirectedTime(1, 20, 17, timing)); | 208 EXPECT_EQ(17, calculateDirectedTime(1, 20, 17, timing)); |
204 EXPECT_EQ(17, calculateDirectedTime(3, 20, 17, timing)); | 209 EXPECT_EQ(17, calculateDirectedTime(3, 20, 17, timing)); |
205 | 210 |
206 // reverse | 211 // reverse |
207 timing.direction = Timing::PlaybackDirection::REVERSE; | 212 timing.direction = Timing::PlaybackDirection::REVERSE; |
208 EXPECT_EQ(3, calculateDirectedTime(0, 20, 17, timing)); | 213 EXPECT_EQ(3, calculateDirectedTime(0, 20, 17, timing)); |
209 EXPECT_EQ(3, calculateDirectedTime(1, 20, 17, timing)); | 214 EXPECT_EQ(3, calculateDirectedTime(1, 20, 17, timing)); |
210 timing.direction = Timing::PlaybackDirection::ALTERNATE_NORMAL; | 215 timing.direction = Timing::PlaybackDirection::ALTERNATE_NORMAL; |
211 EXPECT_EQ(3, calculateDirectedTime(1, 20, 17, timing)); | 216 EXPECT_EQ(3, calculateDirectedTime(1, 20, 17, timing)); |
212 EXPECT_EQ(3, calculateDirectedTime(3, 20, 17, timing)); | 217 EXPECT_EQ(3, calculateDirectedTime(3, 20, 17, timing)); |
213 timing.direction = Timing::PlaybackDirection::ALTERNATE_REVERSE; | 218 timing.direction = Timing::PlaybackDirection::ALTERNATE_REVERSE; |
214 EXPECT_EQ(3, calculateDirectedTime(0, 20, 17, timing)); | 219 EXPECT_EQ(3, calculateDirectedTime(0, 20, 17, timing)); |
215 EXPECT_EQ(3, calculateDirectedTime(2, 20, 17, timing)); | 220 EXPECT_EQ(3, calculateDirectedTime(2, 20, 17, timing)); |
216 } | 221 } |
217 | 222 |
218 TEST(AnimationTimingCalculationsTest, TransformedTime) { | 223 TEST(AnimationTimingCalculationsTest, TransformedTime) { |
219 Timing timing; | 224 Timing timing; |
220 | 225 |
221 // calculateTransformedTime(currentIteration, iterationDuration, iterationTime
, timing) | 226 // calculateTransformedTime( |
| 227 // currentIteration, iterationDuration, iterationTime, timing) |
222 | 228 |
223 // Iteration time is null | 229 // Iteration time is null |
224 EXPECT_TRUE(isNull(calculateTransformedTime(1, 2, nullValue(), timing))); | 230 EXPECT_TRUE(isNull(calculateTransformedTime(1, 2, nullValue(), timing))); |
225 | 231 |
226 // PlaybackDirectionForwards | 232 // PlaybackDirectionForwards |
227 EXPECT_EQ(12, calculateTransformedTime(0, 20, 12, timing)); | 233 EXPECT_EQ(12, calculateTransformedTime(0, 20, 12, timing)); |
228 EXPECT_EQ(12, calculateTransformedTime(1, 20, 12, timing)); | 234 EXPECT_EQ(12, calculateTransformedTime(1, 20, 12, timing)); |
229 | 235 |
230 // PlaybackDirectionForwards with timing function | 236 // PlaybackDirectionForwards with timing function |
231 timing.timingFunction = | 237 timing.timingFunction = |
(...skipping 25 matching lines...) Expand all Loading... |
257 timing.direction = Timing::PlaybackDirection::REVERSE; | 263 timing.direction = Timing::PlaybackDirection::REVERSE; |
258 EXPECT_EQ(std::numeric_limits<double>::infinity(), | 264 EXPECT_EQ(std::numeric_limits<double>::infinity(), |
259 calculateTransformedTime(0, std::numeric_limits<double>::infinity(), | 265 calculateTransformedTime(0, std::numeric_limits<double>::infinity(), |
260 0, timing)); | 266 0, timing)); |
261 EXPECT_EQ(std::numeric_limits<double>::infinity(), | 267 EXPECT_EQ(std::numeric_limits<double>::infinity(), |
262 calculateTransformedTime(0, std::numeric_limits<double>::infinity(), | 268 calculateTransformedTime(0, std::numeric_limits<double>::infinity(), |
263 1, timing)); | 269 1, timing)); |
264 } | 270 } |
265 | 271 |
266 } // namespace blink | 272 } // namespace blink |
OLD | NEW |