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

Side by Side Diff: third_party/WebKit/Source/core/animation/AnimationEffectReadOnlyTest.cpp

Issue 2236583003: Rename AnimationEffect to AnimationEffectReadOnly (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@deprecated-assert
Patch Set: Rebase Created 4 years, 4 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
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 10 matching lines...) Expand all
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #include "core/animation/AnimationEffect.h" 31 #include "core/animation/AnimationEffectReadOnly.h"
32 32
33 #include "core/animation/ComputedTimingProperties.h" 33 #include "core/animation/ComputedTimingProperties.h"
34 #include "testing/gtest/include/gtest/gtest.h" 34 #include "testing/gtest/include/gtest/gtest.h"
35 35
36 namespace blink { 36 namespace blink {
37 37
38 class TestAnimationEffectEventDelegate : public AnimationEffect::EventDelegate { 38 class TestAnimationEffectEventDelegate : public AnimationEffectReadOnly::EventDe legate {
39 public: 39 public:
40 void onEventCondition(const AnimationEffect& animationNode) override 40 void onEventCondition(const AnimationEffectReadOnly& animationNode) override
41 { 41 {
42 m_eventTriggered = true; 42 m_eventTriggered = true;
43 43
44 } 44 }
45 bool requiresIterationEvents(const AnimationEffect& animationNode) override 45 bool requiresIterationEvents(const AnimationEffectReadOnly& animationNode) o verride
46 { 46 {
47 return true; 47 return true;
48 } 48 }
49 void reset() 49 void reset()
50 { 50 {
51 m_eventTriggered = false; 51 m_eventTriggered = false;
52 } 52 }
53 bool eventTriggered() { return m_eventTriggered; } 53 bool eventTriggered() { return m_eventTriggered; }
54 54
55 private: 55 private:
56 bool m_eventTriggered; 56 bool m_eventTriggered;
57 }; 57 };
58 58
59 class TestAnimationEffect : public AnimationEffect { 59 class TestAnimationEffectReadOnly : public AnimationEffectReadOnly {
60 public: 60 public:
61 static TestAnimationEffect* create(const Timing& specified) 61 static TestAnimationEffectReadOnly* create(const Timing& specified)
62 { 62 {
63 return new TestAnimationEffect(specified, new TestAnimationEffectEventDe legate()); 63 return new TestAnimationEffectReadOnly(specified, new TestAnimationEffec tEventDelegate());
64 } 64 }
65 65
66 void updateInheritedTime(double time) 66 void updateInheritedTime(double time)
67 { 67 {
68 updateInheritedTime(time, TimingUpdateForAnimationFrame); 68 updateInheritedTime(time, TimingUpdateForAnimationFrame);
69 } 69 }
70 70
71 void updateInheritedTime(double time, TimingUpdateReason reason) 71 void updateInheritedTime(double time, TimingUpdateReason reason)
72 { 72 {
73 m_eventDelegate->reset(); 73 m_eventDelegate->reset();
74 AnimationEffect::updateInheritedTime(time, reason); 74 AnimationEffectReadOnly::updateInheritedTime(time, reason);
75 } 75 }
76 76
77 void updateChildrenAndEffects() const override { } 77 void updateChildrenAndEffects() const override { }
78 void willDetach() { } 78 void willDetach() { }
79 TestAnimationEffectEventDelegate* eventDelegate() { return m_eventDelegate.g et(); } 79 TestAnimationEffectEventDelegate* eventDelegate() { return m_eventDelegate.g et(); }
80 double calculateTimeToEffectChange(bool forwards, double localTime, double t imeToNextIteration) const override 80 double calculateTimeToEffectChange(bool forwards, double localTime, double t imeToNextIteration) const override
81 { 81 {
82 m_localTime = localTime; 82 m_localTime = localTime;
83 m_timeToNextIteration = timeToNextIteration; 83 m_timeToNextIteration = timeToNextIteration;
84 return -1; 84 return -1;
85 } 85 }
86 double takeLocalTime() 86 double takeLocalTime()
87 { 87 {
88 const double result = m_localTime; 88 const double result = m_localTime;
89 m_localTime = nullValue(); 89 m_localTime = nullValue();
90 return result; 90 return result;
91 } 91 }
92 92
93 double takeTimeToNextIteration() 93 double takeTimeToNextIteration()
94 { 94 {
95 const double result = m_timeToNextIteration; 95 const double result = m_timeToNextIteration;
96 m_timeToNextIteration = nullValue(); 96 m_timeToNextIteration = nullValue();
97 return result; 97 return result;
98 } 98 }
99 99
100 DEFINE_INLINE_VIRTUAL_TRACE() 100 DEFINE_INLINE_VIRTUAL_TRACE()
101 { 101 {
102 visitor->trace(m_eventDelegate); 102 visitor->trace(m_eventDelegate);
103 AnimationEffect::trace(visitor); 103 AnimationEffectReadOnly::trace(visitor);
104 } 104 }
105 105
106 private: 106 private:
107 TestAnimationEffect(const Timing& specified, TestAnimationEffectEventDelegat e* eventDelegate) 107 TestAnimationEffectReadOnly(const Timing& specified, TestAnimationEffectEven tDelegate* eventDelegate)
108 : AnimationEffect(specified, eventDelegate) 108 : AnimationEffectReadOnly(specified, eventDelegate)
109 , m_eventDelegate(eventDelegate) 109 , m_eventDelegate(eventDelegate)
110 { 110 {
111 } 111 }
112 112
113 Member<TestAnimationEffectEventDelegate> m_eventDelegate; 113 Member<TestAnimationEffectEventDelegate> m_eventDelegate;
114 mutable double m_localTime; 114 mutable double m_localTime;
115 mutable double m_timeToNextIteration; 115 mutable double m_timeToNextIteration;
116 }; 116 };
117 117
118 TEST(AnimationAnimationEffectTest, Sanity) 118 TEST(AnimationAnimationEffectReadOnlyTest, Sanity)
119 { 119 {
120 Timing timing; 120 Timing timing;
121 timing.iterationDuration = 2; 121 timing.iterationDuration = 2;
122 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 122 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
123 123
124 animationNode->updateInheritedTime(0); 124 animationNode->updateInheritedTime(0);
125 125
126 EXPECT_EQ(AnimationEffect::PhaseActive, animationNode->getPhase()); 126 EXPECT_EQ(AnimationEffectReadOnly::PhaseActive, animationNode->getPhase());
127 EXPECT_TRUE(animationNode->isInPlay()); 127 EXPECT_TRUE(animationNode->isInPlay());
128 EXPECT_TRUE(animationNode->isCurrent()); 128 EXPECT_TRUE(animationNode->isCurrent());
129 EXPECT_TRUE(animationNode->isInEffect()); 129 EXPECT_TRUE(animationNode->isInEffect());
130 EXPECT_EQ(0, animationNode->currentIteration()); 130 EXPECT_EQ(0, animationNode->currentIteration());
131 EXPECT_EQ(2, animationNode->activeDurationInternal()); 131 EXPECT_EQ(2, animationNode->activeDurationInternal());
132 EXPECT_EQ(0, animationNode->progress()); 132 EXPECT_EQ(0, animationNode->progress());
133 133
134 animationNode->updateInheritedTime(1); 134 animationNode->updateInheritedTime(1);
135 135
136 EXPECT_EQ(AnimationEffect::PhaseActive, animationNode->getPhase()); 136 EXPECT_EQ(AnimationEffectReadOnly::PhaseActive, animationNode->getPhase());
137 EXPECT_TRUE(animationNode->isInPlay()); 137 EXPECT_TRUE(animationNode->isInPlay());
138 EXPECT_TRUE(animationNode->isCurrent()); 138 EXPECT_TRUE(animationNode->isCurrent());
139 EXPECT_TRUE(animationNode->isInEffect()); 139 EXPECT_TRUE(animationNode->isInEffect());
140 EXPECT_EQ(0, animationNode->currentIteration()); 140 EXPECT_EQ(0, animationNode->currentIteration());
141 EXPECT_EQ(2, animationNode->activeDurationInternal()); 141 EXPECT_EQ(2, animationNode->activeDurationInternal());
142 EXPECT_EQ(0.5, animationNode->progress()); 142 EXPECT_EQ(0.5, animationNode->progress());
143 143
144 animationNode->updateInheritedTime(2); 144 animationNode->updateInheritedTime(2);
145 145
146 EXPECT_EQ(AnimationEffect::PhaseAfter, animationNode->getPhase()); 146 EXPECT_EQ(AnimationEffectReadOnly::PhaseAfter, animationNode->getPhase());
147 EXPECT_FALSE(animationNode->isInPlay()); 147 EXPECT_FALSE(animationNode->isInPlay());
148 EXPECT_FALSE(animationNode->isCurrent()); 148 EXPECT_FALSE(animationNode->isCurrent());
149 EXPECT_TRUE(animationNode->isInEffect()); 149 EXPECT_TRUE(animationNode->isInEffect());
150 EXPECT_EQ(0, animationNode->currentIteration()); 150 EXPECT_EQ(0, animationNode->currentIteration());
151 EXPECT_EQ(2, animationNode->activeDurationInternal()); 151 EXPECT_EQ(2, animationNode->activeDurationInternal());
152 EXPECT_EQ(1, animationNode->progress()); 152 EXPECT_EQ(1, animationNode->progress());
153 153
154 animationNode->updateInheritedTime(3); 154 animationNode->updateInheritedTime(3);
155 155
156 EXPECT_EQ(AnimationEffect::PhaseAfter, animationNode->getPhase()); 156 EXPECT_EQ(AnimationEffectReadOnly::PhaseAfter, animationNode->getPhase());
157 EXPECT_FALSE(animationNode->isInPlay()); 157 EXPECT_FALSE(animationNode->isInPlay());
158 EXPECT_FALSE(animationNode->isCurrent()); 158 EXPECT_FALSE(animationNode->isCurrent());
159 EXPECT_TRUE(animationNode->isInEffect()); 159 EXPECT_TRUE(animationNode->isInEffect());
160 EXPECT_EQ(0, animationNode->currentIteration()); 160 EXPECT_EQ(0, animationNode->currentIteration());
161 EXPECT_EQ(2, animationNode->activeDurationInternal()); 161 EXPECT_EQ(2, animationNode->activeDurationInternal());
162 EXPECT_EQ(1, animationNode->progress()); 162 EXPECT_EQ(1, animationNode->progress());
163 } 163 }
164 164
165 TEST(AnimationAnimationEffectTest, FillAuto) 165 TEST(AnimationAnimationEffectReadOnlyTest, FillAuto)
166 { 166 {
167 Timing timing; 167 Timing timing;
168 timing.iterationDuration = 1; 168 timing.iterationDuration = 1;
169 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 169 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
170 170
171 animationNode->updateInheritedTime(-1); 171 animationNode->updateInheritedTime(-1);
172 EXPECT_EQ(0, animationNode->progress()); 172 EXPECT_EQ(0, animationNode->progress());
173 173
174 animationNode->updateInheritedTime(2); 174 animationNode->updateInheritedTime(2);
175 EXPECT_EQ(1, animationNode->progress()); 175 EXPECT_EQ(1, animationNode->progress());
176 } 176 }
177 177
178 TEST(AnimationAnimationEffectTest, FillForwards) 178 TEST(AnimationAnimationEffectReadOnlyTest, FillForwards)
179 { 179 {
180 Timing timing; 180 Timing timing;
181 timing.iterationDuration = 1; 181 timing.iterationDuration = 1;
182 timing.fillMode = Timing::FillMode::FORWARDS; 182 timing.fillMode = Timing::FillMode::FORWARDS;
183 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 183 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
184 184
185 animationNode->updateInheritedTime(-1); 185 animationNode->updateInheritedTime(-1);
186 EXPECT_TRUE(isNull(animationNode->progress())); 186 EXPECT_TRUE(isNull(animationNode->progress()));
187 187
188 animationNode->updateInheritedTime(2); 188 animationNode->updateInheritedTime(2);
189 EXPECT_EQ(1, animationNode->progress()); 189 EXPECT_EQ(1, animationNode->progress());
190 } 190 }
191 191
192 TEST(AnimationAnimationEffectTest, FillBackwards) 192 TEST(AnimationAnimationEffectReadOnlyTest, FillBackwards)
193 { 193 {
194 Timing timing; 194 Timing timing;
195 timing.iterationDuration = 1; 195 timing.iterationDuration = 1;
196 timing.fillMode = Timing::FillMode::BACKWARDS; 196 timing.fillMode = Timing::FillMode::BACKWARDS;
197 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 197 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
198 198
199 animationNode->updateInheritedTime(-1); 199 animationNode->updateInheritedTime(-1);
200 EXPECT_EQ(0, animationNode->progress()); 200 EXPECT_EQ(0, animationNode->progress());
201 201
202 animationNode->updateInheritedTime(2); 202 animationNode->updateInheritedTime(2);
203 EXPECT_TRUE(isNull(animationNode->progress())); 203 EXPECT_TRUE(isNull(animationNode->progress()));
204 } 204 }
205 205
206 TEST(AnimationAnimationEffectTest, FillBoth) 206 TEST(AnimationAnimationEffectReadOnlyTest, FillBoth)
207 { 207 {
208 Timing timing; 208 Timing timing;
209 timing.iterationDuration = 1; 209 timing.iterationDuration = 1;
210 timing.fillMode = Timing::FillMode::BOTH; 210 timing.fillMode = Timing::FillMode::BOTH;
211 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 211 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
212 212
213 animationNode->updateInheritedTime(-1); 213 animationNode->updateInheritedTime(-1);
214 EXPECT_EQ(0, animationNode->progress()); 214 EXPECT_EQ(0, animationNode->progress());
215 215
216 animationNode->updateInheritedTime(2); 216 animationNode->updateInheritedTime(2);
217 EXPECT_EQ(1, animationNode->progress()); 217 EXPECT_EQ(1, animationNode->progress());
218 } 218 }
219 219
220 TEST(AnimationAnimationEffectTest, StartDelay) 220 TEST(AnimationAnimationEffectReadOnlyTest, StartDelay)
221 { 221 {
222 Timing timing; 222 Timing timing;
223 timing.iterationDuration = 1; 223 timing.iterationDuration = 1;
224 timing.fillMode = Timing::FillMode::FORWARDS; 224 timing.fillMode = Timing::FillMode::FORWARDS;
225 timing.startDelay = 0.5; 225 timing.startDelay = 0.5;
226 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 226 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
227 227
228 animationNode->updateInheritedTime(0); 228 animationNode->updateInheritedTime(0);
229 EXPECT_TRUE(isNull(animationNode->progress())); 229 EXPECT_TRUE(isNull(animationNode->progress()));
230 230
231 animationNode->updateInheritedTime(0.5); 231 animationNode->updateInheritedTime(0.5);
232 EXPECT_EQ(0, animationNode->progress()); 232 EXPECT_EQ(0, animationNode->progress());
233 233
234 animationNode->updateInheritedTime(1.5); 234 animationNode->updateInheritedTime(1.5);
235 EXPECT_EQ(1, animationNode->progress()); 235 EXPECT_EQ(1, animationNode->progress());
236 } 236 }
237 237
238 TEST(AnimationAnimationEffectTest, ZeroIteration) 238 TEST(AnimationAnimationEffectReadOnlyTest, ZeroIteration)
239 { 239 {
240 Timing timing; 240 Timing timing;
241 timing.iterationDuration = 1; 241 timing.iterationDuration = 1;
242 timing.fillMode = Timing::FillMode::FORWARDS; 242 timing.fillMode = Timing::FillMode::FORWARDS;
243 timing.iterationCount = 0; 243 timing.iterationCount = 0;
244 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 244 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
245 245
246 animationNode->updateInheritedTime(-1); 246 animationNode->updateInheritedTime(-1);
247 EXPECT_EQ(0, animationNode->activeDurationInternal()); 247 EXPECT_EQ(0, animationNode->activeDurationInternal());
248 EXPECT_TRUE(isNull(animationNode->currentIteration())); 248 EXPECT_TRUE(isNull(animationNode->currentIteration()));
249 EXPECT_TRUE(isNull(animationNode->progress())); 249 EXPECT_TRUE(isNull(animationNode->progress()));
250 250
251 animationNode->updateInheritedTime(0); 251 animationNode->updateInheritedTime(0);
252 EXPECT_EQ(0, animationNode->activeDurationInternal()); 252 EXPECT_EQ(0, animationNode->activeDurationInternal());
253 EXPECT_EQ(0, animationNode->currentIteration()); 253 EXPECT_EQ(0, animationNode->currentIteration());
254 EXPECT_EQ(0, animationNode->progress()); 254 EXPECT_EQ(0, animationNode->progress());
255 } 255 }
256 256
257 TEST(AnimationAnimationEffectTest, InfiniteIteration) 257 TEST(AnimationAnimationEffectReadOnlyTest, InfiniteIteration)
258 { 258 {
259 Timing timing; 259 Timing timing;
260 timing.iterationDuration = 1; 260 timing.iterationDuration = 1;
261 timing.fillMode = Timing::FillMode::FORWARDS; 261 timing.fillMode = Timing::FillMode::FORWARDS;
262 timing.iterationCount = std::numeric_limits<double>::infinity(); 262 timing.iterationCount = std::numeric_limits<double>::infinity();
263 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 263 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
264 264
265 animationNode->updateInheritedTime(-1); 265 animationNode->updateInheritedTime(-1);
266 EXPECT_TRUE(isNull(animationNode->currentIteration())); 266 EXPECT_TRUE(isNull(animationNode->currentIteration()));
267 EXPECT_TRUE(isNull(animationNode->progress())); 267 EXPECT_TRUE(isNull(animationNode->progress()));
268 268
269 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->activeDura tionInternal()); 269 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->activeDura tionInternal());
270 270
271 animationNode->updateInheritedTime(0); 271 animationNode->updateInheritedTime(0);
272 EXPECT_EQ(0, animationNode->currentIteration()); 272 EXPECT_EQ(0, animationNode->currentIteration());
273 EXPECT_EQ(0, animationNode->progress()); 273 EXPECT_EQ(0, animationNode->progress());
274 } 274 }
275 275
276 TEST(AnimationAnimationEffectTest, Iteration) 276 TEST(AnimationAnimationEffectReadOnlyTest, Iteration)
277 { 277 {
278 Timing timing; 278 Timing timing;
279 timing.iterationCount = 2; 279 timing.iterationCount = 2;
280 timing.iterationDuration = 2; 280 timing.iterationDuration = 2;
281 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 281 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
282 282
283 animationNode->updateInheritedTime(0); 283 animationNode->updateInheritedTime(0);
284 EXPECT_EQ(0, animationNode->currentIteration()); 284 EXPECT_EQ(0, animationNode->currentIteration());
285 EXPECT_EQ(0, animationNode->progress()); 285 EXPECT_EQ(0, animationNode->progress());
286 286
287 animationNode->updateInheritedTime(1); 287 animationNode->updateInheritedTime(1);
288 EXPECT_EQ(0, animationNode->currentIteration()); 288 EXPECT_EQ(0, animationNode->currentIteration());
289 EXPECT_EQ(0.5, animationNode->progress()); 289 EXPECT_EQ(0.5, animationNode->progress());
290 290
291 animationNode->updateInheritedTime(2); 291 animationNode->updateInheritedTime(2);
292 EXPECT_EQ(1, animationNode->currentIteration()); 292 EXPECT_EQ(1, animationNode->currentIteration());
293 EXPECT_EQ(0, animationNode->progress()); 293 EXPECT_EQ(0, animationNode->progress());
294 294
295 animationNode->updateInheritedTime(2); 295 animationNode->updateInheritedTime(2);
296 EXPECT_EQ(1, animationNode->currentIteration()); 296 EXPECT_EQ(1, animationNode->currentIteration());
297 EXPECT_EQ(0, animationNode->progress()); 297 EXPECT_EQ(0, animationNode->progress());
298 298
299 animationNode->updateInheritedTime(5); 299 animationNode->updateInheritedTime(5);
300 EXPECT_EQ(1, animationNode->currentIteration()); 300 EXPECT_EQ(1, animationNode->currentIteration());
301 EXPECT_EQ(1, animationNode->progress()); 301 EXPECT_EQ(1, animationNode->progress());
302 } 302 }
303 303
304 TEST(AnimationAnimationEffectTest, IterationStart) 304 TEST(AnimationAnimationEffectReadOnlyTest, IterationStart)
305 { 305 {
306 Timing timing; 306 Timing timing;
307 timing.iterationStart = 1.2; 307 timing.iterationStart = 1.2;
308 timing.iterationCount = 2.2; 308 timing.iterationCount = 2.2;
309 timing.iterationDuration = 1; 309 timing.iterationDuration = 1;
310 timing.fillMode = Timing::FillMode::BOTH; 310 timing.fillMode = Timing::FillMode::BOTH;
311 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 311 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
312 312
313 animationNode->updateInheritedTime(-1); 313 animationNode->updateInheritedTime(-1);
314 EXPECT_EQ(1, animationNode->currentIteration()); 314 EXPECT_EQ(1, animationNode->currentIteration());
315 EXPECT_NEAR(0.2, animationNode->progress(), 0.000000000000001); 315 EXPECT_NEAR(0.2, animationNode->progress(), 0.000000000000001);
316 316
317 animationNode->updateInheritedTime(0); 317 animationNode->updateInheritedTime(0);
318 EXPECT_EQ(1, animationNode->currentIteration()); 318 EXPECT_EQ(1, animationNode->currentIteration());
319 EXPECT_NEAR(0.2, animationNode->progress(), 0.000000000000001); 319 EXPECT_NEAR(0.2, animationNode->progress(), 0.000000000000001);
320 320
321 animationNode->updateInheritedTime(10); 321 animationNode->updateInheritedTime(10);
322 EXPECT_EQ(3, animationNode->currentIteration()); 322 EXPECT_EQ(3, animationNode->currentIteration());
323 EXPECT_NEAR(0.4, animationNode->progress(), 0.000000000000001); 323 EXPECT_NEAR(0.4, animationNode->progress(), 0.000000000000001);
324 } 324 }
325 325
326 TEST(AnimationAnimationEffectTest, IterationAlternate) 326 TEST(AnimationAnimationEffectReadOnlyTest, IterationAlternate)
327 { 327 {
328 Timing timing; 328 Timing timing;
329 timing.iterationCount = 10; 329 timing.iterationCount = 10;
330 timing.iterationDuration = 1; 330 timing.iterationDuration = 1;
331 timing.direction = Timing::PlaybackDirection::ALTERNATE_NORMAL; 331 timing.direction = Timing::PlaybackDirection::ALTERNATE_NORMAL;
332 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 332 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
333 333
334 animationNode->updateInheritedTime(0.75); 334 animationNode->updateInheritedTime(0.75);
335 EXPECT_EQ(0, animationNode->currentIteration()); 335 EXPECT_EQ(0, animationNode->currentIteration());
336 EXPECT_EQ(0.75, animationNode->progress()); 336 EXPECT_EQ(0.75, animationNode->progress());
337 337
338 animationNode->updateInheritedTime(1.75); 338 animationNode->updateInheritedTime(1.75);
339 EXPECT_EQ(1, animationNode->currentIteration()); 339 EXPECT_EQ(1, animationNode->currentIteration());
340 EXPECT_EQ(0.25, animationNode->progress()); 340 EXPECT_EQ(0.25, animationNode->progress());
341 341
342 animationNode->updateInheritedTime(2.75); 342 animationNode->updateInheritedTime(2.75);
343 EXPECT_EQ(2, animationNode->currentIteration()); 343 EXPECT_EQ(2, animationNode->currentIteration());
344 EXPECT_EQ(0.75, animationNode->progress()); 344 EXPECT_EQ(0.75, animationNode->progress());
345 } 345 }
346 346
347 TEST(AnimationAnimationEffectTest, IterationAlternateReverse) 347 TEST(AnimationAnimationEffectReadOnlyTest, IterationAlternateReverse)
348 { 348 {
349 Timing timing; 349 Timing timing;
350 timing.iterationCount = 10; 350 timing.iterationCount = 10;
351 timing.iterationDuration = 1; 351 timing.iterationDuration = 1;
352 timing.direction = Timing::PlaybackDirection::ALTERNATE_REVERSE; 352 timing.direction = Timing::PlaybackDirection::ALTERNATE_REVERSE;
353 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 353 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
354 354
355 animationNode->updateInheritedTime(0.75); 355 animationNode->updateInheritedTime(0.75);
356 EXPECT_EQ(0, animationNode->currentIteration()); 356 EXPECT_EQ(0, animationNode->currentIteration());
357 EXPECT_EQ(0.25, animationNode->progress()); 357 EXPECT_EQ(0.25, animationNode->progress());
358 358
359 animationNode->updateInheritedTime(1.75); 359 animationNode->updateInheritedTime(1.75);
360 EXPECT_EQ(1, animationNode->currentIteration()); 360 EXPECT_EQ(1, animationNode->currentIteration());
361 EXPECT_EQ(0.75, animationNode->progress()); 361 EXPECT_EQ(0.75, animationNode->progress());
362 362
363 animationNode->updateInheritedTime(2.75); 363 animationNode->updateInheritedTime(2.75);
364 EXPECT_EQ(2, animationNode->currentIteration()); 364 EXPECT_EQ(2, animationNode->currentIteration());
365 EXPECT_EQ(0.25, animationNode->progress()); 365 EXPECT_EQ(0.25, animationNode->progress());
366 } 366 }
367 367
368 TEST(AnimationAnimationEffectTest, ZeroDurationSanity) 368 TEST(AnimationAnimationEffectReadOnlyTest, ZeroDurationSanity)
369 { 369 {
370 Timing timing; 370 Timing timing;
371 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 371 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
372 372
373 animationNode->updateInheritedTime(0); 373 animationNode->updateInheritedTime(0);
374 374
375 EXPECT_EQ(AnimationEffect::PhaseAfter, animationNode->getPhase()); 375 EXPECT_EQ(AnimationEffectReadOnly::PhaseAfter, animationNode->getPhase());
376 EXPECT_FALSE(animationNode->isInPlay()); 376 EXPECT_FALSE(animationNode->isInPlay());
377 EXPECT_FALSE(animationNode->isCurrent()); 377 EXPECT_FALSE(animationNode->isCurrent());
378 EXPECT_TRUE(animationNode->isInEffect()); 378 EXPECT_TRUE(animationNode->isInEffect());
379 EXPECT_EQ(0, animationNode->currentIteration()); 379 EXPECT_EQ(0, animationNode->currentIteration());
380 EXPECT_EQ(0, animationNode->activeDurationInternal()); 380 EXPECT_EQ(0, animationNode->activeDurationInternal());
381 EXPECT_EQ(1, animationNode->progress()); 381 EXPECT_EQ(1, animationNode->progress());
382 382
383 animationNode->updateInheritedTime(1); 383 animationNode->updateInheritedTime(1);
384 384
385 EXPECT_EQ(AnimationEffect::PhaseAfter, animationNode->getPhase()); 385 EXPECT_EQ(AnimationEffectReadOnly::PhaseAfter, animationNode->getPhase());
386 EXPECT_FALSE(animationNode->isInPlay()); 386 EXPECT_FALSE(animationNode->isInPlay());
387 EXPECT_FALSE(animationNode->isCurrent()); 387 EXPECT_FALSE(animationNode->isCurrent());
388 EXPECT_TRUE(animationNode->isInEffect()); 388 EXPECT_TRUE(animationNode->isInEffect());
389 EXPECT_EQ(0, animationNode->currentIteration()); 389 EXPECT_EQ(0, animationNode->currentIteration());
390 EXPECT_EQ(0, animationNode->activeDurationInternal()); 390 EXPECT_EQ(0, animationNode->activeDurationInternal());
391 EXPECT_EQ(1, animationNode->progress()); 391 EXPECT_EQ(1, animationNode->progress());
392 } 392 }
393 393
394 TEST(AnimationAnimationEffectTest, ZeroDurationFillForwards) 394 TEST(AnimationAnimationEffectReadOnlyTest, ZeroDurationFillForwards)
395 { 395 {
396 Timing timing; 396 Timing timing;
397 timing.fillMode = Timing::FillMode::FORWARDS; 397 timing.fillMode = Timing::FillMode::FORWARDS;
398 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 398 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
399 399
400 animationNode->updateInheritedTime(-1); 400 animationNode->updateInheritedTime(-1);
401 EXPECT_TRUE(isNull(animationNode->progress())); 401 EXPECT_TRUE(isNull(animationNode->progress()));
402 402
403 animationNode->updateInheritedTime(0); 403 animationNode->updateInheritedTime(0);
404 EXPECT_EQ(1, animationNode->progress()); 404 EXPECT_EQ(1, animationNode->progress());
405 405
406 animationNode->updateInheritedTime(1); 406 animationNode->updateInheritedTime(1);
407 EXPECT_EQ(1, animationNode->progress()); 407 EXPECT_EQ(1, animationNode->progress());
408 } 408 }
409 409
410 TEST(AnimationAnimationEffectTest, ZeroDurationFillBackwards) 410 TEST(AnimationAnimationEffectReadOnlyTest, ZeroDurationFillBackwards)
411 { 411 {
412 Timing timing; 412 Timing timing;
413 timing.fillMode = Timing::FillMode::BACKWARDS; 413 timing.fillMode = Timing::FillMode::BACKWARDS;
414 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 414 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
415 415
416 animationNode->updateInheritedTime(-1); 416 animationNode->updateInheritedTime(-1);
417 EXPECT_EQ(0, animationNode->progress()); 417 EXPECT_EQ(0, animationNode->progress());
418 418
419 animationNode->updateInheritedTime(0); 419 animationNode->updateInheritedTime(0);
420 EXPECT_TRUE(isNull(animationNode->progress())); 420 EXPECT_TRUE(isNull(animationNode->progress()));
421 421
422 animationNode->updateInheritedTime(1); 422 animationNode->updateInheritedTime(1);
423 EXPECT_TRUE(isNull(animationNode->progress())); 423 EXPECT_TRUE(isNull(animationNode->progress()));
424 } 424 }
425 425
426 TEST(AnimationAnimationEffectTest, ZeroDurationFillBoth) 426 TEST(AnimationAnimationEffectReadOnlyTest, ZeroDurationFillBoth)
427 { 427 {
428 Timing timing; 428 Timing timing;
429 timing.fillMode = Timing::FillMode::BOTH; 429 timing.fillMode = Timing::FillMode::BOTH;
430 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 430 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
431 431
432 animationNode->updateInheritedTime(-1); 432 animationNode->updateInheritedTime(-1);
433 EXPECT_EQ(0, animationNode->progress()); 433 EXPECT_EQ(0, animationNode->progress());
434 434
435 animationNode->updateInheritedTime(0); 435 animationNode->updateInheritedTime(0);
436 EXPECT_EQ(1, animationNode->progress()); 436 EXPECT_EQ(1, animationNode->progress());
437 437
438 animationNode->updateInheritedTime(1); 438 animationNode->updateInheritedTime(1);
439 EXPECT_EQ(1, animationNode->progress()); 439 EXPECT_EQ(1, animationNode->progress());
440 } 440 }
441 441
442 TEST(AnimationAnimationEffectTest, ZeroDurationStartDelay) 442 TEST(AnimationAnimationEffectReadOnlyTest, ZeroDurationStartDelay)
443 { 443 {
444 Timing timing; 444 Timing timing;
445 timing.fillMode = Timing::FillMode::FORWARDS; 445 timing.fillMode = Timing::FillMode::FORWARDS;
446 timing.startDelay = 0.5; 446 timing.startDelay = 0.5;
447 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 447 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
448 448
449 animationNode->updateInheritedTime(0); 449 animationNode->updateInheritedTime(0);
450 EXPECT_TRUE(isNull(animationNode->progress())); 450 EXPECT_TRUE(isNull(animationNode->progress()));
451 451
452 animationNode->updateInheritedTime(0.5); 452 animationNode->updateInheritedTime(0.5);
453 EXPECT_EQ(1, animationNode->progress()); 453 EXPECT_EQ(1, animationNode->progress());
454 454
455 animationNode->updateInheritedTime(1.5); 455 animationNode->updateInheritedTime(1.5);
456 EXPECT_EQ(1, animationNode->progress()); 456 EXPECT_EQ(1, animationNode->progress());
457 } 457 }
458 458
459 TEST(AnimationAnimationEffectTest, ZeroDurationIterationStartAndCount) 459 TEST(AnimationAnimationEffectReadOnlyTest, ZeroDurationIterationStartAndCount)
460 { 460 {
461 Timing timing; 461 Timing timing;
462 timing.iterationStart = 0.1; 462 timing.iterationStart = 0.1;
463 timing.iterationCount = 0.2; 463 timing.iterationCount = 0.2;
464 timing.fillMode = Timing::FillMode::BOTH; 464 timing.fillMode = Timing::FillMode::BOTH;
465 timing.startDelay = 0.3; 465 timing.startDelay = 0.3;
466 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 466 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
467 467
468 animationNode->updateInheritedTime(0); 468 animationNode->updateInheritedTime(0);
469 EXPECT_EQ(0.1, animationNode->progress()); 469 EXPECT_EQ(0.1, animationNode->progress());
470 470
471 animationNode->updateInheritedTime(0.3); 471 animationNode->updateInheritedTime(0.3);
472 EXPECT_DOUBLE_EQ(0.3, animationNode->progress()); 472 EXPECT_DOUBLE_EQ(0.3, animationNode->progress());
473 473
474 animationNode->updateInheritedTime(1); 474 animationNode->updateInheritedTime(1);
475 EXPECT_DOUBLE_EQ(0.3, animationNode->progress()); 475 EXPECT_DOUBLE_EQ(0.3, animationNode->progress());
476 } 476 }
477 477
478 // FIXME: Needs specification work. 478 // FIXME: Needs specification work.
479 TEST(AnimationAnimationEffectTest, ZeroDurationInfiniteIteration) 479 TEST(AnimationAnimationEffectReadOnlyTest, ZeroDurationInfiniteIteration)
480 { 480 {
481 Timing timing; 481 Timing timing;
482 timing.fillMode = Timing::FillMode::FORWARDS; 482 timing.fillMode = Timing::FillMode::FORWARDS;
483 timing.iterationCount = std::numeric_limits<double>::infinity(); 483 timing.iterationCount = std::numeric_limits<double>::infinity();
484 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 484 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
485 485
486 animationNode->updateInheritedTime(-1); 486 animationNode->updateInheritedTime(-1);
487 EXPECT_EQ(0, animationNode->activeDurationInternal()); 487 EXPECT_EQ(0, animationNode->activeDurationInternal());
488 EXPECT_TRUE(isNull(animationNode->currentIteration())); 488 EXPECT_TRUE(isNull(animationNode->currentIteration()));
489 EXPECT_TRUE(isNull(animationNode->progress())); 489 EXPECT_TRUE(isNull(animationNode->progress()));
490 490
491 animationNode->updateInheritedTime(0); 491 animationNode->updateInheritedTime(0);
492 EXPECT_EQ(0, animationNode->activeDurationInternal()); 492 EXPECT_EQ(0, animationNode->activeDurationInternal());
493 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->currentIte ration()); 493 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->currentIte ration());
494 EXPECT_EQ(1, animationNode->progress()); 494 EXPECT_EQ(1, animationNode->progress());
495 } 495 }
496 496
497 TEST(AnimationAnimationEffectTest, ZeroDurationIteration) 497 TEST(AnimationAnimationEffectReadOnlyTest, ZeroDurationIteration)
498 { 498 {
499 Timing timing; 499 Timing timing;
500 timing.fillMode = Timing::FillMode::FORWARDS; 500 timing.fillMode = Timing::FillMode::FORWARDS;
501 timing.iterationCount = 2; 501 timing.iterationCount = 2;
502 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 502 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
503 503
504 animationNode->updateInheritedTime(-1); 504 animationNode->updateInheritedTime(-1);
505 EXPECT_TRUE(isNull(animationNode->currentIteration())); 505 EXPECT_TRUE(isNull(animationNode->currentIteration()));
506 EXPECT_TRUE(isNull(animationNode->progress())); 506 EXPECT_TRUE(isNull(animationNode->progress()));
507 507
508 animationNode->updateInheritedTime(0); 508 animationNode->updateInheritedTime(0);
509 EXPECT_EQ(1, animationNode->currentIteration()); 509 EXPECT_EQ(1, animationNode->currentIteration());
510 EXPECT_EQ(1, animationNode->progress()); 510 EXPECT_EQ(1, animationNode->progress());
511 511
512 animationNode->updateInheritedTime(1); 512 animationNode->updateInheritedTime(1);
513 EXPECT_EQ(1, animationNode->currentIteration()); 513 EXPECT_EQ(1, animationNode->currentIteration());
514 EXPECT_EQ(1, animationNode->progress()); 514 EXPECT_EQ(1, animationNode->progress());
515 } 515 }
516 516
517 TEST(AnimationAnimationEffectTest, ZeroDurationIterationStart) 517 TEST(AnimationAnimationEffectReadOnlyTest, ZeroDurationIterationStart)
518 { 518 {
519 Timing timing; 519 Timing timing;
520 timing.iterationStart = 1.2; 520 timing.iterationStart = 1.2;
521 timing.iterationCount = 2.2; 521 timing.iterationCount = 2.2;
522 timing.fillMode = Timing::FillMode::BOTH; 522 timing.fillMode = Timing::FillMode::BOTH;
523 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 523 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
524 524
525 animationNode->updateInheritedTime(-1); 525 animationNode->updateInheritedTime(-1);
526 EXPECT_EQ(1, animationNode->currentIteration()); 526 EXPECT_EQ(1, animationNode->currentIteration());
527 EXPECT_NEAR(0.2, animationNode->progress(), 0.000000000000001); 527 EXPECT_NEAR(0.2, animationNode->progress(), 0.000000000000001);
528 528
529 animationNode->updateInheritedTime(0); 529 animationNode->updateInheritedTime(0);
530 EXPECT_EQ(3, animationNode->currentIteration()); 530 EXPECT_EQ(3, animationNode->currentIteration());
531 EXPECT_NEAR(0.4, animationNode->progress(), 0.000000000000001); 531 EXPECT_NEAR(0.4, animationNode->progress(), 0.000000000000001);
532 532
533 animationNode->updateInheritedTime(10); 533 animationNode->updateInheritedTime(10);
534 EXPECT_EQ(3, animationNode->currentIteration()); 534 EXPECT_EQ(3, animationNode->currentIteration());
535 EXPECT_NEAR(0.4, animationNode->progress(), 0.000000000000001); 535 EXPECT_NEAR(0.4, animationNode->progress(), 0.000000000000001);
536 } 536 }
537 537
538 TEST(AnimationAnimationEffectTest, ZeroDurationIterationAlternate) 538 TEST(AnimationAnimationEffectReadOnlyTest, ZeroDurationIterationAlternate)
539 { 539 {
540 Timing timing; 540 Timing timing;
541 timing.fillMode = Timing::FillMode::FORWARDS; 541 timing.fillMode = Timing::FillMode::FORWARDS;
542 timing.iterationCount = 2; 542 timing.iterationCount = 2;
543 timing.direction = Timing::PlaybackDirection::ALTERNATE_NORMAL; 543 timing.direction = Timing::PlaybackDirection::ALTERNATE_NORMAL;
544 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 544 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
545 545
546 animationNode->updateInheritedTime(-1); 546 animationNode->updateInheritedTime(-1);
547 EXPECT_TRUE(isNull(animationNode->currentIteration())); 547 EXPECT_TRUE(isNull(animationNode->currentIteration()));
548 EXPECT_TRUE(isNull(animationNode->progress())); 548 EXPECT_TRUE(isNull(animationNode->progress()));
549 549
550 animationNode->updateInheritedTime(0); 550 animationNode->updateInheritedTime(0);
551 EXPECT_EQ(1, animationNode->currentIteration()); 551 EXPECT_EQ(1, animationNode->currentIteration());
552 EXPECT_EQ(0, animationNode->progress()); 552 EXPECT_EQ(0, animationNode->progress());
553 553
554 animationNode->updateInheritedTime(1); 554 animationNode->updateInheritedTime(1);
555 EXPECT_EQ(1, animationNode->currentIteration()); 555 EXPECT_EQ(1, animationNode->currentIteration());
556 EXPECT_EQ(0, animationNode->progress()); 556 EXPECT_EQ(0, animationNode->progress());
557 } 557 }
558 558
559 TEST(AnimationAnimationEffectTest, ZeroDurationIterationAlternateReverse) 559 TEST(AnimationAnimationEffectReadOnlyTest, ZeroDurationIterationAlternateReverse )
560 { 560 {
561 Timing timing; 561 Timing timing;
562 timing.fillMode = Timing::FillMode::FORWARDS; 562 timing.fillMode = Timing::FillMode::FORWARDS;
563 timing.iterationCount = 2; 563 timing.iterationCount = 2;
564 timing.direction = Timing::PlaybackDirection::ALTERNATE_REVERSE; 564 timing.direction = Timing::PlaybackDirection::ALTERNATE_REVERSE;
565 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 565 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
566 566
567 animationNode->updateInheritedTime(-1); 567 animationNode->updateInheritedTime(-1);
568 EXPECT_TRUE(isNull(animationNode->currentIteration())); 568 EXPECT_TRUE(isNull(animationNode->currentIteration()));
569 EXPECT_TRUE(isNull(animationNode->progress())); 569 EXPECT_TRUE(isNull(animationNode->progress()));
570 570
571 animationNode->updateInheritedTime(0); 571 animationNode->updateInheritedTime(0);
572 EXPECT_EQ(1, animationNode->currentIteration()); 572 EXPECT_EQ(1, animationNode->currentIteration());
573 EXPECT_EQ(1, animationNode->progress()); 573 EXPECT_EQ(1, animationNode->progress());
574 574
575 animationNode->updateInheritedTime(1); 575 animationNode->updateInheritedTime(1);
576 EXPECT_EQ(1, animationNode->currentIteration()); 576 EXPECT_EQ(1, animationNode->currentIteration());
577 EXPECT_EQ(1, animationNode->progress()); 577 EXPECT_EQ(1, animationNode->progress());
578 } 578 }
579 579
580 TEST(AnimationAnimationEffectTest, InfiniteDurationSanity) 580 TEST(AnimationAnimationEffectReadOnlyTest, InfiniteDurationSanity)
581 { 581 {
582 Timing timing; 582 Timing timing;
583 timing.iterationDuration = std::numeric_limits<double>::infinity(); 583 timing.iterationDuration = std::numeric_limits<double>::infinity();
584 timing.iterationCount = 1; 584 timing.iterationCount = 1;
585 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 585 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
586 586
587 animationNode->updateInheritedTime(0); 587 animationNode->updateInheritedTime(0);
588 588
589 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->activeDura tionInternal()); 589 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->activeDura tionInternal());
590 EXPECT_EQ(AnimationEffect::PhaseActive, animationNode->getPhase()); 590 EXPECT_EQ(AnimationEffectReadOnly::PhaseActive, animationNode->getPhase());
591 EXPECT_TRUE(animationNode->isInPlay()); 591 EXPECT_TRUE(animationNode->isInPlay());
592 EXPECT_TRUE(animationNode->isCurrent()); 592 EXPECT_TRUE(animationNode->isCurrent());
593 EXPECT_TRUE(animationNode->isInEffect()); 593 EXPECT_TRUE(animationNode->isInEffect());
594 EXPECT_EQ(0, animationNode->currentIteration()); 594 EXPECT_EQ(0, animationNode->currentIteration());
595 EXPECT_EQ(0, animationNode->progress()); 595 EXPECT_EQ(0, animationNode->progress());
596 596
597 animationNode->updateInheritedTime(1); 597 animationNode->updateInheritedTime(1);
598 598
599 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->activeDura tionInternal()); 599 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->activeDura tionInternal());
600 EXPECT_EQ(AnimationEffect::PhaseActive, animationNode->getPhase()); 600 EXPECT_EQ(AnimationEffectReadOnly::PhaseActive, animationNode->getPhase());
601 EXPECT_TRUE(animationNode->isInPlay()); 601 EXPECT_TRUE(animationNode->isInPlay());
602 EXPECT_TRUE(animationNode->isCurrent()); 602 EXPECT_TRUE(animationNode->isCurrent());
603 EXPECT_TRUE(animationNode->isInEffect()); 603 EXPECT_TRUE(animationNode->isInEffect());
604 EXPECT_EQ(0, animationNode->currentIteration()); 604 EXPECT_EQ(0, animationNode->currentIteration());
605 EXPECT_EQ(0, animationNode->progress()); 605 EXPECT_EQ(0, animationNode->progress());
606 } 606 }
607 607
608 // FIXME: Needs specification work. 608 // FIXME: Needs specification work.
609 TEST(AnimationAnimationEffectTest, InfiniteDurationZeroIterations) 609 TEST(AnimationAnimationEffectReadOnlyTest, InfiniteDurationZeroIterations)
610 { 610 {
611 Timing timing; 611 Timing timing;
612 timing.iterationDuration = std::numeric_limits<double>::infinity(); 612 timing.iterationDuration = std::numeric_limits<double>::infinity();
613 timing.iterationCount = 0; 613 timing.iterationCount = 0;
614 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 614 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
615 615
616 animationNode->updateInheritedTime(0); 616 animationNode->updateInheritedTime(0);
617 617
618 EXPECT_EQ(0, animationNode->activeDurationInternal()); 618 EXPECT_EQ(0, animationNode->activeDurationInternal());
619 EXPECT_EQ(AnimationEffect::PhaseAfter, animationNode->getPhase()); 619 EXPECT_EQ(AnimationEffectReadOnly::PhaseAfter, animationNode->getPhase());
620 EXPECT_FALSE(animationNode->isInPlay()); 620 EXPECT_FALSE(animationNode->isInPlay());
621 EXPECT_FALSE(animationNode->isCurrent()); 621 EXPECT_FALSE(animationNode->isCurrent());
622 EXPECT_TRUE(animationNode->isInEffect()); 622 EXPECT_TRUE(animationNode->isInEffect());
623 EXPECT_EQ(0, animationNode->currentIteration()); 623 EXPECT_EQ(0, animationNode->currentIteration());
624 EXPECT_EQ(0, animationNode->progress()); 624 EXPECT_EQ(0, animationNode->progress());
625 625
626 animationNode->updateInheritedTime(1); 626 animationNode->updateInheritedTime(1);
627 627
628 EXPECT_EQ(AnimationEffect::PhaseAfter, animationNode->getPhase()); 628 EXPECT_EQ(AnimationEffectReadOnly::PhaseAfter, animationNode->getPhase());
629 EXPECT_EQ(AnimationEffect::PhaseAfter, animationNode->getPhase()); 629 EXPECT_EQ(AnimationEffectReadOnly::PhaseAfter, animationNode->getPhase());
630 EXPECT_FALSE(animationNode->isInPlay()); 630 EXPECT_FALSE(animationNode->isInPlay());
631 EXPECT_FALSE(animationNode->isCurrent()); 631 EXPECT_FALSE(animationNode->isCurrent());
632 EXPECT_TRUE(animationNode->isInEffect()); 632 EXPECT_TRUE(animationNode->isInEffect());
633 EXPECT_EQ(0, animationNode->currentIteration()); 633 EXPECT_EQ(0, animationNode->currentIteration());
634 EXPECT_EQ(0, animationNode->progress()); 634 EXPECT_EQ(0, animationNode->progress());
635 } 635 }
636 636
637 TEST(AnimationAnimationEffectTest, InfiniteDurationInfiniteIterations) 637 TEST(AnimationAnimationEffectReadOnlyTest, InfiniteDurationInfiniteIterations)
638 { 638 {
639 Timing timing; 639 Timing timing;
640 timing.iterationDuration = std::numeric_limits<double>::infinity(); 640 timing.iterationDuration = std::numeric_limits<double>::infinity();
641 timing.iterationCount = std::numeric_limits<double>::infinity(); 641 timing.iterationCount = std::numeric_limits<double>::infinity();
642 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 642 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
643 643
644 animationNode->updateInheritedTime(0); 644 animationNode->updateInheritedTime(0);
645 645
646 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->activeDura tionInternal()); 646 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->activeDura tionInternal());
647 EXPECT_EQ(AnimationEffect::PhaseActive, animationNode->getPhase()); 647 EXPECT_EQ(AnimationEffectReadOnly::PhaseActive, animationNode->getPhase());
648 EXPECT_TRUE(animationNode->isInPlay()); 648 EXPECT_TRUE(animationNode->isInPlay());
649 EXPECT_TRUE(animationNode->isCurrent()); 649 EXPECT_TRUE(animationNode->isCurrent());
650 EXPECT_TRUE(animationNode->isInEffect()); 650 EXPECT_TRUE(animationNode->isInEffect());
651 EXPECT_EQ(0, animationNode->currentIteration()); 651 EXPECT_EQ(0, animationNode->currentIteration());
652 EXPECT_EQ(0, animationNode->progress()); 652 EXPECT_EQ(0, animationNode->progress());
653 653
654 animationNode->updateInheritedTime(1); 654 animationNode->updateInheritedTime(1);
655 655
656 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->activeDura tionInternal()); 656 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->activeDura tionInternal());
657 EXPECT_EQ(AnimationEffect::PhaseActive, animationNode->getPhase()); 657 EXPECT_EQ(AnimationEffectReadOnly::PhaseActive, animationNode->getPhase());
658 EXPECT_TRUE(animationNode->isInPlay()); 658 EXPECT_TRUE(animationNode->isInPlay());
659 EXPECT_TRUE(animationNode->isCurrent()); 659 EXPECT_TRUE(animationNode->isCurrent());
660 EXPECT_TRUE(animationNode->isInEffect()); 660 EXPECT_TRUE(animationNode->isInEffect());
661 EXPECT_EQ(0, animationNode->currentIteration()); 661 EXPECT_EQ(0, animationNode->currentIteration());
662 EXPECT_EQ(0, animationNode->progress()); 662 EXPECT_EQ(0, animationNode->progress());
663 } 663 }
664 664
665 TEST(AnimationAnimationEffectTest, InfiniteDurationZeroPlaybackRate) 665 TEST(AnimationAnimationEffectReadOnlyTest, InfiniteDurationZeroPlaybackRate)
666 { 666 {
667 Timing timing; 667 Timing timing;
668 timing.iterationDuration = std::numeric_limits<double>::infinity(); 668 timing.iterationDuration = std::numeric_limits<double>::infinity();
669 timing.playbackRate = 0; 669 timing.playbackRate = 0;
670 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 670 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
671 671
672 animationNode->updateInheritedTime(0); 672 animationNode->updateInheritedTime(0);
673 673
674 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->activeDura tionInternal()); 674 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->activeDura tionInternal());
675 EXPECT_EQ(AnimationEffect::PhaseActive, animationNode->getPhase()); 675 EXPECT_EQ(AnimationEffectReadOnly::PhaseActive, animationNode->getPhase());
676 EXPECT_TRUE(animationNode->isInPlay()); 676 EXPECT_TRUE(animationNode->isInPlay());
677 EXPECT_TRUE(animationNode->isCurrent()); 677 EXPECT_TRUE(animationNode->isCurrent());
678 EXPECT_TRUE(animationNode->isInEffect()); 678 EXPECT_TRUE(animationNode->isInEffect());
679 EXPECT_EQ(0, animationNode->currentIteration()); 679 EXPECT_EQ(0, animationNode->currentIteration());
680 EXPECT_EQ(0, animationNode->progress()); 680 EXPECT_EQ(0, animationNode->progress());
681 681
682 animationNode->updateInheritedTime(std::numeric_limits<double>::infinity()); 682 animationNode->updateInheritedTime(std::numeric_limits<double>::infinity());
683 683
684 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->activeDura tionInternal()); 684 EXPECT_EQ(std::numeric_limits<double>::infinity(), animationNode->activeDura tionInternal());
685 EXPECT_EQ(AnimationEffect::PhaseAfter, animationNode->getPhase()); 685 EXPECT_EQ(AnimationEffectReadOnly::PhaseAfter, animationNode->getPhase());
686 EXPECT_FALSE(animationNode->isInPlay()); 686 EXPECT_FALSE(animationNode->isInPlay());
687 EXPECT_FALSE(animationNode->isCurrent()); 687 EXPECT_FALSE(animationNode->isCurrent());
688 EXPECT_TRUE(animationNode->isInEffect()); 688 EXPECT_TRUE(animationNode->isInEffect());
689 EXPECT_EQ(0, animationNode->currentIteration()); 689 EXPECT_EQ(0, animationNode->currentIteration());
690 EXPECT_EQ(0, animationNode->progress()); 690 EXPECT_EQ(0, animationNode->progress());
691 } 691 }
692 692
693 TEST(AnimationAnimationEffectTest, EndTime) 693 TEST(AnimationAnimationEffectReadOnlyTest, EndTime)
694 { 694 {
695 Timing timing; 695 Timing timing;
696 timing.startDelay = 1; 696 timing.startDelay = 1;
697 timing.endDelay = 2; 697 timing.endDelay = 2;
698 timing.iterationDuration = 4; 698 timing.iterationDuration = 4;
699 timing.iterationCount = 2; 699 timing.iterationCount = 2;
700 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 700 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
701 EXPECT_EQ(11, animationNode->endTimeInternal()); 701 EXPECT_EQ(11, animationNode->endTimeInternal());
702 } 702 }
703 703
704 TEST(AnimationAnimationEffectTest, Events) 704 TEST(AnimationAnimationEffectReadOnlyTest, Events)
705 { 705 {
706 Timing timing; 706 Timing timing;
707 timing.iterationDuration = 1; 707 timing.iterationDuration = 1;
708 timing.fillMode = Timing::FillMode::FORWARDS; 708 timing.fillMode = Timing::FillMode::FORWARDS;
709 timing.iterationCount = 2; 709 timing.iterationCount = 2;
710 timing.startDelay = 1; 710 timing.startDelay = 1;
711 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 711 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
712 712
713 animationNode->updateInheritedTime(0.0, TimingUpdateOnDemand); 713 animationNode->updateInheritedTime(0.0, TimingUpdateOnDemand);
714 EXPECT_FALSE(animationNode->eventDelegate()->eventTriggered()); 714 EXPECT_FALSE(animationNode->eventDelegate()->eventTriggered());
715 715
716 animationNode->updateInheritedTime(0.0, TimingUpdateForAnimationFrame); 716 animationNode->updateInheritedTime(0.0, TimingUpdateForAnimationFrame);
717 EXPECT_TRUE(animationNode->eventDelegate()->eventTriggered()); 717 EXPECT_TRUE(animationNode->eventDelegate()->eventTriggered());
718 718
719 animationNode->updateInheritedTime(1.5, TimingUpdateOnDemand); 719 animationNode->updateInheritedTime(1.5, TimingUpdateOnDemand);
720 EXPECT_FALSE(animationNode->eventDelegate()->eventTriggered()); 720 EXPECT_FALSE(animationNode->eventDelegate()->eventTriggered());
721 721
722 animationNode->updateInheritedTime(1.5, TimingUpdateForAnimationFrame); 722 animationNode->updateInheritedTime(1.5, TimingUpdateForAnimationFrame);
723 EXPECT_TRUE(animationNode->eventDelegate()->eventTriggered()); 723 EXPECT_TRUE(animationNode->eventDelegate()->eventTriggered());
724 724
725 } 725 }
726 726
727 TEST(AnimationAnimationEffectTest, TimeToEffectChange) 727 TEST(AnimationAnimationEffectReadOnlyTest, TimeToEffectChange)
728 { 728 {
729 Timing timing; 729 Timing timing;
730 timing.iterationDuration = 1; 730 timing.iterationDuration = 1;
731 timing.fillMode = Timing::FillMode::FORWARDS; 731 timing.fillMode = Timing::FillMode::FORWARDS;
732 timing.iterationStart = 0.2; 732 timing.iterationStart = 0.2;
733 timing.iterationCount = 2.5; 733 timing.iterationCount = 2.5;
734 timing.startDelay = 1; 734 timing.startDelay = 1;
735 timing.direction = Timing::PlaybackDirection::ALTERNATE_NORMAL; 735 timing.direction = Timing::PlaybackDirection::ALTERNATE_NORMAL;
736 TestAnimationEffect* animationNode = TestAnimationEffect::create(timing); 736 TestAnimationEffectReadOnly* animationNode = TestAnimationEffectReadOnly::cr eate(timing);
737 737
738 animationNode->updateInheritedTime(0); 738 animationNode->updateInheritedTime(0);
739 EXPECT_EQ(0, animationNode->takeLocalTime()); 739 EXPECT_EQ(0, animationNode->takeLocalTime());
740 EXPECT_TRUE(std::isinf(animationNode->takeTimeToNextIteration())); 740 EXPECT_TRUE(std::isinf(animationNode->takeTimeToNextIteration()));
741 741
742 // Normal iteration. 742 // Normal iteration.
743 animationNode->updateInheritedTime(1.75); 743 animationNode->updateInheritedTime(1.75);
744 EXPECT_EQ(1.75, animationNode->takeLocalTime()); 744 EXPECT_EQ(1.75, animationNode->takeLocalTime());
745 EXPECT_NEAR(0.05, animationNode->takeTimeToNextIteration(), 0.00000000000000 1); 745 EXPECT_NEAR(0.05, animationNode->takeTimeToNextIteration(), 0.00000000000000 1);
746 746
747 // Reverse iteration. 747 // Reverse iteration.
748 animationNode->updateInheritedTime(2.75); 748 animationNode->updateInheritedTime(2.75);
749 EXPECT_EQ(2.75, animationNode->takeLocalTime()); 749 EXPECT_EQ(2.75, animationNode->takeLocalTime());
750 EXPECT_NEAR(0.05, animationNode->takeTimeToNextIteration(), 0.00000000000000 1); 750 EXPECT_NEAR(0.05, animationNode->takeTimeToNextIteration(), 0.00000000000000 1);
751 751
752 // Item ends before iteration finishes. 752 // Item ends before iteration finishes.
753 animationNode->updateInheritedTime(3.4); 753 animationNode->updateInheritedTime(3.4);
754 EXPECT_EQ(AnimationEffect::PhaseActive, animationNode->getPhase()); 754 EXPECT_EQ(AnimationEffectReadOnly::PhaseActive, animationNode->getPhase());
755 EXPECT_EQ(3.4, animationNode->takeLocalTime()); 755 EXPECT_EQ(3.4, animationNode->takeLocalTime());
756 EXPECT_TRUE(std::isinf(animationNode->takeTimeToNextIteration())); 756 EXPECT_TRUE(std::isinf(animationNode->takeTimeToNextIteration()));
757 757
758 // Item has finished. 758 // Item has finished.
759 animationNode->updateInheritedTime(3.5); 759 animationNode->updateInheritedTime(3.5);
760 EXPECT_EQ(AnimationEffect::PhaseAfter, animationNode->getPhase()); 760 EXPECT_EQ(AnimationEffectReadOnly::PhaseAfter, animationNode->getPhase());
761 EXPECT_EQ(3.5, animationNode->takeLocalTime()); 761 EXPECT_EQ(3.5, animationNode->takeLocalTime());
762 EXPECT_TRUE(std::isinf(animationNode->takeTimeToNextIteration())); 762 EXPECT_TRUE(std::isinf(animationNode->takeTimeToNextIteration()));
763 } 763 }
764 764
765 } // namespace blink 765 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698