OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/scrollbar_animation_controller_linear_fade.h" | 5 #include "cc/scrollbar_animation_controller_linear_fade.h" |
6 | 6 |
7 #include "cc/scrollbar_layer_impl.h" | 7 #include "cc/scrollbar_layer_impl.h" |
8 #include "cc/single_thread_proxy.h" | 8 #include "cc/single_thread_proxy.h" |
9 #include "cc/test/fake_impl_proxy.h" | 9 #include "cc/test/fake_impl_proxy.h" |
10 #include "cc/test/fake_layer_tree_host_impl.h" | 10 #include "cc/test/fake_layer_tree_host_impl.h" |
(...skipping 14 matching lines...) Expand all Loading... |
25 virtual void SetUp() | 25 virtual void SetUp() |
26 { | 26 { |
27 m_scrollLayer = LayerImpl::Create(m_hostImpl.active_tree(), 1); | 27 m_scrollLayer = LayerImpl::Create(m_hostImpl.active_tree(), 1); |
28 scoped_ptr<ScrollbarGeometryFixedThumb> geometry(ScrollbarGeometryFixedT
humb::create(FakeWebScrollbarThemeGeometry::create(false))); | 28 scoped_ptr<ScrollbarGeometryFixedThumb> geometry(ScrollbarGeometryFixedT
humb::create(FakeWebScrollbarThemeGeometry::create(false))); |
29 m_scrollbarLayer = ScrollbarLayerImpl::Create(m_hostImpl.active_tree(),
2, geometry.Pass()); | 29 m_scrollbarLayer = ScrollbarLayerImpl::Create(m_hostImpl.active_tree(),
2, geometry.Pass()); |
30 | 30 |
31 m_scrollLayer->SetMaxScrollOffset(gfx::Vector2d(50, 50)); | 31 m_scrollLayer->SetMaxScrollOffset(gfx::Vector2d(50, 50)); |
32 m_scrollLayer->SetBounds(gfx::Size(50, 50)); | 32 m_scrollLayer->SetBounds(gfx::Size(50, 50)); |
33 m_scrollLayer->SetHorizontalScrollbarLayer(m_scrollbarLayer.get()); | 33 m_scrollLayer->SetHorizontalScrollbarLayer(m_scrollbarLayer.get()); |
34 | 34 |
35 m_scrollbarController = ScrollbarAnimationControllerLinearFade::create(m
_scrollLayer.get(), 2, 3); | 35 m_scrollbarController = ScrollbarAnimationControllerLinearFade::create(m
_scrollLayer.get(), base::TimeDelta::FromSeconds(2), base::TimeDelta::FromSecond
s(3)); |
36 } | 36 } |
37 | 37 |
38 FakeImplProxy m_proxy; | 38 FakeImplProxy m_proxy; |
39 FakeLayerTreeHostImpl m_hostImpl; | 39 FakeLayerTreeHostImpl m_hostImpl; |
40 scoped_ptr<ScrollbarAnimationControllerLinearFade> m_scrollbarController; | 40 scoped_ptr<ScrollbarAnimationControllerLinearFade> m_scrollbarController; |
41 scoped_ptr<LayerImpl> m_scrollLayer; | 41 scoped_ptr<LayerImpl> m_scrollLayer; |
42 scoped_ptr<ScrollbarLayerImpl> m_scrollbarLayer; | 42 scoped_ptr<ScrollbarLayerImpl> m_scrollbarLayer; |
43 | 43 |
44 }; | 44 }; |
45 | 45 |
46 TEST_F(ScrollbarAnimationControllerLinearFadeTest, verifyHiddenInBegin) | 46 TEST_F(ScrollbarAnimationControllerLinearFadeTest, verifyHiddenInBegin) |
47 { | 47 { |
48 m_scrollbarController->animate(base::TimeTicks()); | 48 m_scrollbarController->animate(base::TimeTicks()); |
49 EXPECT_FLOAT_EQ(0, m_scrollbarLayer->opacity()); | 49 EXPECT_FLOAT_EQ(0, m_scrollbarLayer->opacity()); |
50 } | 50 } |
51 | 51 |
52 TEST_F(ScrollbarAnimationControllerLinearFadeTest, verifyAwakenByScroll) | 52 TEST_F(ScrollbarAnimationControllerLinearFadeTest, verifyAwakenByScrollGesture) |
53 { | 53 { |
54 base::TimeTicks time; | 54 base::TimeTicks time; |
55 time += base::TimeDelta::FromSeconds(1); | 55 time += base::TimeDelta::FromSeconds(1); |
56 m_scrollbarController->didUpdateScrollOffset(time); | 56 m_scrollbarController->didScrollGestureBegin(); |
| 57 EXPECT_TRUE(m_scrollbarController->isScrollGestureInProgress()); |
| 58 EXPECT_FALSE(m_scrollbarController->isAnimating()); |
| 59 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); |
| 60 |
| 61 time += base::TimeDelta::FromSeconds(100); |
57 m_scrollbarController->animate(time); | 62 m_scrollbarController->animate(time); |
58 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | 63 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); |
| 64 m_scrollbarController->didScrollGestureEnd(time); |
| 65 |
| 66 EXPECT_FALSE(m_scrollbarController->isScrollGestureInProgress()); |
| 67 EXPECT_TRUE(m_scrollbarController->isAnimating()); |
| 68 EXPECT_EQ(2, m_scrollbarController->delayBeforeStart(time).InSeconds()); |
59 | 69 |
60 time += base::TimeDelta::FromSeconds(1); | 70 time += base::TimeDelta::FromSeconds(1); |
61 m_scrollbarController->animate(time); | 71 m_scrollbarController->animate(time); |
62 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | |
63 m_scrollbarController->didUpdateScrollOffset(time); | |
64 | |
65 time += base::TimeDelta::FromSeconds(1); | |
66 m_scrollbarController->animate(time); | |
67 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | 72 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); |
68 | 73 |
69 time += base::TimeDelta::FromSeconds(1); | 74 time += base::TimeDelta::FromSeconds(1); |
70 m_scrollbarController->animate(time); | 75 m_scrollbarController->animate(time); |
71 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | 76 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); |
72 | 77 |
73 time += base::TimeDelta::FromSeconds(1); | 78 time += base::TimeDelta::FromSeconds(1); |
74 m_scrollbarController->animate(time); | 79 m_scrollbarController->animate(time); |
75 EXPECT_FLOAT_EQ(2.0f / 3.0f, m_scrollbarLayer->opacity()); | 80 EXPECT_FLOAT_EQ(2.0f / 3.0f, m_scrollbarLayer->opacity()); |
76 | 81 |
77 time += base::TimeDelta::FromSeconds(1); | 82 time += base::TimeDelta::FromSeconds(1); |
78 m_scrollbarController->animate(time); | 83 m_scrollbarController->animate(time); |
79 EXPECT_FLOAT_EQ(1.0f / 3.0f, m_scrollbarLayer->opacity()); | 84 EXPECT_FLOAT_EQ(1.0f / 3.0f, m_scrollbarLayer->opacity()); |
80 | 85 |
81 time += base::TimeDelta::FromSeconds(1); | 86 time += base::TimeDelta::FromSeconds(1); |
82 m_scrollbarController->didUpdateScrollOffset(time); | 87 |
| 88 m_scrollbarController->didScrollGestureBegin(); |
| 89 m_scrollbarController->didScrollGestureEnd(time); |
| 90 |
83 time += base::TimeDelta::FromSeconds(1); | 91 time += base::TimeDelta::FromSeconds(1); |
84 m_scrollbarController->animate(time); | 92 m_scrollbarController->animate(time); |
85 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | 93 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); |
86 | 94 |
87 time += base::TimeDelta::FromSeconds(1); | 95 time += base::TimeDelta::FromSeconds(1); |
88 m_scrollbarController->animate(time); | 96 m_scrollbarController->animate(time); |
89 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | 97 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); |
90 | 98 |
91 time += base::TimeDelta::FromSeconds(1); | 99 time += base::TimeDelta::FromSeconds(1); |
92 m_scrollbarController->animate(time); | 100 m_scrollbarController->animate(time); |
93 EXPECT_FLOAT_EQ(2.0f / 3.0f, m_scrollbarLayer->opacity()); | 101 EXPECT_FLOAT_EQ(2.0f / 3.0f, m_scrollbarLayer->opacity()); |
94 | 102 |
95 time += base::TimeDelta::FromSeconds(1); | 103 time += base::TimeDelta::FromSeconds(1); |
96 m_scrollbarController->animate(time); | 104 m_scrollbarController->animate(time); |
97 EXPECT_FLOAT_EQ(1.0f / 3.0f, m_scrollbarLayer->opacity()); | 105 EXPECT_FLOAT_EQ(1.0f / 3.0f, m_scrollbarLayer->opacity()); |
98 | 106 |
99 time += base::TimeDelta::FromSeconds(1); | 107 time += base::TimeDelta::FromSeconds(1); |
100 m_scrollbarController->animate(time); | 108 m_scrollbarController->animate(time); |
101 EXPECT_FLOAT_EQ(0, m_scrollbarLayer->opacity()); | 109 EXPECT_FLOAT_EQ(0, m_scrollbarLayer->opacity()); |
102 } | 110 } |
103 | 111 |
104 TEST_F(ScrollbarAnimationControllerLinearFadeTest, verifyForceAwakenByPinch) | 112 TEST_F(ScrollbarAnimationControllerLinearFadeTest, verifyAwakenByProgrammaticScr
oll) |
105 { | 113 { |
106 base::TimeTicks time; | 114 base::TimeTicks time; |
107 m_scrollbarController->didPinchGestureUpdate(time); | 115 time += base::TimeDelta::FromSeconds(1); |
| 116 m_scrollbarController->didProgrammaticallyUpdateScroll(time); |
| 117 EXPECT_FALSE(m_scrollbarController->isScrollGestureInProgress()); |
| 118 EXPECT_TRUE(m_scrollbarController->isAnimating()); |
| 119 EXPECT_EQ(2, m_scrollbarController->delayBeforeStart(time).InSeconds()); |
108 m_scrollbarController->animate(time); | 120 m_scrollbarController->animate(time); |
109 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | 121 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); |
110 | 122 |
111 time += base::TimeDelta::FromSeconds(1); | 123 time += base::TimeDelta::FromSeconds(1); |
112 m_scrollbarController->animate(time); | 124 m_scrollbarController->animate(time); |
113 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | 125 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); |
| 126 m_scrollbarController->didProgrammaticallyUpdateScroll(time); |
114 | 127 |
115 time += base::TimeDelta::FromSeconds(1); | 128 time += base::TimeDelta::FromSeconds(1); |
116 m_scrollbarController->animate(time); | 129 m_scrollbarController->animate(time); |
117 m_scrollbarController->didUpdateScrollOffset(time); | |
118 m_scrollbarController->animate(time); | |
119 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | |
120 | |
121 time += base::TimeDelta::FromSeconds(1); | |
122 m_scrollbarController->animate(time); | |
123 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | 130 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); |
124 | 131 |
125 time += base::TimeDelta::FromSeconds(1); | 132 time += base::TimeDelta::FromSeconds(1); |
126 m_scrollbarController->animate(time); | 133 m_scrollbarController->animate(time); |
127 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | 134 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); |
128 | 135 |
129 time += base::TimeDelta::FromSeconds(1); | 136 time += base::TimeDelta::FromSeconds(1); |
130 m_scrollbarController->animate(time); | 137 m_scrollbarController->animate(time); |
| 138 EXPECT_FLOAT_EQ(2.0f / 3.0f, m_scrollbarLayer->opacity()); |
| 139 |
| 140 time += base::TimeDelta::FromSeconds(1); |
| 141 m_scrollbarController->animate(time); |
| 142 EXPECT_FLOAT_EQ(1.0f / 3.0f, m_scrollbarLayer->opacity()); |
| 143 |
| 144 time += base::TimeDelta::FromSeconds(1); |
| 145 m_scrollbarController->didProgrammaticallyUpdateScroll(time); |
| 146 time += base::TimeDelta::FromSeconds(1); |
| 147 m_scrollbarController->animate(time); |
131 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | 148 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); |
132 | 149 |
133 time += base::TimeDelta::FromSeconds(1); | |
134 m_scrollbarController->animate(time); | |
135 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | |
136 | |
137 time += base::TimeDelta::FromSeconds(1); | |
138 m_scrollbarController->didPinchGestureEnd(time); | |
139 m_scrollbarController->animate(time); | |
140 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | |
141 | |
142 time += base::TimeDelta::FromSeconds(1); | 150 time += base::TimeDelta::FromSeconds(1); |
143 m_scrollbarController->animate(time); | 151 m_scrollbarController->animate(time); |
144 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); | 152 EXPECT_FLOAT_EQ(1, m_scrollbarLayer->opacity()); |
145 | 153 |
146 time += base::TimeDelta::FromSeconds(2); | 154 time += base::TimeDelta::FromSeconds(1); |
147 m_scrollbarController->animate(time); | 155 m_scrollbarController->animate(time); |
148 EXPECT_FLOAT_EQ(2 / 3.0f, m_scrollbarLayer->opacity()); | 156 EXPECT_FLOAT_EQ(2.0f / 3.0f, m_scrollbarLayer->opacity()); |
149 | 157 |
150 time += base::TimeDelta::FromSeconds(1); | 158 time += base::TimeDelta::FromSeconds(1); |
151 m_scrollbarController->animate(time); | 159 m_scrollbarController->animate(time); |
152 EXPECT_FLOAT_EQ(1 / 3.0f, m_scrollbarLayer->opacity()); | 160 EXPECT_FLOAT_EQ(1.0f / 3.0f, m_scrollbarLayer->opacity()); |
153 | 161 |
154 time += base::TimeDelta::FromSeconds(1); | 162 time += base::TimeDelta::FromSeconds(1); |
155 m_scrollbarController->animate(time); | 163 m_scrollbarController->animate(time); |
156 EXPECT_FLOAT_EQ(0, m_scrollbarLayer->opacity()); | 164 EXPECT_FLOAT_EQ(0, m_scrollbarLayer->opacity()); |
157 | |
158 } | 165 } |
159 | 166 |
160 } // namespace | 167 } // namespace |
161 } // namespace cc | 168 } // namespace cc |
OLD | NEW |