| Index: cc/animation/scrollbar_animation_controller_linear_fade_unittest.cc
|
| diff --git a/cc/animation/scrollbar_animation_controller_linear_fade_unittest.cc b/cc/animation/scrollbar_animation_controller_linear_fade_unittest.cc
|
| index 99b45b35052a8eda18f025bb28b81e9e13435a4a..4ffb0b27b4f201f3734f8403c5177855e548e1f3 100644
|
| --- a/cc/animation/scrollbar_animation_controller_linear_fade_unittest.cc
|
| +++ b/cc/animation/scrollbar_animation_controller_linear_fade_unittest.cc
|
| @@ -7,7 +7,9 @@
|
| #include "cc/layers/solid_color_scrollbar_layer_impl.h"
|
| #include "cc/test/fake_impl_proxy.h"
|
| #include "cc/test/fake_layer_tree_host_impl.h"
|
| +#include "cc/test/geometry_test_utils.h"
|
| #include "cc/test/test_shared_bitmap_manager.h"
|
| +#include "cc/trees/layer_tree_impl.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace cc {
|
| @@ -41,7 +43,7 @@ class ScrollbarAnimationControllerLinearFadeTest
|
| scrollbar_layer_ =
|
| SolidColorScrollbarLayerImpl::Create(host_impl_.active_tree(),
|
| 2,
|
| - HORIZONTAL,
|
| + orientation(),
|
| kThumbThickness,
|
| kTrackStart,
|
| kIsLeftSideVerticalScrollbar,
|
| @@ -54,7 +56,7 @@ class ScrollbarAnimationControllerLinearFadeTest
|
| scrollbar_layer_->SetScrollLayerAndClipLayerByIds(scroll_layer_ptr->id(),
|
| clip_layer_->id());
|
| clip_layer_->SetBounds(gfx::Size(100, 100));
|
| - scroll_layer_ptr->SetBounds(gfx::Size(50, 50));
|
| + scroll_layer_ptr->SetBounds(gfx::Size(200, 200));
|
|
|
| scrollbar_controller_ = ScrollbarAnimationControllerLinearFade::Create(
|
| scroll_layer_ptr,
|
| @@ -64,6 +66,8 @@ class ScrollbarAnimationControllerLinearFadeTest
|
| base::TimeDelta::FromSeconds(3));
|
| }
|
|
|
| + virtual ScrollbarOrientation orientation() const { return HORIZONTAL; }
|
| +
|
| FakeImplProxy proxy_;
|
| TestSharedBitmapManager shared_bitmap_manager_;
|
| FakeLayerTreeHostImpl host_impl_;
|
| @@ -76,6 +80,12 @@ class ScrollbarAnimationControllerLinearFadeTest
|
| int needs_frame_count_;
|
| };
|
|
|
| +class VerticalScrollbarAnimationControllerLinearFadeTest
|
| + : public ScrollbarAnimationControllerLinearFadeTest {
|
| + protected:
|
| + virtual ScrollbarOrientation orientation() const override { return VERTICAL; }
|
| +};
|
| +
|
| TEST_F(ScrollbarAnimationControllerLinearFadeTest, DelayAnimationOnResize) {
|
| scrollbar_layer_->SetOpacity(0.0f);
|
| scrollbar_controller_->DidScrollBegin();
|
| @@ -119,6 +129,131 @@ TEST_F(ScrollbarAnimationControllerLinearFadeTest,
|
| EXPECT_EQ(0, needs_frame_count_);
|
| }
|
|
|
| +TEST_F(ScrollbarAnimationControllerLinearFadeTest, HideOnResize) {
|
| + LayerImpl* scroll_layer = host_impl_.active_tree()->LayerById(1);
|
| + ASSERT_TRUE(scroll_layer);
|
| + EXPECT_SIZE_EQ(gfx::Size(200, 200), scroll_layer->bounds());
|
| +
|
| + EXPECT_EQ(HORIZONTAL, scrollbar_layer_->orientation());
|
| +
|
| + // Shrink along X axis, horizontal scrollbar should appear.
|
| + clip_layer_->SetBounds(gfx::Size(100, 200));
|
| + EXPECT_SIZE_EQ(gfx::Size(100, 200), clip_layer_->bounds());
|
| +
|
| + scrollbar_controller_->DidScrollBegin();
|
| +
|
| + scrollbar_controller_->DidScrollUpdate(false);
|
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
|
| +
|
| + scrollbar_controller_->DidScrollEnd();
|
| +
|
| + // Shrink along Y axis and expand along X, horizontal scrollbar
|
| + // should disappear.
|
| + clip_layer_->SetBounds(gfx::Size(200, 100));
|
| + EXPECT_SIZE_EQ(gfx::Size(200, 100), clip_layer_->bounds());
|
| +
|
| + scrollbar_controller_->DidScrollBegin();
|
| +
|
| + scrollbar_controller_->DidScrollUpdate(false);
|
| + EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity());
|
| +
|
| + scrollbar_controller_->DidScrollEnd();
|
| +}
|
| +
|
| +TEST_F(VerticalScrollbarAnimationControllerLinearFadeTest, HideOnResize) {
|
| + LayerImpl* scroll_layer = host_impl_.active_tree()->LayerById(1);
|
| + ASSERT_TRUE(scroll_layer);
|
| + EXPECT_SIZE_EQ(gfx::Size(200, 200), scroll_layer->bounds());
|
| +
|
| + EXPECT_EQ(VERTICAL, scrollbar_layer_->orientation());
|
| +
|
| + // Shrink along X axis, vertical scrollbar should remain invisible.
|
| + clip_layer_->SetBounds(gfx::Size(100, 200));
|
| + EXPECT_SIZE_EQ(gfx::Size(100, 200), clip_layer_->bounds());
|
| +
|
| + scrollbar_controller_->DidScrollBegin();
|
| +
|
| + scrollbar_controller_->DidScrollUpdate(false);
|
| + EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity());
|
| +
|
| + scrollbar_controller_->DidScrollEnd();
|
| +
|
| + // Shrink along Y axis and expand along X, vertical scrollbar should appear.
|
| + clip_layer_->SetBounds(gfx::Size(200, 100));
|
| + EXPECT_SIZE_EQ(gfx::Size(200, 100), clip_layer_->bounds());
|
| +
|
| + scrollbar_controller_->DidScrollBegin();
|
| +
|
| + scrollbar_controller_->DidScrollUpdate(false);
|
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
|
| +
|
| + scrollbar_controller_->DidScrollEnd();
|
| +}
|
| +
|
| +TEST_F(ScrollbarAnimationControllerLinearFadeTest,
|
| + HideOnUserNonScrollableHorz) {
|
| + EXPECT_EQ(HORIZONTAL, scrollbar_layer_->orientation());
|
| +
|
| + LayerImpl* scroll_layer = host_impl_.active_tree()->LayerById(1);
|
| + ASSERT_TRUE(scroll_layer);
|
| + scroll_layer->set_user_scrollable_horizontal(false);
|
| +
|
| + scrollbar_controller_->DidScrollBegin();
|
| +
|
| + scrollbar_controller_->DidScrollUpdate(false);
|
| + EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity());
|
| +
|
| + scrollbar_controller_->DidScrollEnd();
|
| +}
|
| +
|
| +TEST_F(ScrollbarAnimationControllerLinearFadeTest,
|
| + ShowOnUserNonScrollableVert) {
|
| + EXPECT_EQ(HORIZONTAL, scrollbar_layer_->orientation());
|
| +
|
| + LayerImpl* scroll_layer = host_impl_.active_tree()->LayerById(1);
|
| + ASSERT_TRUE(scroll_layer);
|
| + scroll_layer->set_user_scrollable_vertical(false);
|
| +
|
| + scrollbar_controller_->DidScrollBegin();
|
| +
|
| + scrollbar_controller_->DidScrollUpdate(false);
|
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
|
| +
|
| + scrollbar_controller_->DidScrollEnd();
|
| +}
|
| +
|
| +TEST_F(VerticalScrollbarAnimationControllerLinearFadeTest,
|
| + HideOnUserNonScrollableVert) {
|
| + EXPECT_EQ(VERTICAL, scrollbar_layer_->orientation());
|
| +
|
| + LayerImpl* scroll_layer = host_impl_.active_tree()->LayerById(1);
|
| + ASSERT_TRUE(scroll_layer);
|
| + scroll_layer->set_user_scrollable_vertical(false);
|
| +
|
| + scrollbar_controller_->DidScrollBegin();
|
| +
|
| + scrollbar_controller_->DidScrollUpdate(false);
|
| + EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity());
|
| +
|
| + scrollbar_controller_->DidScrollEnd();
|
| +}
|
| +
|
| +TEST_F(VerticalScrollbarAnimationControllerLinearFadeTest,
|
| + ShowOnUserNonScrollableHorz) {
|
| + EXPECT_EQ(VERTICAL, scrollbar_layer_->orientation());
|
| +
|
| + LayerImpl* scroll_layer = host_impl_.active_tree()->LayerById(1);
|
| + ASSERT_TRUE(scroll_layer);
|
| + scroll_layer->set_user_scrollable_horizontal(false);
|
| +
|
| + scrollbar_controller_->DidScrollBegin();
|
| +
|
| + scrollbar_controller_->DidScrollUpdate(false);
|
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
|
| +
|
| + scrollbar_controller_->DidScrollEnd();
|
| +}
|
| +
|
| TEST_F(ScrollbarAnimationControllerLinearFadeTest, AwakenByScrollingGesture) {
|
| base::TimeTicks time;
|
| time += base::TimeDelta::FromSeconds(1);
|
|
|