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

Side by Side Diff: cc/input/browser_controls_offset_manager_unittest.cc

Issue 2443613002: Rename classes related to top controls (Closed)
Patch Set: Created 4 years, 2 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
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698