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

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

Issue 2960733004: Implement DocumentTimeline constructor (Closed)
Patch Set: Rebase Created 3 years, 5 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 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 }; 55 };
56 56
57 class AnimationDocumentTimelineTest : public ::testing::Test { 57 class AnimationDocumentTimelineTest : public ::testing::Test {
58 protected: 58 protected:
59 virtual void SetUp() { 59 virtual void SetUp() {
60 page_holder = DummyPageHolder::Create(); 60 page_holder = DummyPageHolder::Create();
61 document = &page_holder->GetDocument(); 61 document = &page_holder->GetDocument();
62 document->GetAnimationClock().ResetTimeForTesting(); 62 document->GetAnimationClock().ResetTimeForTesting();
63 element = Element::Create(QualifiedName::Null(), document.Get()); 63 element = Element::Create(QualifiedName::Null(), document.Get());
64 platform_timing = new MockPlatformTiming; 64 platform_timing = new MockPlatformTiming;
65 timeline = DocumentTimeline::Create(document.Get(), platform_timing); 65 timeline = DocumentTimeline::Create(document.Get(), 0.0, platform_timing);
66 timeline->ResetForTesting(); 66 timeline->ResetForTesting();
67 ASSERT_EQ(0, timeline->CurrentTimeInternal()); 67 ASSERT_EQ(0, timeline->CurrentTimeInternal());
68 } 68 }
69 69
70 virtual void TearDown() { 70 virtual void TearDown() {
71 document.Release(); 71 document.Release();
72 element.Release(); 72 element.Release();
73 timeline.Release(); 73 timeline.Release();
74 ThreadState::Current()->CollectAllGarbage(); 74 ThreadState::Current()->CollectAllGarbage();
75 } 75 }
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 EXPECT_EQ(100, timeline->CurrentTimeInternal(is_null)); 155 EXPECT_EQ(100, timeline->CurrentTimeInternal(is_null));
156 EXPECT_FALSE(is_null); 156 EXPECT_FALSE(is_null);
157 157
158 document->GetAnimationClock().UpdateTime(200); 158 document->GetAnimationClock().UpdateTime(200);
159 EXPECT_EQ(zero_time, timeline->ZeroTime()); 159 EXPECT_EQ(zero_time, timeline->ZeroTime());
160 EXPECT_EQ(200, timeline->CurrentTimeInternal()); 160 EXPECT_EQ(200, timeline->CurrentTimeInternal());
161 EXPECT_EQ(200, timeline->CurrentTimeInternal(is_null)); 161 EXPECT_EQ(200, timeline->CurrentTimeInternal(is_null));
162 EXPECT_FALSE(is_null); 162 EXPECT_FALSE(is_null);
163 } 163 }
164 164
165 TEST_F(AnimationDocumentTimelineTest, PlaybackRateNormalWithOriginTime) {
166 double origin_time_in_ms = -1000000.0;
167 timeline = DocumentTimeline::Create(document.Get(), origin_time_in_ms,
168 platform_timing);
169 timeline->ResetForTesting();
170
171 bool is_null;
172
173 EXPECT_EQ(1.0, timeline->PlaybackRate());
174 EXPECT_EQ(-1000, timeline->ZeroTime());
175 EXPECT_EQ(1000, timeline->CurrentTimeInternal());
176 EXPECT_EQ(1000, timeline->CurrentTimeInternal(is_null));
177 EXPECT_FALSE(is_null);
178
179 document->GetAnimationClock().UpdateTime(100);
180 EXPECT_EQ(-1000, timeline->ZeroTime());
181 EXPECT_EQ(1100, timeline->CurrentTimeInternal());
182 EXPECT_EQ(1100, timeline->CurrentTimeInternal(is_null));
183 EXPECT_FALSE(is_null);
184
185 document->GetAnimationClock().UpdateTime(200);
186 EXPECT_EQ(-1000, timeline->ZeroTime());
187 EXPECT_EQ(1200, timeline->CurrentTimeInternal());
188 EXPECT_EQ(1200, timeline->CurrentTimeInternal(is_null));
189 EXPECT_FALSE(is_null);
190 }
191
165 TEST_F(AnimationDocumentTimelineTest, PlaybackRatePause) { 192 TEST_F(AnimationDocumentTimelineTest, PlaybackRatePause) {
166 bool is_null; 193 bool is_null;
167 194
168 document->GetAnimationClock().UpdateTime(100); 195 document->GetAnimationClock().UpdateTime(100);
169 EXPECT_EQ(0, timeline->ZeroTime()); 196 EXPECT_EQ(0, timeline->ZeroTime());
170 EXPECT_EQ(100, timeline->CurrentTimeInternal()); 197 EXPECT_EQ(100, timeline->CurrentTimeInternal());
171 EXPECT_EQ(100, timeline->CurrentTimeInternal(is_null)); 198 EXPECT_EQ(100, timeline->CurrentTimeInternal(is_null));
172 EXPECT_FALSE(is_null); 199 EXPECT_FALSE(is_null);
173 200
174 timeline->SetPlaybackRate(0.0); 201 timeline->SetPlaybackRate(0.0);
175 EXPECT_EQ(0.0, timeline->PlaybackRate()); 202 EXPECT_EQ(0.0, timeline->PlaybackRate());
176 document->GetAnimationClock().UpdateTime(200); 203 document->GetAnimationClock().UpdateTime(200);
177 EXPECT_EQ(100, timeline->ZeroTime()); 204 EXPECT_EQ(100, timeline->ZeroTime());
178 EXPECT_EQ(100, timeline->CurrentTimeInternal()); 205 EXPECT_EQ(100, timeline->CurrentTimeInternal());
179 EXPECT_EQ(100, timeline->CurrentTimeInternal(is_null)); 206 EXPECT_EQ(100, timeline->CurrentTimeInternal(is_null));
180 207
181 timeline->SetPlaybackRate(1.0); 208 timeline->SetPlaybackRate(1.0);
182 EXPECT_EQ(1.0, timeline->PlaybackRate()); 209 EXPECT_EQ(1.0, timeline->PlaybackRate());
183 document->GetAnimationClock().UpdateTime(400); 210 document->GetAnimationClock().UpdateTime(400);
184 EXPECT_EQ(100, timeline->ZeroTime()); 211 EXPECT_EQ(100, timeline->ZeroTime());
185 EXPECT_EQ(300, timeline->CurrentTimeInternal()); 212 EXPECT_EQ(300, timeline->CurrentTimeInternal());
186 EXPECT_EQ(300, timeline->CurrentTimeInternal(is_null)); 213 EXPECT_EQ(300, timeline->CurrentTimeInternal(is_null));
187 214
188 EXPECT_FALSE(is_null); 215 EXPECT_FALSE(is_null);
189 } 216 }
190 217
218 TEST_F(AnimationDocumentTimelineTest, PlaybackRatePauseWithOriginTime) {
219 bool is_null;
220
221 double origin_time_in_ms = -1000000.0;
222 timeline = DocumentTimeline::Create(document.Get(), origin_time_in_ms,
223 platform_timing);
224 timeline->ResetForTesting();
225
226 EXPECT_EQ(-1000, timeline->ZeroTime());
227 EXPECT_EQ(1000, timeline->CurrentTimeInternal());
228 EXPECT_EQ(1000, timeline->CurrentTimeInternal(is_null));
229 EXPECT_FALSE(is_null);
230
231 document->GetAnimationClock().UpdateTime(100);
232 EXPECT_EQ(-1000, timeline->ZeroTime());
233 EXPECT_EQ(1100, timeline->CurrentTimeInternal());
234 EXPECT_EQ(1100, timeline->CurrentTimeInternal(is_null));
235 EXPECT_FALSE(is_null);
236
237 timeline->SetPlaybackRate(0.0);
238 EXPECT_EQ(0.0, timeline->PlaybackRate());
239 document->GetAnimationClock().UpdateTime(200);
240 EXPECT_EQ(1100, timeline->ZeroTime());
241 EXPECT_EQ(1100, timeline->CurrentTimeInternal());
242 EXPECT_EQ(1100, timeline->CurrentTimeInternal(is_null));
243
244 timeline->SetPlaybackRate(1.0);
245 EXPECT_EQ(1.0, timeline->PlaybackRate());
246 EXPECT_EQ(-900, timeline->ZeroTime());
247 EXPECT_EQ(1100, timeline->CurrentTimeInternal());
248 EXPECT_EQ(1100, timeline->CurrentTimeInternal(is_null));
249
250 document->GetAnimationClock().UpdateTime(400);
251 EXPECT_EQ(-900, timeline->ZeroTime());
252 EXPECT_EQ(1300, timeline->CurrentTimeInternal());
253 EXPECT_EQ(1300, timeline->CurrentTimeInternal(is_null));
254
255 EXPECT_FALSE(is_null);
256 }
257
191 TEST_F(AnimationDocumentTimelineTest, PlaybackRateSlow) { 258 TEST_F(AnimationDocumentTimelineTest, PlaybackRateSlow) {
192 bool is_null; 259 bool is_null;
193 260
194 document->GetAnimationClock().UpdateTime(100); 261 document->GetAnimationClock().UpdateTime(100);
195 EXPECT_EQ(0, timeline->ZeroTime()); 262 EXPECT_EQ(0, timeline->ZeroTime());
196 EXPECT_EQ(100, timeline->CurrentTimeInternal()); 263 EXPECT_EQ(100, timeline->CurrentTimeInternal());
197 EXPECT_EQ(100, timeline->CurrentTimeInternal(is_null)); 264 EXPECT_EQ(100, timeline->CurrentTimeInternal(is_null));
198 EXPECT_FALSE(is_null); 265 EXPECT_FALSE(is_null);
199 266
200 timeline->SetPlaybackRate(0.5); 267 timeline->SetPlaybackRate(0.5);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 timeline->SetPlaybackRate(1.0); 300 timeline->SetPlaybackRate(1.0);
234 EXPECT_EQ(1.0, timeline->PlaybackRate()); 301 EXPECT_EQ(1.0, timeline->PlaybackRate());
235 document->GetAnimationClock().UpdateTime(400); 302 document->GetAnimationClock().UpdateTime(400);
236 EXPECT_EQ(-200, timeline->ZeroTime()); 303 EXPECT_EQ(-200, timeline->ZeroTime());
237 EXPECT_EQ(600, timeline->CurrentTimeInternal()); 304 EXPECT_EQ(600, timeline->CurrentTimeInternal());
238 EXPECT_EQ(600, timeline->CurrentTimeInternal(is_null)); 305 EXPECT_EQ(600, timeline->CurrentTimeInternal(is_null));
239 306
240 EXPECT_FALSE(is_null); 307 EXPECT_FALSE(is_null);
241 } 308 }
242 309
310 TEST_F(AnimationDocumentTimelineTest, PlaybackRateFastWithOriginTime) {
311 bool is_null;
312
313 double origin_time_in_ms = -1000000.0;
314 timeline = DocumentTimeline::Create(document.Get(), origin_time_in_ms,
315 platform_timing);
316 timeline->ResetForTesting();
317
318 document->GetAnimationClock().UpdateTime(100);
319 EXPECT_EQ(-1000, timeline->ZeroTime());
320 EXPECT_EQ(1100, timeline->CurrentTimeInternal());
321 EXPECT_EQ(1100, timeline->CurrentTimeInternal(is_null));
322 EXPECT_FALSE(is_null);
323
324 timeline->SetPlaybackRate(2.0);
325 EXPECT_EQ(2.0, timeline->PlaybackRate());
326 EXPECT_EQ(-450, timeline->ZeroTime());
327 EXPECT_EQ(1100, timeline->CurrentTimeInternal());
328 EXPECT_EQ(1100, timeline->CurrentTimeInternal(is_null));
329
330 document->GetAnimationClock().UpdateTime(300);
331 EXPECT_EQ(-450, timeline->ZeroTime());
332 EXPECT_EQ(1500, timeline->CurrentTimeInternal());
333 EXPECT_EQ(1500, timeline->CurrentTimeInternal(is_null));
334
335 timeline->SetPlaybackRate(1.0);
336 EXPECT_EQ(1.0, timeline->PlaybackRate());
337 EXPECT_EQ(-1200, timeline->ZeroTime());
338 EXPECT_EQ(1500, timeline->CurrentTimeInternal());
339 EXPECT_EQ(1500, timeline->CurrentTimeInternal(is_null));
340
341 document->GetAnimationClock().UpdateTime(400);
342 EXPECT_EQ(-1200, timeline->ZeroTime());
343 EXPECT_EQ(1600, timeline->CurrentTimeInternal());
344 EXPECT_EQ(1600, timeline->CurrentTimeInternal(is_null));
345
346 EXPECT_FALSE(is_null);
347 }
348
243 TEST_F(AnimationDocumentTimelineTest, PauseForTesting) { 349 TEST_F(AnimationDocumentTimelineTest, PauseForTesting) {
244 float seek_time = 1; 350 float seek_time = 1;
245 timing.fill_mode = Timing::FillMode::FORWARDS; 351 timing.fill_mode = Timing::FillMode::FORWARDS;
246 KeyframeEffect* anim1 = 352 KeyframeEffect* anim1 =
247 KeyframeEffect::Create(element.Get(), 353 KeyframeEffect::Create(element.Get(),
248 AnimatableValueKeyframeEffectModel::Create( 354 AnimatableValueKeyframeEffectModel::Create(
249 AnimatableValueKeyframeVector()), 355 AnimatableValueKeyframeVector()),
250 timing); 356 timing);
251 KeyframeEffect* anim2 = 357 KeyframeEffect* anim2 =
252 KeyframeEffect::Create(element.Get(), 358 KeyframeEffect::Create(element.Get(),
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 405
300 timeline = &document->Timeline(); 406 timeline = &document->Timeline();
301 document = nullptr; 407 document = nullptr;
302 408
303 KeyframeEffect* keyframe_effect = KeyframeEffect::Create(0, nullptr, timing); 409 KeyframeEffect* keyframe_effect = KeyframeEffect::Create(0, nullptr, timing);
304 // Test passes if this does not crash. 410 // Test passes if this does not crash.
305 timeline->Play(keyframe_effect); 411 timeline->Play(keyframe_effect);
306 } 412 }
307 413
308 } // namespace blink 414 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698