OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/input/top_controls_manager.h" | 5 #include "cc/input/browser_controls_offset_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
11 #include "base/logging.h" | 11 #include "base/logging.h" |
12 #include "base/time/time.h" | 12 #include "base/time/time.h" |
13 #include "cc/input/top_controls_manager_client.h" | 13 #include "cc/input/browser_controls_offset_manager_client.h" |
14 #include "cc/layers/layer_impl.h" | 14 #include "cc/layers/layer_impl.h" |
15 #include "cc/test/fake_impl_task_runner_provider.h" | 15 #include "cc/test/fake_impl_task_runner_provider.h" |
16 #include "cc/test/fake_layer_tree_host_impl.h" | 16 #include "cc/test/fake_layer_tree_host_impl.h" |
17 #include "cc/test/test_shared_bitmap_manager.h" | 17 #include "cc/test/test_shared_bitmap_manager.h" |
18 #include "cc/test/test_task_graph_runner.h" | 18 #include "cc/test/test_task_graph_runner.h" |
19 #include "cc/trees/layer_tree_impl.h" | 19 #include "cc/trees/layer_tree_impl.h" |
20 #include "testing/gtest/include/gtest/gtest.h" | 20 #include "testing/gtest/include/gtest/gtest.h" |
21 #include "ui/gfx/geometry/vector2d_f.h" | 21 #include "ui/gfx/geometry/vector2d_f.h" |
22 | 22 |
23 namespace cc { | 23 namespace cc { |
24 namespace { | 24 namespace { |
25 | 25 |
26 class MockTopControlsManagerClient : public TopControlsManagerClient { | 26 class MockBrowserControlsOffsetManagerClient |
| 27 : public BrowserControlsOffsetManagerClient { |
27 public: | 28 public: |
28 MockTopControlsManagerClient(float top_controls_height, | 29 MockBrowserControlsOffsetManagerClient(float top_controls_height, |
29 float top_controls_show_threshold, | 30 float top_controls_show_threshold, |
30 float top_controls_hide_threshold) | 31 float top_controls_hide_threshold) |
31 : host_impl_(&task_runner_provider_, | 32 : host_impl_(&task_runner_provider_, |
32 &shared_bitmap_manager_, | 33 &shared_bitmap_manager_, |
33 &task_graph_runner_), | 34 &task_graph_runner_), |
34 redraw_needed_(false), | 35 redraw_needed_(false), |
35 update_draw_properties_needed_(false), | 36 update_draw_properties_needed_(false), |
36 bottom_controls_height_(0.f), | 37 bottom_controls_height_(0.f), |
37 top_controls_shown_ratio_(1.f), | 38 top_controls_shown_ratio_(1.f), |
38 top_controls_height_(top_controls_height), | 39 top_controls_height_(top_controls_height), |
39 top_controls_show_threshold_(top_controls_show_threshold), | 40 top_controls_show_threshold_(top_controls_show_threshold), |
40 top_controls_hide_threshold_(top_controls_hide_threshold) { | 41 top_controls_hide_threshold_(top_controls_hide_threshold) { |
41 active_tree_ = base::MakeUnique<LayerTreeImpl>( | 42 active_tree_ = base::MakeUnique<LayerTreeImpl>( |
42 &host_impl_, new SyncedProperty<ScaleGroup>, new SyncedTopControls, | 43 &host_impl_, new SyncedProperty<ScaleGroup>, new SyncedTopControls, |
43 new SyncedElasticOverscroll); | 44 new SyncedElasticOverscroll); |
44 root_scroll_layer_ = LayerImpl::Create(active_tree_.get(), 1); | 45 root_scroll_layer_ = LayerImpl::Create(active_tree_.get(), 1); |
45 } | 46 } |
46 | 47 |
47 ~MockTopControlsManagerClient() override {} | 48 ~MockBrowserControlsOffsetManagerClient() override {} |
48 | 49 |
49 void DidChangeTopControlsPosition() override { | 50 void DidChangeTopControlsPosition() override { |
50 redraw_needed_ = true; | 51 redraw_needed_ = true; |
51 update_draw_properties_needed_ = true; | 52 update_draw_properties_needed_ = true; |
52 } | 53 } |
53 | 54 |
54 bool HaveRootScrollLayer() const override { return true; } | 55 bool HaveRootScrollLayer() const override { return true; } |
55 | 56 |
56 float BottomControlsHeight() const override { | 57 float BottomControlsHeight() const override { |
57 return bottom_controls_height_; | 58 return bottom_controls_height_; |
58 } | 59 } |
59 | 60 |
60 float TopControlsHeight() const override { return top_controls_height_; } | 61 float TopControlsHeight() const override { return top_controls_height_; } |
61 | 62 |
62 void SetCurrentTopControlsShownRatio(float ratio) override { | 63 void SetCurrentTopControlsShownRatio(float ratio) override { |
63 ASSERT_FALSE(std::isnan(ratio)); | 64 ASSERT_FALSE(std::isnan(ratio)); |
64 ASSERT_FALSE(ratio == std::numeric_limits<float>::infinity()); | 65 ASSERT_FALSE(ratio == std::numeric_limits<float>::infinity()); |
65 ASSERT_FALSE(ratio == -std::numeric_limits<float>::infinity()); | 66 ASSERT_FALSE(ratio == -std::numeric_limits<float>::infinity()); |
66 ratio = std::max(ratio, 0.f); | 67 ratio = std::max(ratio, 0.f); |
67 ratio = std::min(ratio, 1.f); | 68 ratio = std::min(ratio, 1.f); |
68 top_controls_shown_ratio_ = ratio; | 69 top_controls_shown_ratio_ = ratio; |
69 } | 70 } |
70 | 71 |
71 float CurrentTopControlsShownRatio() const override { | 72 float CurrentTopControlsShownRatio() const override { |
72 return top_controls_shown_ratio_; | 73 return top_controls_shown_ratio_; |
73 } | 74 } |
74 | 75 |
75 LayerImpl* rootScrollLayer() { | 76 LayerImpl* rootScrollLayer() { return root_scroll_layer_.get(); } |
76 return root_scroll_layer_.get(); | |
77 } | |
78 | 77 |
79 TopControlsManager* manager() { | 78 BrowserControlsOffsetManager* manager() { |
80 if (!manager_) { | 79 if (!manager_) { |
81 manager_ = TopControlsManager::Create(this, | 80 manager_ = BrowserControlsOffsetManager::Create( |
82 top_controls_show_threshold_, | 81 this, top_controls_show_threshold_, top_controls_hide_threshold_); |
83 top_controls_hide_threshold_); | |
84 } | 82 } |
85 return manager_.get(); | 83 return manager_.get(); |
86 } | 84 } |
87 | 85 |
88 void SetTopControlsHeight(float height) { top_controls_height_ = height; } | 86 void SetTopControlsHeight(float height) { top_controls_height_ = height; } |
89 | 87 |
90 void SetBottomControlsHeight(float height) { | 88 void SetBottomControlsHeight(float height) { |
91 bottom_controls_height_ = height; | 89 bottom_controls_height_ = height; |
92 } | 90 } |
93 | 91 |
94 private: | 92 private: |
95 FakeImplTaskRunnerProvider task_runner_provider_; | 93 FakeImplTaskRunnerProvider task_runner_provider_; |
96 TestSharedBitmapManager shared_bitmap_manager_; | 94 TestSharedBitmapManager shared_bitmap_manager_; |
97 TestTaskGraphRunner task_graph_runner_; | 95 TestTaskGraphRunner task_graph_runner_; |
98 FakeLayerTreeHostImpl host_impl_; | 96 FakeLayerTreeHostImpl host_impl_; |
99 std::unique_ptr<LayerTreeImpl> active_tree_; | 97 std::unique_ptr<LayerTreeImpl> active_tree_; |
100 std::unique_ptr<LayerImpl> root_scroll_layer_; | 98 std::unique_ptr<LayerImpl> root_scroll_layer_; |
101 std::unique_ptr<TopControlsManager> manager_; | 99 std::unique_ptr<BrowserControlsOffsetManager> manager_; |
102 bool redraw_needed_; | 100 bool redraw_needed_; |
103 bool update_draw_properties_needed_; | 101 bool update_draw_properties_needed_; |
104 | 102 |
105 float bottom_controls_height_; | 103 float bottom_controls_height_; |
106 float top_controls_shown_ratio_; | 104 float top_controls_shown_ratio_; |
107 float top_controls_height_; | 105 float top_controls_height_; |
108 float top_controls_show_threshold_; | 106 float top_controls_show_threshold_; |
109 float top_controls_hide_threshold_; | 107 float top_controls_hide_threshold_; |
110 }; | 108 }; |
111 | 109 |
112 TEST(TopControlsManagerTest, EnsureScrollThresholdApplied) { | 110 TEST(BrowserControlsOffsetManagerTest, EnsureScrollThresholdApplied) { |
113 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); | 111 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
114 TopControlsManager* manager = client.manager(); | 112 BrowserControlsOffsetManager* manager = client.manager(); |
115 | 113 |
116 manager->ScrollBegin(); | 114 manager->ScrollBegin(); |
117 | 115 |
118 // Scroll down to hide the controls entirely. | 116 // Scroll down to hide the controls entirely. |
119 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f)); | 117 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f)); |
120 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset()); | 118 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset()); |
121 | 119 |
122 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f)); | 120 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f)); |
123 EXPECT_FLOAT_EQ(-60.f, manager->ControlsTopOffset()); | 121 EXPECT_FLOAT_EQ(-60.f, manager->ControlsTopOffset()); |
124 | 122 |
(...skipping 21 matching lines...) Expand all Loading... |
146 manager->ScrollBy(gfx::Vector2dF(0.f, -100.f)); | 144 manager->ScrollBy(gfx::Vector2dF(0.f, -100.f)); |
147 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 145 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
148 | 146 |
149 // See that scrolling down the page now will result in the controls hiding. | 147 // See that scrolling down the page now will result in the controls hiding. |
150 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); | 148 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); |
151 EXPECT_FLOAT_EQ(-20.f, manager->ControlsTopOffset()); | 149 EXPECT_FLOAT_EQ(-20.f, manager->ControlsTopOffset()); |
152 | 150 |
153 manager->ScrollEnd(); | 151 manager->ScrollEnd(); |
154 } | 152 } |
155 | 153 |
156 TEST(TopControlsManagerTest, PartialShownHideAnimation) { | 154 TEST(BrowserControlsOffsetManagerTest, PartialShownHideAnimation) { |
157 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); | 155 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
158 TopControlsManager* manager = client.manager(); | 156 BrowserControlsOffsetManager* manager = client.manager(); |
159 manager->ScrollBegin(); | 157 manager->ScrollBegin(); |
160 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); | 158 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); |
161 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 159 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
162 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 160 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
163 manager->ScrollEnd(); | 161 manager->ScrollEnd(); |
164 | 162 |
165 manager->ScrollBegin(); | 163 manager->ScrollBegin(); |
166 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); | 164 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); |
167 EXPECT_FLOAT_EQ(-85.f, manager->ControlsTopOffset()); | 165 EXPECT_FLOAT_EQ(-85.f, manager->ControlsTopOffset()); |
168 EXPECT_FLOAT_EQ(15.f, manager->ContentTopOffset()); | 166 EXPECT_FLOAT_EQ(15.f, manager->ContentTopOffset()); |
169 manager->ScrollEnd(); | 167 manager->ScrollEnd(); |
170 | 168 |
171 EXPECT_TRUE(manager->has_animation()); | 169 EXPECT_TRUE(manager->has_animation()); |
172 | 170 |
173 base::TimeTicks time = base::TimeTicks::Now(); | 171 base::TimeTicks time = base::TimeTicks::Now(); |
174 float previous; | 172 float previous; |
175 while (manager->has_animation()) { | 173 while (manager->has_animation()) { |
176 previous = manager->TopControlsShownRatio(); | 174 previous = manager->TopControlsShownRatio(); |
177 time = base::TimeDelta::FromMicroseconds(100) + time; | 175 time = base::TimeDelta::FromMicroseconds(100) + time; |
178 manager->Animate(time); | 176 manager->Animate(time); |
179 EXPECT_LT(manager->TopControlsShownRatio(), previous); | 177 EXPECT_LT(manager->TopControlsShownRatio(), previous); |
180 } | 178 } |
181 EXPECT_FALSE(manager->has_animation()); | 179 EXPECT_FALSE(manager->has_animation()); |
182 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 180 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
183 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 181 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
184 } | 182 } |
185 | 183 |
186 TEST(TopControlsManagerTest, PartialShownShowAnimation) { | 184 TEST(BrowserControlsOffsetManagerTest, PartialShownShowAnimation) { |
187 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); | 185 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
188 TopControlsManager* manager = client.manager(); | 186 BrowserControlsOffsetManager* manager = client.manager(); |
189 manager->ScrollBegin(); | 187 manager->ScrollBegin(); |
190 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); | 188 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); |
191 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 189 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
192 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 190 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
193 manager->ScrollEnd(); | 191 manager->ScrollEnd(); |
194 | 192 |
195 manager->ScrollBegin(); | 193 manager->ScrollBegin(); |
196 manager->ScrollBy(gfx::Vector2dF(0.f, -70.f)); | 194 manager->ScrollBy(gfx::Vector2dF(0.f, -70.f)); |
197 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset()); | 195 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset()); |
198 EXPECT_FLOAT_EQ(70.f, manager->ContentTopOffset()); | 196 EXPECT_FLOAT_EQ(70.f, manager->ContentTopOffset()); |
199 manager->ScrollEnd(); | 197 manager->ScrollEnd(); |
200 | 198 |
201 EXPECT_TRUE(manager->has_animation()); | 199 EXPECT_TRUE(manager->has_animation()); |
202 | 200 |
203 base::TimeTicks time = base::TimeTicks::Now(); | 201 base::TimeTicks time = base::TimeTicks::Now(); |
204 float previous; | 202 float previous; |
205 while (manager->has_animation()) { | 203 while (manager->has_animation()) { |
206 previous = manager->TopControlsShownRatio(); | 204 previous = manager->TopControlsShownRatio(); |
207 time = base::TimeDelta::FromMicroseconds(100) + time; | 205 time = base::TimeDelta::FromMicroseconds(100) + time; |
208 manager->Animate(time); | 206 manager->Animate(time); |
209 EXPECT_GT(manager->TopControlsShownRatio(), previous); | 207 EXPECT_GT(manager->TopControlsShownRatio(), previous); |
210 } | 208 } |
211 EXPECT_FALSE(manager->has_animation()); | 209 EXPECT_FALSE(manager->has_animation()); |
212 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 210 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
213 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); | 211 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); |
214 } | 212 } |
215 | 213 |
216 TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdShows) { | 214 TEST(BrowserControlsOffsetManagerTest, |
217 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); | 215 PartialHiddenWithAmbiguousThresholdShows) { |
218 TopControlsManager* manager = client.manager(); | 216 MockBrowserControlsOffsetManagerClient client(100.f, 0.25f, 0.25f); |
| 217 BrowserControlsOffsetManager* manager = client.manager(); |
219 | 218 |
220 manager->ScrollBegin(); | 219 manager->ScrollBegin(); |
221 | 220 |
222 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); | 221 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); |
223 EXPECT_FLOAT_EQ(-20.f, manager->ControlsTopOffset()); | 222 EXPECT_FLOAT_EQ(-20.f, manager->ControlsTopOffset()); |
224 EXPECT_FLOAT_EQ(80.f, manager->ContentTopOffset()); | 223 EXPECT_FLOAT_EQ(80.f, manager->ContentTopOffset()); |
225 | 224 |
226 manager->ScrollEnd(); | 225 manager->ScrollEnd(); |
227 EXPECT_TRUE(manager->has_animation()); | 226 EXPECT_TRUE(manager->has_animation()); |
228 | 227 |
229 base::TimeTicks time = base::TimeTicks::Now(); | 228 base::TimeTicks time = base::TimeTicks::Now(); |
230 float previous; | 229 float previous; |
231 while (manager->has_animation()) { | 230 while (manager->has_animation()) { |
232 previous = manager->TopControlsShownRatio(); | 231 previous = manager->TopControlsShownRatio(); |
233 time = base::TimeDelta::FromMicroseconds(100) + time; | 232 time = base::TimeDelta::FromMicroseconds(100) + time; |
234 manager->Animate(time); | 233 manager->Animate(time); |
235 EXPECT_GT(manager->TopControlsShownRatio(), previous); | 234 EXPECT_GT(manager->TopControlsShownRatio(), previous); |
236 } | 235 } |
237 EXPECT_FALSE(manager->has_animation()); | 236 EXPECT_FALSE(manager->has_animation()); |
238 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 237 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
239 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); | 238 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); |
240 } | 239 } |
241 | 240 |
242 TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdHides) { | 241 TEST(BrowserControlsOffsetManagerTest, |
243 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); | 242 PartialHiddenWithAmbiguousThresholdHides) { |
244 TopControlsManager* manager = client.manager(); | 243 MockBrowserControlsOffsetManagerClient client(100.f, 0.25f, 0.25f); |
| 244 BrowserControlsOffsetManager* manager = client.manager(); |
245 | 245 |
246 manager->ScrollBegin(); | 246 manager->ScrollBegin(); |
247 | 247 |
248 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f)); | 248 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f)); |
249 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset()); | 249 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset()); |
250 EXPECT_FLOAT_EQ(70.f, manager->ContentTopOffset()); | 250 EXPECT_FLOAT_EQ(70.f, manager->ContentTopOffset()); |
251 | 251 |
252 manager->ScrollEnd(); | 252 manager->ScrollEnd(); |
253 EXPECT_TRUE(manager->has_animation()); | 253 EXPECT_TRUE(manager->has_animation()); |
254 | 254 |
255 base::TimeTicks time = base::TimeTicks::Now(); | 255 base::TimeTicks time = base::TimeTicks::Now(); |
256 float previous; | 256 float previous; |
257 while (manager->has_animation()) { | 257 while (manager->has_animation()) { |
258 previous = manager->TopControlsShownRatio(); | 258 previous = manager->TopControlsShownRatio(); |
259 time = base::TimeDelta::FromMicroseconds(100) + time; | 259 time = base::TimeDelta::FromMicroseconds(100) + time; |
260 manager->Animate(time); | 260 manager->Animate(time); |
261 EXPECT_LT(manager->TopControlsShownRatio(), previous); | 261 EXPECT_LT(manager->TopControlsShownRatio(), previous); |
262 } | 262 } |
263 EXPECT_FALSE(manager->has_animation()); | 263 EXPECT_FALSE(manager->has_animation()); |
264 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 264 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
265 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 265 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
266 } | 266 } |
267 | 267 |
268 TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdHides) { | 268 TEST(BrowserControlsOffsetManagerTest, |
269 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); | 269 PartialShownWithAmbiguousThresholdHides) { |
270 TopControlsManager* manager = client.manager(); | 270 MockBrowserControlsOffsetManagerClient client(100.f, 0.25f, 0.25f); |
| 271 BrowserControlsOffsetManager* manager = client.manager(); |
271 | 272 |
272 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f)); | 273 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f)); |
273 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 274 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
274 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 275 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
275 | 276 |
276 manager->ScrollBegin(); | 277 manager->ScrollBegin(); |
277 | 278 |
278 manager->ScrollBy(gfx::Vector2dF(0.f, -20.f)); | 279 manager->ScrollBy(gfx::Vector2dF(0.f, -20.f)); |
279 EXPECT_FLOAT_EQ(-80.f, manager->ControlsTopOffset()); | 280 EXPECT_FLOAT_EQ(-80.f, manager->ControlsTopOffset()); |
280 EXPECT_FLOAT_EQ(20.f, manager->ContentTopOffset()); | 281 EXPECT_FLOAT_EQ(20.f, manager->ContentTopOffset()); |
281 | 282 |
282 manager->ScrollEnd(); | 283 manager->ScrollEnd(); |
283 EXPECT_TRUE(manager->has_animation()); | 284 EXPECT_TRUE(manager->has_animation()); |
284 | 285 |
285 base::TimeTicks time = base::TimeTicks::Now(); | 286 base::TimeTicks time = base::TimeTicks::Now(); |
286 float previous; | 287 float previous; |
287 while (manager->has_animation()) { | 288 while (manager->has_animation()) { |
288 previous = manager->TopControlsShownRatio(); | 289 previous = manager->TopControlsShownRatio(); |
289 time = base::TimeDelta::FromMicroseconds(100) + time; | 290 time = base::TimeDelta::FromMicroseconds(100) + time; |
290 manager->Animate(time); | 291 manager->Animate(time); |
291 EXPECT_LT(manager->TopControlsShownRatio(), previous); | 292 EXPECT_LT(manager->TopControlsShownRatio(), previous); |
292 } | 293 } |
293 EXPECT_FALSE(manager->has_animation()); | 294 EXPECT_FALSE(manager->has_animation()); |
294 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 295 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
295 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 296 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
296 } | 297 } |
297 | 298 |
298 TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdShows) { | 299 TEST(BrowserControlsOffsetManagerTest, |
299 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); | 300 PartialShownWithAmbiguousThresholdShows) { |
300 TopControlsManager* manager = client.manager(); | 301 MockBrowserControlsOffsetManagerClient client(100.f, 0.25f, 0.25f); |
| 302 BrowserControlsOffsetManager* manager = client.manager(); |
301 | 303 |
302 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f)); | 304 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f)); |
303 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 305 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
304 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 306 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
305 | 307 |
306 manager->ScrollBegin(); | 308 manager->ScrollBegin(); |
307 | 309 |
308 manager->ScrollBy(gfx::Vector2dF(0.f, -30.f)); | 310 manager->ScrollBy(gfx::Vector2dF(0.f, -30.f)); |
309 EXPECT_FLOAT_EQ(-70.f, manager->ControlsTopOffset()); | 311 EXPECT_FLOAT_EQ(-70.f, manager->ControlsTopOffset()); |
310 EXPECT_FLOAT_EQ(30.f, manager->ContentTopOffset()); | 312 EXPECT_FLOAT_EQ(30.f, manager->ContentTopOffset()); |
311 | 313 |
312 manager->ScrollEnd(); | 314 manager->ScrollEnd(); |
313 EXPECT_TRUE(manager->has_animation()); | 315 EXPECT_TRUE(manager->has_animation()); |
314 | 316 |
315 base::TimeTicks time = base::TimeTicks::Now(); | 317 base::TimeTicks time = base::TimeTicks::Now(); |
316 float previous; | 318 float previous; |
317 while (manager->has_animation()) { | 319 while (manager->has_animation()) { |
318 previous = manager->TopControlsShownRatio(); | 320 previous = manager->TopControlsShownRatio(); |
319 time = base::TimeDelta::FromMicroseconds(100) + time; | 321 time = base::TimeDelta::FromMicroseconds(100) + time; |
320 manager->Animate(time); | 322 manager->Animate(time); |
321 EXPECT_GT(manager->TopControlsShownRatio(), previous); | 323 EXPECT_GT(manager->TopControlsShownRatio(), previous); |
322 } | 324 } |
323 EXPECT_FALSE(manager->has_animation()); | 325 EXPECT_FALSE(manager->has_animation()); |
324 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 326 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
325 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); | 327 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); |
326 } | 328 } |
327 | 329 |
328 TEST(TopControlsManagerTest, PinchIgnoresScroll) { | 330 TEST(BrowserControlsOffsetManagerTest, PinchIgnoresScroll) { |
329 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); | 331 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
330 TopControlsManager* manager = client.manager(); | 332 BrowserControlsOffsetManager* manager = client.manager(); |
331 | 333 |
332 // Hide the controls. | 334 // Hide the controls. |
333 manager->ScrollBegin(); | 335 manager->ScrollBegin(); |
334 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 336 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
335 | 337 |
336 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); | 338 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); |
337 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 339 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
338 | 340 |
339 manager->PinchBegin(); | 341 manager->PinchBegin(); |
340 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 342 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
341 | 343 |
342 // Scrolls are ignored during pinch. | 344 // Scrolls are ignored during pinch. |
343 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); | 345 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); |
344 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 346 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
345 manager->PinchEnd(); | 347 manager->PinchEnd(); |
346 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 348 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
347 | 349 |
348 // Scrolls should no long be ignored. | 350 // Scrolls should no long be ignored. |
349 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); | 351 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); |
350 EXPECT_FLOAT_EQ(-85.f, manager->ControlsTopOffset()); | 352 EXPECT_FLOAT_EQ(-85.f, manager->ControlsTopOffset()); |
351 EXPECT_FLOAT_EQ(15.f, manager->ContentTopOffset()); | 353 EXPECT_FLOAT_EQ(15.f, manager->ContentTopOffset()); |
352 manager->ScrollEnd(); | 354 manager->ScrollEnd(); |
353 | 355 |
354 EXPECT_TRUE(manager->has_animation()); | 356 EXPECT_TRUE(manager->has_animation()); |
355 } | 357 } |
356 | 358 |
357 TEST(TopControlsManagerTest, PinchBeginStartsAnimationIfNecessary) { | 359 TEST(BrowserControlsOffsetManagerTest, PinchBeginStartsAnimationIfNecessary) { |
358 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); | 360 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
359 TopControlsManager* manager = client.manager(); | 361 BrowserControlsOffsetManager* manager = client.manager(); |
360 | 362 |
361 manager->ScrollBegin(); | 363 manager->ScrollBegin(); |
362 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); | 364 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); |
363 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 365 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
364 | 366 |
365 manager->PinchBegin(); | 367 manager->PinchBegin(); |
366 EXPECT_FALSE(manager->has_animation()); | 368 EXPECT_FALSE(manager->has_animation()); |
367 | 369 |
368 manager->PinchEnd(); | 370 manager->PinchEnd(); |
369 EXPECT_FALSE(manager->has_animation()); | 371 EXPECT_FALSE(manager->has_animation()); |
(...skipping 30 matching lines...) Expand all Loading... |
400 while (manager->has_animation()) { | 402 while (manager->has_animation()) { |
401 previous = manager->TopControlsShownRatio(); | 403 previous = manager->TopControlsShownRatio(); |
402 time = base::TimeDelta::FromMicroseconds(100) + time; | 404 time = base::TimeDelta::FromMicroseconds(100) + time; |
403 manager->Animate(time); | 405 manager->Animate(time); |
404 EXPECT_GT(manager->TopControlsShownRatio(), previous); | 406 EXPECT_GT(manager->TopControlsShownRatio(), previous); |
405 } | 407 } |
406 EXPECT_FALSE(manager->has_animation()); | 408 EXPECT_FALSE(manager->has_animation()); |
407 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 409 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
408 } | 410 } |
409 | 411 |
410 TEST(TopControlsManagerTest, HeightChangeMaintainsFullyVisibleControls) { | 412 TEST(BrowserControlsOffsetManagerTest, |
411 MockTopControlsManagerClient client(0.f, 0.5f, 0.5f); | 413 HeightChangeMaintainsFullyVisibleControls) { |
412 TopControlsManager* manager = client.manager(); | 414 MockBrowserControlsOffsetManagerClient client(0.f, 0.5f, 0.5f); |
| 415 BrowserControlsOffsetManager* manager = client.manager(); |
413 | 416 |
414 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 417 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
415 | 418 |
416 client.SetTopControlsHeight(100.f); | 419 client.SetTopControlsHeight(100.f); |
417 EXPECT_FALSE(manager->has_animation()); | 420 EXPECT_FALSE(manager->has_animation()); |
418 EXPECT_FLOAT_EQ(100.f, manager->TopControlsHeight()); | 421 EXPECT_FLOAT_EQ(100.f, manager->TopControlsHeight()); |
419 EXPECT_FLOAT_EQ(0, manager->ControlsTopOffset()); | 422 EXPECT_FLOAT_EQ(0, manager->ControlsTopOffset()); |
420 | 423 |
421 client.SetTopControlsHeight(50.f); | 424 client.SetTopControlsHeight(50.f); |
422 EXPECT_FALSE(manager->has_animation()); | 425 EXPECT_FALSE(manager->has_animation()); |
423 EXPECT_FLOAT_EQ(50.f, manager->TopControlsHeight()); | 426 EXPECT_FLOAT_EQ(50.f, manager->TopControlsHeight()); |
424 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 427 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
425 } | 428 } |
426 | 429 |
427 TEST(TopControlsManagerTest, GrowingHeightKeepsTopControlsHidden) { | 430 TEST(BrowserControlsOffsetManagerTest, GrowingHeightKeepsTopControlsHidden) { |
428 MockTopControlsManagerClient client(0.f, 0.5f, 0.5f); | 431 MockBrowserControlsOffsetManagerClient client(0.f, 0.5f, 0.5f); |
429 TopControlsManager* manager = client.manager(); | 432 BrowserControlsOffsetManager* manager = client.manager(); |
430 client.SetTopControlsHeight(1.f); | 433 client.SetTopControlsHeight(1.f); |
431 manager->UpdateTopControlsState(HIDDEN, HIDDEN, false); | 434 manager->UpdateTopControlsState(HIDDEN, HIDDEN, false); |
432 EXPECT_EQ(-1.f, manager->ControlsTopOffset()); | 435 EXPECT_EQ(-1.f, manager->ControlsTopOffset()); |
433 EXPECT_EQ(0.f, manager->ContentTopOffset()); | 436 EXPECT_EQ(0.f, manager->ContentTopOffset()); |
434 | 437 |
435 client.SetTopControlsHeight(50.f); | 438 client.SetTopControlsHeight(50.f); |
436 EXPECT_FALSE(manager->has_animation()); | 439 EXPECT_FALSE(manager->has_animation()); |
437 EXPECT_EQ(-50.f, manager->ControlsTopOffset()); | 440 EXPECT_EQ(-50.f, manager->ControlsTopOffset()); |
438 EXPECT_EQ(0.f, manager->ContentTopOffset()); | 441 EXPECT_EQ(0.f, manager->ContentTopOffset()); |
439 | 442 |
440 client.SetTopControlsHeight(100.f); | 443 client.SetTopControlsHeight(100.f); |
441 EXPECT_FALSE(manager->has_animation()); | 444 EXPECT_FALSE(manager->has_animation()); |
442 EXPECT_EQ(-100.f, manager->ControlsTopOffset()); | 445 EXPECT_EQ(-100.f, manager->ControlsTopOffset()); |
443 EXPECT_EQ(0.f, manager->ContentTopOffset()); | 446 EXPECT_EQ(0.f, manager->ContentTopOffset()); |
444 } | 447 } |
445 | 448 |
446 TEST(TopControlsManagerTest, ShrinkingHeightKeepsTopControlsHidden) { | 449 TEST(BrowserControlsOffsetManagerTest, ShrinkingHeightKeepsTopControlsHidden) { |
447 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); | 450 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
448 TopControlsManager* manager = client.manager(); | 451 BrowserControlsOffsetManager* manager = client.manager(); |
449 | 452 |
450 manager->ScrollBegin(); | 453 manager->ScrollBegin(); |
451 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); | 454 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); |
452 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 455 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
453 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 456 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
454 manager->ScrollEnd(); | 457 manager->ScrollEnd(); |
455 | 458 |
456 client.SetTopControlsHeight(50.f); | 459 client.SetTopControlsHeight(50.f); |
457 EXPECT_FALSE(manager->has_animation()); | 460 EXPECT_FALSE(manager->has_animation()); |
458 EXPECT_FLOAT_EQ(-50.f, manager->ControlsTopOffset()); | 461 EXPECT_FLOAT_EQ(-50.f, manager->ControlsTopOffset()); |
459 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 462 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
460 | 463 |
461 client.SetTopControlsHeight(0.f); | 464 client.SetTopControlsHeight(0.f); |
462 EXPECT_FALSE(manager->has_animation()); | 465 EXPECT_FALSE(manager->has_animation()); |
463 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 466 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
464 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 467 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
465 } | 468 } |
466 | 469 |
467 TEST(TopControlsManagerTest, ScrollByWithZeroHeightControlsIsNoop) { | 470 TEST(BrowserControlsOffsetManagerTest, ScrollByWithZeroHeightControlsIsNoop) { |
468 MockTopControlsManagerClient client(0.f, 0.5f, 0.5f); | 471 MockBrowserControlsOffsetManagerClient client(0.f, 0.5f, 0.5f); |
469 TopControlsManager* manager = client.manager(); | 472 BrowserControlsOffsetManager* manager = client.manager(); |
470 manager->UpdateTopControlsState(BOTH, BOTH, false); | 473 manager->UpdateTopControlsState(BOTH, BOTH, false); |
471 | 474 |
472 manager->ScrollBegin(); | 475 manager->ScrollBegin(); |
473 gfx::Vector2dF pending = manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); | 476 gfx::Vector2dF pending = manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); |
474 EXPECT_FLOAT_EQ(20.f, pending.y()); | 477 EXPECT_FLOAT_EQ(20.f, pending.y()); |
475 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 478 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
476 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 479 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
477 EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); | 480 EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); |
478 manager->ScrollEnd(); | 481 manager->ScrollEnd(); |
479 } | 482 } |
480 | 483 |
481 TEST(TopControlsManagerTest, ScrollThenRestoreBottomControls) { | 484 TEST(BrowserControlsOffsetManagerTest, ScrollThenRestoreBottomControls) { |
482 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); | 485 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
483 client.SetBottomControlsHeight(100.f); | 486 client.SetBottomControlsHeight(100.f); |
484 TopControlsManager* manager = client.manager(); | 487 BrowserControlsOffsetManager* manager = client.manager(); |
485 manager->ScrollBegin(); | 488 manager->ScrollBegin(); |
486 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); | 489 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); |
487 EXPECT_FLOAT_EQ(80.f, manager->ContentBottomOffset()); | 490 EXPECT_FLOAT_EQ(80.f, manager->ContentBottomOffset()); |
488 EXPECT_FLOAT_EQ(0.8f, manager->BottomControlsShownRatio()); | 491 EXPECT_FLOAT_EQ(0.8f, manager->BottomControlsShownRatio()); |
489 manager->ScrollEnd(); | 492 manager->ScrollEnd(); |
490 | 493 |
491 manager->ScrollBegin(); | 494 manager->ScrollBegin(); |
492 manager->ScrollBy(gfx::Vector2dF(0.f, -200.f)); | 495 manager->ScrollBy(gfx::Vector2dF(0.f, -200.f)); |
493 EXPECT_FLOAT_EQ(100.f, manager->ContentBottomOffset()); | 496 EXPECT_FLOAT_EQ(100.f, manager->ContentBottomOffset()); |
494 EXPECT_FLOAT_EQ(1.f, manager->BottomControlsShownRatio()); | 497 EXPECT_FLOAT_EQ(1.f, manager->BottomControlsShownRatio()); |
495 manager->ScrollEnd(); | 498 manager->ScrollEnd(); |
496 } | 499 } |
497 | 500 |
498 TEST(TopControlsManagerTest, ScrollThenRestoreBottomControlsNoTopControls) { | 501 TEST(BrowserControlsOffsetManagerTest, |
499 MockTopControlsManagerClient client(0.f, 0.5f, 0.5f); | 502 ScrollThenRestoreBottomControlsNoTopControls) { |
| 503 MockBrowserControlsOffsetManagerClient client(0.f, 0.5f, 0.5f); |
500 client.SetBottomControlsHeight(100.f); | 504 client.SetBottomControlsHeight(100.f); |
501 TopControlsManager* manager = client.manager(); | 505 BrowserControlsOffsetManager* manager = client.manager(); |
502 manager->ScrollBegin(); | 506 manager->ScrollBegin(); |
503 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); | 507 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); |
504 EXPECT_FLOAT_EQ(80.f, manager->ContentBottomOffset()); | 508 EXPECT_FLOAT_EQ(80.f, manager->ContentBottomOffset()); |
505 EXPECT_FLOAT_EQ(0.8f, manager->BottomControlsShownRatio()); | 509 EXPECT_FLOAT_EQ(0.8f, manager->BottomControlsShownRatio()); |
506 manager->ScrollEnd(); | 510 manager->ScrollEnd(); |
507 | 511 |
508 manager->ScrollBegin(); | 512 manager->ScrollBegin(); |
509 manager->ScrollBy(gfx::Vector2dF(0.f, -200.f)); | 513 manager->ScrollBy(gfx::Vector2dF(0.f, -200.f)); |
510 EXPECT_FLOAT_EQ(100.f, manager->ContentBottomOffset()); | 514 EXPECT_FLOAT_EQ(100.f, manager->ContentBottomOffset()); |
511 EXPECT_FLOAT_EQ(1.f, manager->BottomControlsShownRatio()); | 515 EXPECT_FLOAT_EQ(1.f, manager->BottomControlsShownRatio()); |
512 manager->ScrollEnd(); | 516 manager->ScrollEnd(); |
513 } | 517 } |
514 | 518 |
515 TEST(TopControlsManagerTest, HideAndPeekBottomControls) { | 519 TEST(BrowserControlsOffsetManagerTest, HideAndPeekBottomControls) { |
516 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); | 520 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
517 client.SetBottomControlsHeight(100.f); | 521 client.SetBottomControlsHeight(100.f); |
518 TopControlsManager* manager = client.manager(); | 522 BrowserControlsOffsetManager* manager = client.manager(); |
519 manager->ScrollBegin(); | 523 manager->ScrollBegin(); |
520 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); | 524 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); |
521 EXPECT_FLOAT_EQ(0.f, manager->ContentBottomOffset()); | 525 EXPECT_FLOAT_EQ(0.f, manager->ContentBottomOffset()); |
522 EXPECT_FLOAT_EQ(0.f, manager->BottomControlsShownRatio()); | 526 EXPECT_FLOAT_EQ(0.f, manager->BottomControlsShownRatio()); |
523 manager->ScrollEnd(); | 527 manager->ScrollEnd(); |
524 | 528 |
525 manager->ScrollBegin(); | 529 manager->ScrollBegin(); |
526 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); | 530 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); |
527 EXPECT_FLOAT_EQ(15.f, manager->ContentBottomOffset()); | 531 EXPECT_FLOAT_EQ(15.f, manager->ContentBottomOffset()); |
528 EXPECT_FLOAT_EQ(0.15f, manager->BottomControlsShownRatio()); | 532 EXPECT_FLOAT_EQ(0.15f, manager->BottomControlsShownRatio()); |
529 manager->ScrollEnd(); | 533 manager->ScrollEnd(); |
530 } | 534 } |
531 | 535 |
532 TEST(TopControlsManagerTest, HideAndImmediateShowKeepsControlsVisible) { | 536 TEST(BrowserControlsOffsetManagerTest, |
533 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); | 537 HideAndImmediateShowKeepsControlsVisible) { |
| 538 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
534 client.SetBottomControlsHeight(100.f); | 539 client.SetBottomControlsHeight(100.f); |
535 TopControlsManager* manager = client.manager(); | 540 BrowserControlsOffsetManager* manager = client.manager(); |
536 EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); | 541 EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); |
537 | 542 |
538 manager->UpdateTopControlsState(BOTH, HIDDEN, true); | 543 manager->UpdateTopControlsState(BOTH, HIDDEN, true); |
539 EXPECT_TRUE(manager->has_animation()); | 544 EXPECT_TRUE(manager->has_animation()); |
540 EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); | 545 EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); |
541 | 546 |
542 manager->UpdateTopControlsState(BOTH, SHOWN, true); | 547 manager->UpdateTopControlsState(BOTH, SHOWN, true); |
543 EXPECT_FALSE(manager->has_animation()); | 548 EXPECT_FALSE(manager->has_animation()); |
544 EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); | 549 EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); |
545 } | 550 } |
546 | 551 |
547 } // namespace | 552 } // namespace |
548 } // namespace cc | 553 } // namespace cc |
OLD | NEW |