| 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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 player->setStartTime(0); | 61 player->setStartTime(0); |
| 62 player->setSource(makeAnimation().get()); | 62 player->setSource(makeAnimation().get()); |
| 63 } | 63 } |
| 64 | 64 |
| 65 void startTimeline() | 65 void startTimeline() |
| 66 { | 66 { |
| 67 timeline->setZeroTime(0); | 67 timeline->setZeroTime(0); |
| 68 updateTimeline(0); | 68 updateTimeline(0); |
| 69 } | 69 } |
| 70 | 70 |
| 71 PassRefPtr<Animation> makeAnimation(double duration = 30, double playbackRat
e = 1) | 71 PassRefPtrWillBeRawPtr<Animation> makeAnimation(double duration = 30, double
playbackRate = 1) |
| 72 { | 72 { |
| 73 Timing timing; | 73 Timing timing; |
| 74 timing.iterationDuration = duration; | 74 timing.iterationDuration = duration; |
| 75 timing.playbackRate = playbackRate; | 75 timing.playbackRate = playbackRate; |
| 76 return Animation::create(nullptr, nullptr, timing); | 76 return Animation::create(nullptr, nullptr, timing); |
| 77 } | 77 } |
| 78 | 78 |
| 79 bool updateTimeline(double time) | 79 bool updateTimeline(double time) |
| 80 { | 80 { |
| 81 document->animationClock().updateTime(time); | 81 document->animationClock().updateTime(time); |
| 82 // The timeline does not know about our player, so we have to explicitly
call update(). | 82 // The timeline does not know about our player, so we have to explicitly
call update(). |
| 83 return player->update(AnimationPlayer::UpdateOnDemand); | 83 return player->update(AnimationPlayer::UpdateOnDemand); |
| 84 } | 84 } |
| 85 | 85 |
| 86 RefPtr<Document> document; | 86 RefPtr<Document> document; |
| 87 RefPtr<DocumentTimeline> timeline; | 87 RefPtrWillBePersistent<DocumentTimeline> timeline; |
| 88 RefPtr<AnimationPlayer> player; | 88 RefPtrWillBePersistent<AnimationPlayer> player; |
| 89 TrackExceptionState exceptionState; | 89 TrackExceptionState exceptionState; |
| 90 }; | 90 }; |
| 91 | 91 |
| 92 TEST_F(AnimationAnimationPlayerTest, InitialState) | 92 TEST_F(AnimationAnimationPlayerTest, InitialState) |
| 93 { | 93 { |
| 94 setUpWithoutStartingTimeline(); | 94 setUpWithoutStartingTimeline(); |
| 95 player = timeline->createAnimationPlayer(0); | 95 player = timeline->createAnimationPlayer(0); |
| 96 EXPECT_TRUE(isNull(timeline->currentTime())); | 96 EXPECT_TRUE(isNull(timeline->currentTime())); |
| 97 EXPECT_EQ(0, player->currentTime()); | 97 EXPECT_EQ(0, player->currentTime()); |
| 98 EXPECT_FALSE(player->paused()); | 98 EXPECT_FALSE(player->paused()); |
| (...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 EXPECT_EQ(0, player->currentTime()); | 569 EXPECT_EQ(0, player->currentTime()); |
| 570 updateTimeline(1); | 570 updateTimeline(1); |
| 571 EXPECT_EQ(30, player->currentTime()); | 571 EXPECT_EQ(30, player->currentTime()); |
| 572 } | 572 } |
| 573 | 573 |
| 574 | 574 |
| 575 TEST_F(AnimationAnimationPlayerTest, SetSource) | 575 TEST_F(AnimationAnimationPlayerTest, SetSource) |
| 576 { | 576 { |
| 577 player = timeline->createAnimationPlayer(0); | 577 player = timeline->createAnimationPlayer(0); |
| 578 player->setStartTime(0); | 578 player->setStartTime(0); |
| 579 RefPtr<TimedItem> source1 = makeAnimation(); | 579 RefPtrWillBeRawPtr<TimedItem> source1 = makeAnimation(); |
| 580 RefPtr<TimedItem> source2 = makeAnimation(); | 580 RefPtrWillBeRawPtr<TimedItem> source2 = makeAnimation(); |
| 581 player->setSource(source1.get()); | 581 player->setSource(source1.get()); |
| 582 EXPECT_EQ(source1, player->source()); | 582 EXPECT_EQ(source1, player->source()); |
| 583 EXPECT_EQ(0, player->currentTime()); | 583 EXPECT_EQ(0, player->currentTime()); |
| 584 player->setCurrentTime(15); | 584 player->setCurrentTime(15); |
| 585 player->setSource(source2.get()); | 585 player->setSource(source2.get()); |
| 586 EXPECT_EQ(15, player->currentTime()); | 586 EXPECT_EQ(15, player->currentTime()); |
| 587 EXPECT_EQ(0, source1->player()); | 587 EXPECT_EQ(0, source1->player()); |
| 588 EXPECT_EQ(player.get(), source2->player()); | 588 EXPECT_EQ(player.get(), source2->player()); |
| 589 EXPECT_EQ(source2, player->source()); | 589 EXPECT_EQ(source2, player->source()); |
| 590 } | 590 } |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 627 player->setSource(timedItem); | 627 player->setSource(timedItem); |
| 628 EXPECT_EQ(0, player2->source()); | 628 EXPECT_EQ(0, player2->source()); |
| 629 } | 629 } |
| 630 | 630 |
| 631 TEST_F(AnimationAnimationPlayerTest, AnimationPlayersReturnTimeToNextEffect) | 631 TEST_F(AnimationAnimationPlayerTest, AnimationPlayersReturnTimeToNextEffect) |
| 632 { | 632 { |
| 633 Timing timing; | 633 Timing timing; |
| 634 timing.startDelay = 1; | 634 timing.startDelay = 1; |
| 635 timing.iterationDuration = 1; | 635 timing.iterationDuration = 1; |
| 636 timing.endDelay = 1; | 636 timing.endDelay = 1; |
| 637 RefPtr<Animation> animation = Animation::create(nullptr, nullptr, timing); | 637 RefPtrWillBeRawPtr<Animation> animation = Animation::create(nullptr, nullptr
, timing); |
| 638 player = timeline->createAnimationPlayer(animation.get()); | 638 player = timeline->createAnimationPlayer(animation.get()); |
| 639 player->setStartTime(0); | 639 player->setStartTime(0); |
| 640 | 640 |
| 641 updateTimeline(0); | 641 updateTimeline(0); |
| 642 EXPECT_EQ(1, player->timeToEffectChange()); | 642 EXPECT_EQ(1, player->timeToEffectChange()); |
| 643 | 643 |
| 644 updateTimeline(0.5); | 644 updateTimeline(0.5); |
| 645 EXPECT_EQ(0.5, player->timeToEffectChange()); | 645 EXPECT_EQ(0.5, player->timeToEffectChange()); |
| 646 | 646 |
| 647 updateTimeline(1); | 647 updateTimeline(1); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 704 player->cancel(); | 704 player->cancel(); |
| 705 player->update(AnimationPlayer::UpdateOnDemand); | 705 player->update(AnimationPlayer::UpdateOnDemand); |
| 706 EXPECT_EQ(3, player->timeToEffectChange()); | 706 EXPECT_EQ(3, player->timeToEffectChange()); |
| 707 } | 707 } |
| 708 | 708 |
| 709 TEST_F(AnimationAnimationPlayerTest, AttachedAnimationPlayers) | 709 TEST_F(AnimationAnimationPlayerTest, AttachedAnimationPlayers) |
| 710 { | 710 { |
| 711 RefPtr<Element> element = document->createElement("foo", ASSERT_NO_EXCEPTION
); | 711 RefPtr<Element> element = document->createElement("foo", ASSERT_NO_EXCEPTION
); |
| 712 | 712 |
| 713 Timing timing; | 713 Timing timing; |
| 714 RefPtr<Animation> animation = Animation::create(element, nullptr, timing); | 714 RefPtrWillBeRawPtr<Animation> animation = Animation::create(element, nullptr
, timing); |
| 715 RefPtr<AnimationPlayer> player = timeline->createAnimationPlayer(animation.g
et()); | 715 RefPtrWillBeRawPtr<AnimationPlayer> player = timeline->createAnimationPlayer
(animation.get()); |
| 716 timeline->serviceAnimations(AnimationPlayer::UpdateForAnimationFrame); | 716 timeline->serviceAnimations(AnimationPlayer::UpdateForAnimationFrame); |
| 717 EXPECT_EQ(1U, element->activeAnimations()->players().find(player.get())->val
ue); | 717 EXPECT_EQ(element->activeAnimations()->players().get(player.get())); |
| 718 | |
| 719 player.release(); | 718 player.release(); |
| 719 Heap::collectAllGarbage(); |
| 720 EXPECT_TRUE(element->activeAnimations()->players().isEmpty()); | 720 EXPECT_TRUE(element->activeAnimations()->players().isEmpty()); |
| 721 } | 721 } |
| 722 | 722 |
| 723 TEST_F(AnimationAnimationPlayerTest, HasLowerPriority) | 723 TEST_F(AnimationAnimationPlayerTest, HasLowerPriority) |
| 724 { | 724 { |
| 725 // Sort time defaults to timeline current time | 725 // Sort time defaults to timeline current time |
| 726 updateTimeline(15); | 726 updateTimeline(15); |
| 727 RefPtr<AnimationPlayer> player1 = timeline->createAnimationPlayer(0); | 727 RefPtrWillBeRawPtr<AnimationPlayer> player1 = timeline->createAnimationPlaye
r(0); |
| 728 RefPtr<AnimationPlayer> player2 = timeline->createAnimationPlayer(0); | 728 RefPtrWillBeRawPtr<AnimationPlayer> player2 = timeline->createAnimationPlaye
r(0); |
| 729 player2->setStartTime(10); | 729 player2->setStartTime(10); |
| 730 RefPtr<AnimationPlayer> player3 = timeline->createAnimationPlayer(0); | 730 RefPtrWillBeRawPtr<AnimationPlayer> player3 = timeline->createAnimationPlaye
r(0); |
| 731 RefPtr<AnimationPlayer> player4 = timeline->createAnimationPlayer(0); | 731 RefPtrWillBeRawPtr<AnimationPlayer> player4 = timeline->createAnimationPlaye
r(0); |
| 732 player4->setStartTime(20); | 732 player4->setStartTime(20); |
| 733 RefPtr<AnimationPlayer> player5 = timeline->createAnimationPlayer(0); | 733 RefPtrWillBeRawPtr<AnimationPlayer> player5 = timeline->createAnimationPlaye
r(0); |
| 734 player5->setStartTime(10); | 734 player5->setStartTime(10); |
| 735 RefPtr<AnimationPlayer> player6 = timeline->createAnimationPlayer(0); | 735 RefPtrWillBeRawPtr<AnimationPlayer> player6 = timeline->createAnimationPlaye
r(0); |
| 736 player6->setStartTime(-10); | 736 player6->setStartTime(-10); |
| 737 Vector<RefPtr<AnimationPlayer> > players; | 737 WillBeHeapVector<RefPtrWillBeMember<AnimationPlayer> > players; |
| 738 players.append(player6); | 738 players.append(player6); |
| 739 players.append(player2); | 739 players.append(player2); |
| 740 players.append(player5); | 740 players.append(player5); |
| 741 players.append(player1); | 741 players.append(player1); |
| 742 players.append(player3); | 742 players.append(player3); |
| 743 players.append(player4); | 743 players.append(player4); |
| 744 for (size_t i = 0; i < players.size(); i++) { | 744 for (size_t i = 0; i < players.size(); i++) { |
| 745 for (size_t j = 0; j < players.size(); j++) | 745 for (size_t j = 0; j < players.size(); j++) |
| 746 EXPECT_EQ(i < j, AnimationPlayer::hasLowerPriority(players[i].get(),
players[j].get())); | 746 EXPECT_EQ(i < j, AnimationPlayer::hasLowerPriority(players[i].get(),
players[j].get())); |
| 747 } | 747 } |
| 748 } | 748 } |
| 749 | 749 |
| 750 } | 750 } |
| OLD | NEW |