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

Side by Side Diff: third_party/WebKit/Source/platform/scroll/ScrollAnimatorTest.cpp

Issue 2336823003: Fix ScrollAnimator::hasRunningAnimation to account for the PostAnimationCleanup (Closed)
Patch Set: comment update Created 4 years, 3 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
« no previous file with comments | « third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 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 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 TEST(ScrollAnimatorTest, MainThreadAnimationTargetAdjustment) 594 TEST(ScrollAnimatorTest, MainThreadAnimationTargetAdjustment)
595 { 595 {
596 MockScrollableArea* scrollableArea = MockScrollableArea::create(true); 596 MockScrollableArea* scrollableArea = MockScrollableArea::create(true);
597 ScrollAnimator* animator = new ScrollAnimator(scrollableArea, getMockedTime) ; 597 ScrollAnimator* animator = new ScrollAnimator(scrollableArea, getMockedTime) ;
598 scrollableArea->setScrollAnimator(animator); 598 scrollableArea->setScrollAnimator(animator);
599 599
600 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)) 600 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1))
601 .WillRepeatedly(Return(IntPoint(-100, -100))); 601 .WillRepeatedly(Return(IntPoint(-100, -100)));
602 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)) 602 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1))
603 .WillRepeatedly(Return(IntPoint(1000, 1000))); 603 .WillRepeatedly(Return(IntPoint(1000, 1000)));
604 // Twice from tickAnimation, once from reset, and once from 604 // Twice from tickAnimation, once from reset, and twice from
605 // adjustAnimationAndSetScrollPosition. 605 // adjustAnimationAndSetScrollPosition.
606 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(4); 606 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(5);
607 // One from call to userScroll and one from updateCompositorAnimations. 607 // One from call to userScroll and one from updateCompositorAnimations.
608 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(2); 608 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(2);
609 EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1)) 609 EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1))
610 .WillRepeatedly(Return(true)); 610 .WillRepeatedly(Return(true));
611 611
612 // Idle 612 // Idle
613 EXPECT_FALSE(animator->hasAnimationThatRequiresService()); 613 EXPECT_FALSE(animator->hasAnimationThatRequiresService());
614 EXPECT_EQ(FloatPoint(), animator->currentPosition()); 614 EXPECT_EQ(FloatPoint(), animator->currentPosition());
615 615
616 // WaitingToSendToCompositor 616 // WaitingToSendToCompositor
617 animator->userScroll(ScrollByLine, FloatSize(100, 100)); 617 animator->userScroll(ScrollByLine, FloatSize(100, 100));
618 618
619 // RunningOnMainThread 619 // RunningOnMainThread
620 gMockedTime += 0.05; 620 gMockedTime += 0.05;
621 animator->updateCompositorAnimations(); 621 animator->updateCompositorAnimations();
622 animator->tickAnimation(getMockedTime()); 622 animator->tickAnimation(getMockedTime());
623 FloatPoint pos = animator->currentPosition(); 623 FloatPoint pos = animator->currentPosition();
624 EXPECT_EQ(FloatPoint(100, 100), animator->desiredTargetPosition()); 624 EXPECT_EQ(FloatPoint(100, 100), animator->desiredTargetPosition());
625 EXPECT_GT(pos.x(), 0); 625 EXPECT_GT(pos.x(), 0);
626 EXPECT_GT(pos.y(), 0); 626 EXPECT_GT(pos.y(), 0);
627 627
628 // Adjustment 628 // Adjustment
629 FloatPoint newPos = pos + FloatSize(10, -10); 629 FloatPoint newPos = pos + FloatSize(10, -10);
630 animator->adjustAnimationAndSetScrollPosition(newPos, AnchoringScroll); 630 animator->adjustAnimationAndSetScrollPosition(newPos, AnchoringScroll);
631 EXPECT_EQ(FloatPoint(110, 90), animator->desiredTargetPosition()); 631 EXPECT_EQ(FloatPoint(110, 90), animator->desiredTargetPosition());
632 632
633 // Animation finished 633 // Adjusting after finished animation should do nothing.
634 gMockedTime += 1.0; 634 gMockedTime += 1.0;
635 animator->updateCompositorAnimations(); 635 animator->updateCompositorAnimations();
636 animator->tickAnimation(getMockedTime()); 636 animator->tickAnimation(getMockedTime());
637 EXPECT_EQ(FloatPoint(110, 90), animator->currentPosition()); 637 EXPECT_EQ(animator->runStateForTesting(),
638 ScrollAnimatorCompositorCoordinator::RunState::PostAnimationCleanup);
639 newPos = animator->currentPosition() + FloatSize(10, -10);
640 animator->adjustAnimationAndSetScrollPosition(newPos, AnchoringScroll);
641 EXPECT_EQ(animator->runStateForTesting(),
642 ScrollAnimatorCompositorCoordinator::RunState::PostAnimationCleanup);
643 EXPECT_EQ(FloatPoint(110, 90), animator->desiredTargetPosition());
644
638 reset(*animator); 645 reset(*animator);
639 646
640 // Forced GC in order to finalize objects depending on the mock object. 647 // Forced GC in order to finalize objects depending on the mock object.
641 ThreadState::current()-> collectAllGarbage(); 648 ThreadState::current()-> collectAllGarbage();
642 } 649 }
643 650
644 } // namespace blink 651 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698