| 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 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |