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

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

Issue 2443613002: Rename classes related to top controls (Closed)
Patch Set: fix test Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/input/browser_controls_offset_manager_client.h ('k') | cc/input/browser_controls_state.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 browser_controls_show_threshold,
30 float top_controls_hide_threshold) 31 float browser_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 browser_controls_show_threshold_(browser_controls_show_threshold),
40 top_controls_hide_threshold_(top_controls_hide_threshold) { 41 browser_controls_hide_threshold_(browser_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 SyncedBrowserControls,
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 DidChangeBrowserControlsPosition() 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 SetCurrentBrowserControlsShownRatio(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 CurrentBrowserControlsShownRatio() 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, browser_controls_show_threshold_,
83 top_controls_hide_threshold_); 82 browser_controls_hide_threshold_);
84 } 83 }
85 return manager_.get(); 84 return manager_.get();
86 } 85 }
87 86
88 void SetTopControlsHeight(float height) { top_controls_height_ = height; } 87 void SetBrowserControlsHeight(float height) { top_controls_height_ = height; }
89 88
90 void SetBottomControlsHeight(float height) { 89 void SetBottomControlsHeight(float height) {
91 bottom_controls_height_ = height; 90 bottom_controls_height_ = height;
92 } 91 }
93 92
94 private: 93 private:
95 FakeImplTaskRunnerProvider task_runner_provider_; 94 FakeImplTaskRunnerProvider task_runner_provider_;
96 TestSharedBitmapManager shared_bitmap_manager_; 95 TestSharedBitmapManager shared_bitmap_manager_;
97 TestTaskGraphRunner task_graph_runner_; 96 TestTaskGraphRunner task_graph_runner_;
98 FakeLayerTreeHostImpl host_impl_; 97 FakeLayerTreeHostImpl host_impl_;
99 std::unique_ptr<LayerTreeImpl> active_tree_; 98 std::unique_ptr<LayerTreeImpl> active_tree_;
100 std::unique_ptr<LayerImpl> root_scroll_layer_; 99 std::unique_ptr<LayerImpl> root_scroll_layer_;
101 std::unique_ptr<TopControlsManager> manager_; 100 std::unique_ptr<BrowserControlsOffsetManager> manager_;
102 bool redraw_needed_; 101 bool redraw_needed_;
103 bool update_draw_properties_needed_; 102 bool update_draw_properties_needed_;
104 103
105 float bottom_controls_height_; 104 float bottom_controls_height_;
106 float top_controls_shown_ratio_; 105 float top_controls_shown_ratio_;
107 float top_controls_height_; 106 float top_controls_height_;
108 float top_controls_show_threshold_; 107 float browser_controls_show_threshold_;
109 float top_controls_hide_threshold_; 108 float browser_controls_hide_threshold_;
110 }; 109 };
111 110
112 TEST(TopControlsManagerTest, EnsureScrollThresholdApplied) { 111 TEST(BrowserControlsOffsetManagerTest, EnsureScrollThresholdApplied) {
113 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); 112 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f);
114 TopControlsManager* manager = client.manager(); 113 BrowserControlsOffsetManager* manager = client.manager();
115 114
116 manager->ScrollBegin(); 115 manager->ScrollBegin();
117 116
118 // Scroll down to hide the controls entirely. 117 // Scroll down to hide the controls entirely.
119 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f)); 118 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f));
120 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset()); 119 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset());
121 120
122 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f)); 121 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f));
123 EXPECT_FLOAT_EQ(-60.f, manager->ControlsTopOffset()); 122 EXPECT_FLOAT_EQ(-60.f, manager->ControlsTopOffset());
124 123
(...skipping 21 matching lines...) Expand all
146 manager->ScrollBy(gfx::Vector2dF(0.f, -100.f)); 145 manager->ScrollBy(gfx::Vector2dF(0.f, -100.f));
147 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); 146 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset());
148 147
149 // See that scrolling down the page now will result in the controls hiding. 148 // See that scrolling down the page now will result in the controls hiding.
150 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); 149 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f));
151 EXPECT_FLOAT_EQ(-20.f, manager->ControlsTopOffset()); 150 EXPECT_FLOAT_EQ(-20.f, manager->ControlsTopOffset());
152 151
153 manager->ScrollEnd(); 152 manager->ScrollEnd();
154 } 153 }
155 154
156 TEST(TopControlsManagerTest, PartialShownHideAnimation) { 155 TEST(BrowserControlsOffsetManagerTest, PartialShownHideAnimation) {
157 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); 156 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f);
158 TopControlsManager* manager = client.manager(); 157 BrowserControlsOffsetManager* manager = client.manager();
159 manager->ScrollBegin(); 158 manager->ScrollBegin();
160 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); 159 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
161 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); 160 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
162 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); 161 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset());
163 manager->ScrollEnd(); 162 manager->ScrollEnd();
164 163
165 manager->ScrollBegin(); 164 manager->ScrollBegin();
166 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); 165 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f));
167 EXPECT_FLOAT_EQ(-85.f, manager->ControlsTopOffset()); 166 EXPECT_FLOAT_EQ(-85.f, manager->ControlsTopOffset());
168 EXPECT_FLOAT_EQ(15.f, manager->ContentTopOffset()); 167 EXPECT_FLOAT_EQ(15.f, manager->ContentTopOffset());
169 manager->ScrollEnd(); 168 manager->ScrollEnd();
170 169
171 EXPECT_TRUE(manager->has_animation()); 170 EXPECT_TRUE(manager->has_animation());
172 171
173 base::TimeTicks time = base::TimeTicks::Now(); 172 base::TimeTicks time = base::TimeTicks::Now();
174 float previous; 173 float previous;
175 while (manager->has_animation()) { 174 while (manager->has_animation()) {
176 previous = manager->TopControlsShownRatio(); 175 previous = manager->TopControlsShownRatio();
177 time = base::TimeDelta::FromMicroseconds(100) + time; 176 time = base::TimeDelta::FromMicroseconds(100) + time;
178 manager->Animate(time); 177 manager->Animate(time);
179 EXPECT_LT(manager->TopControlsShownRatio(), previous); 178 EXPECT_LT(manager->TopControlsShownRatio(), previous);
180 } 179 }
181 EXPECT_FALSE(manager->has_animation()); 180 EXPECT_FALSE(manager->has_animation());
182 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); 181 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
183 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); 182 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset());
184 } 183 }
185 184
186 TEST(TopControlsManagerTest, PartialShownShowAnimation) { 185 TEST(BrowserControlsOffsetManagerTest, PartialShownShowAnimation) {
187 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); 186 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f);
188 TopControlsManager* manager = client.manager(); 187 BrowserControlsOffsetManager* manager = client.manager();
189 manager->ScrollBegin(); 188 manager->ScrollBegin();
190 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); 189 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
191 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); 190 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
192 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); 191 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset());
193 manager->ScrollEnd(); 192 manager->ScrollEnd();
194 193
195 manager->ScrollBegin(); 194 manager->ScrollBegin();
196 manager->ScrollBy(gfx::Vector2dF(0.f, -70.f)); 195 manager->ScrollBy(gfx::Vector2dF(0.f, -70.f));
197 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset()); 196 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset());
198 EXPECT_FLOAT_EQ(70.f, manager->ContentTopOffset()); 197 EXPECT_FLOAT_EQ(70.f, manager->ContentTopOffset());
199 manager->ScrollEnd(); 198 manager->ScrollEnd();
200 199
201 EXPECT_TRUE(manager->has_animation()); 200 EXPECT_TRUE(manager->has_animation());
202 201
203 base::TimeTicks time = base::TimeTicks::Now(); 202 base::TimeTicks time = base::TimeTicks::Now();
204 float previous; 203 float previous;
205 while (manager->has_animation()) { 204 while (manager->has_animation()) {
206 previous = manager->TopControlsShownRatio(); 205 previous = manager->TopControlsShownRatio();
207 time = base::TimeDelta::FromMicroseconds(100) + time; 206 time = base::TimeDelta::FromMicroseconds(100) + time;
208 manager->Animate(time); 207 manager->Animate(time);
209 EXPECT_GT(manager->TopControlsShownRatio(), previous); 208 EXPECT_GT(manager->TopControlsShownRatio(), previous);
210 } 209 }
211 EXPECT_FALSE(manager->has_animation()); 210 EXPECT_FALSE(manager->has_animation());
212 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); 211 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset());
213 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); 212 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset());
214 } 213 }
215 214
216 TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdShows) { 215 TEST(BrowserControlsOffsetManagerTest,
217 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); 216 PartialHiddenWithAmbiguousThresholdShows) {
218 TopControlsManager* manager = client.manager(); 217 MockBrowserControlsOffsetManagerClient client(100.f, 0.25f, 0.25f);
218 BrowserControlsOffsetManager* manager = client.manager();
219 219
220 manager->ScrollBegin(); 220 manager->ScrollBegin();
221 221
222 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); 222 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f));
223 EXPECT_FLOAT_EQ(-20.f, manager->ControlsTopOffset()); 223 EXPECT_FLOAT_EQ(-20.f, manager->ControlsTopOffset());
224 EXPECT_FLOAT_EQ(80.f, manager->ContentTopOffset()); 224 EXPECT_FLOAT_EQ(80.f, manager->ContentTopOffset());
225 225
226 manager->ScrollEnd(); 226 manager->ScrollEnd();
227 EXPECT_TRUE(manager->has_animation()); 227 EXPECT_TRUE(manager->has_animation());
228 228
229 base::TimeTicks time = base::TimeTicks::Now(); 229 base::TimeTicks time = base::TimeTicks::Now();
230 float previous; 230 float previous;
231 while (manager->has_animation()) { 231 while (manager->has_animation()) {
232 previous = manager->TopControlsShownRatio(); 232 previous = manager->TopControlsShownRatio();
233 time = base::TimeDelta::FromMicroseconds(100) + time; 233 time = base::TimeDelta::FromMicroseconds(100) + time;
234 manager->Animate(time); 234 manager->Animate(time);
235 EXPECT_GT(manager->TopControlsShownRatio(), previous); 235 EXPECT_GT(manager->TopControlsShownRatio(), previous);
236 } 236 }
237 EXPECT_FALSE(manager->has_animation()); 237 EXPECT_FALSE(manager->has_animation());
238 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); 238 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset());
239 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); 239 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset());
240 } 240 }
241 241
242 TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdHides) { 242 TEST(BrowserControlsOffsetManagerTest,
243 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); 243 PartialHiddenWithAmbiguousThresholdHides) {
244 TopControlsManager* manager = client.manager(); 244 MockBrowserControlsOffsetManagerClient client(100.f, 0.25f, 0.25f);
245 BrowserControlsOffsetManager* manager = client.manager();
245 246
246 manager->ScrollBegin(); 247 manager->ScrollBegin();
247 248
248 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f)); 249 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f));
249 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset()); 250 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset());
250 EXPECT_FLOAT_EQ(70.f, manager->ContentTopOffset()); 251 EXPECT_FLOAT_EQ(70.f, manager->ContentTopOffset());
251 252
252 manager->ScrollEnd(); 253 manager->ScrollEnd();
253 EXPECT_TRUE(manager->has_animation()); 254 EXPECT_TRUE(manager->has_animation());
254 255
255 base::TimeTicks time = base::TimeTicks::Now(); 256 base::TimeTicks time = base::TimeTicks::Now();
256 float previous; 257 float previous;
257 while (manager->has_animation()) { 258 while (manager->has_animation()) {
258 previous = manager->TopControlsShownRatio(); 259 previous = manager->TopControlsShownRatio();
259 time = base::TimeDelta::FromMicroseconds(100) + time; 260 time = base::TimeDelta::FromMicroseconds(100) + time;
260 manager->Animate(time); 261 manager->Animate(time);
261 EXPECT_LT(manager->TopControlsShownRatio(), previous); 262 EXPECT_LT(manager->TopControlsShownRatio(), previous);
262 } 263 }
263 EXPECT_FALSE(manager->has_animation()); 264 EXPECT_FALSE(manager->has_animation());
264 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); 265 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
265 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); 266 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset());
266 } 267 }
267 268
268 TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdHides) { 269 TEST(BrowserControlsOffsetManagerTest,
269 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); 270 PartialShownWithAmbiguousThresholdHides) {
270 TopControlsManager* manager = client.manager(); 271 MockBrowserControlsOffsetManagerClient client(100.f, 0.25f, 0.25f);
272 BrowserControlsOffsetManager* manager = client.manager();
271 273
272 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f)); 274 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f));
273 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); 275 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
274 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); 276 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset());
275 277
276 manager->ScrollBegin(); 278 manager->ScrollBegin();
277 279
278 manager->ScrollBy(gfx::Vector2dF(0.f, -20.f)); 280 manager->ScrollBy(gfx::Vector2dF(0.f, -20.f));
279 EXPECT_FLOAT_EQ(-80.f, manager->ControlsTopOffset()); 281 EXPECT_FLOAT_EQ(-80.f, manager->ControlsTopOffset());
280 EXPECT_FLOAT_EQ(20.f, manager->ContentTopOffset()); 282 EXPECT_FLOAT_EQ(20.f, manager->ContentTopOffset());
281 283
282 manager->ScrollEnd(); 284 manager->ScrollEnd();
283 EXPECT_TRUE(manager->has_animation()); 285 EXPECT_TRUE(manager->has_animation());
284 286
285 base::TimeTicks time = base::TimeTicks::Now(); 287 base::TimeTicks time = base::TimeTicks::Now();
286 float previous; 288 float previous;
287 while (manager->has_animation()) { 289 while (manager->has_animation()) {
288 previous = manager->TopControlsShownRatio(); 290 previous = manager->TopControlsShownRatio();
289 time = base::TimeDelta::FromMicroseconds(100) + time; 291 time = base::TimeDelta::FromMicroseconds(100) + time;
290 manager->Animate(time); 292 manager->Animate(time);
291 EXPECT_LT(manager->TopControlsShownRatio(), previous); 293 EXPECT_LT(manager->TopControlsShownRatio(), previous);
292 } 294 }
293 EXPECT_FALSE(manager->has_animation()); 295 EXPECT_FALSE(manager->has_animation());
294 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); 296 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
295 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); 297 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset());
296 } 298 }
297 299
298 TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdShows) { 300 TEST(BrowserControlsOffsetManagerTest,
299 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); 301 PartialShownWithAmbiguousThresholdShows) {
300 TopControlsManager* manager = client.manager(); 302 MockBrowserControlsOffsetManagerClient client(100.f, 0.25f, 0.25f);
303 BrowserControlsOffsetManager* manager = client.manager();
301 304
302 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f)); 305 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f));
303 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); 306 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
304 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); 307 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset());
305 308
306 manager->ScrollBegin(); 309 manager->ScrollBegin();
307 310
308 manager->ScrollBy(gfx::Vector2dF(0.f, -30.f)); 311 manager->ScrollBy(gfx::Vector2dF(0.f, -30.f));
309 EXPECT_FLOAT_EQ(-70.f, manager->ControlsTopOffset()); 312 EXPECT_FLOAT_EQ(-70.f, manager->ControlsTopOffset());
310 EXPECT_FLOAT_EQ(30.f, manager->ContentTopOffset()); 313 EXPECT_FLOAT_EQ(30.f, manager->ContentTopOffset());
311 314
312 manager->ScrollEnd(); 315 manager->ScrollEnd();
313 EXPECT_TRUE(manager->has_animation()); 316 EXPECT_TRUE(manager->has_animation());
314 317
315 base::TimeTicks time = base::TimeTicks::Now(); 318 base::TimeTicks time = base::TimeTicks::Now();
316 float previous; 319 float previous;
317 while (manager->has_animation()) { 320 while (manager->has_animation()) {
318 previous = manager->TopControlsShownRatio(); 321 previous = manager->TopControlsShownRatio();
319 time = base::TimeDelta::FromMicroseconds(100) + time; 322 time = base::TimeDelta::FromMicroseconds(100) + time;
320 manager->Animate(time); 323 manager->Animate(time);
321 EXPECT_GT(manager->TopControlsShownRatio(), previous); 324 EXPECT_GT(manager->TopControlsShownRatio(), previous);
322 } 325 }
323 EXPECT_FALSE(manager->has_animation()); 326 EXPECT_FALSE(manager->has_animation());
324 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); 327 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset());
325 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); 328 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset());
326 } 329 }
327 330
328 TEST(TopControlsManagerTest, PinchIgnoresScroll) { 331 TEST(BrowserControlsOffsetManagerTest, PinchIgnoresScroll) {
329 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); 332 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f);
330 TopControlsManager* manager = client.manager(); 333 BrowserControlsOffsetManager* manager = client.manager();
331 334
332 // Hide the controls. 335 // Hide the controls.
333 manager->ScrollBegin(); 336 manager->ScrollBegin();
334 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); 337 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset());
335 338
336 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); 339 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
337 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); 340 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
338 341
339 manager->PinchBegin(); 342 manager->PinchBegin();
340 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); 343 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
341 344
342 // Scrolls are ignored during pinch. 345 // Scrolls are ignored during pinch.
343 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); 346 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f));
344 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); 347 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
345 manager->PinchEnd(); 348 manager->PinchEnd();
346 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); 349 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
347 350
348 // Scrolls should no long be ignored. 351 // Scrolls should no long be ignored.
349 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); 352 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f));
350 EXPECT_FLOAT_EQ(-85.f, manager->ControlsTopOffset()); 353 EXPECT_FLOAT_EQ(-85.f, manager->ControlsTopOffset());
351 EXPECT_FLOAT_EQ(15.f, manager->ContentTopOffset()); 354 EXPECT_FLOAT_EQ(15.f, manager->ContentTopOffset());
352 manager->ScrollEnd(); 355 manager->ScrollEnd();
353 356
354 EXPECT_TRUE(manager->has_animation()); 357 EXPECT_TRUE(manager->has_animation());
355 } 358 }
356 359
357 TEST(TopControlsManagerTest, PinchBeginStartsAnimationIfNecessary) { 360 TEST(BrowserControlsOffsetManagerTest, PinchBeginStartsAnimationIfNecessary) {
358 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); 361 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f);
359 TopControlsManager* manager = client.manager(); 362 BrowserControlsOffsetManager* manager = client.manager();
360 363
361 manager->ScrollBegin(); 364 manager->ScrollBegin();
362 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); 365 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
363 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); 366 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
364 367
365 manager->PinchBegin(); 368 manager->PinchBegin();
366 EXPECT_FALSE(manager->has_animation()); 369 EXPECT_FALSE(manager->has_animation());
367 370
368 manager->PinchEnd(); 371 manager->PinchEnd();
369 EXPECT_FALSE(manager->has_animation()); 372 EXPECT_FALSE(manager->has_animation());
(...skipping 30 matching lines...) Expand all
400 while (manager->has_animation()) { 403 while (manager->has_animation()) {
401 previous = manager->TopControlsShownRatio(); 404 previous = manager->TopControlsShownRatio();
402 time = base::TimeDelta::FromMicroseconds(100) + time; 405 time = base::TimeDelta::FromMicroseconds(100) + time;
403 manager->Animate(time); 406 manager->Animate(time);
404 EXPECT_GT(manager->TopControlsShownRatio(), previous); 407 EXPECT_GT(manager->TopControlsShownRatio(), previous);
405 } 408 }
406 EXPECT_FALSE(manager->has_animation()); 409 EXPECT_FALSE(manager->has_animation());
407 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); 410 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset());
408 } 411 }
409 412
410 TEST(TopControlsManagerTest, HeightChangeMaintainsFullyVisibleControls) { 413 TEST(BrowserControlsOffsetManagerTest,
411 MockTopControlsManagerClient client(0.f, 0.5f, 0.5f); 414 HeightChangeMaintainsFullyVisibleControls) {
412 TopControlsManager* manager = client.manager(); 415 MockBrowserControlsOffsetManagerClient client(0.f, 0.5f, 0.5f);
416 BrowserControlsOffsetManager* manager = client.manager();
413 417
414 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); 418 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset());
415 419
416 client.SetTopControlsHeight(100.f); 420 client.SetBrowserControlsHeight(100.f);
417 EXPECT_FALSE(manager->has_animation()); 421 EXPECT_FALSE(manager->has_animation());
418 EXPECT_FLOAT_EQ(100.f, manager->TopControlsHeight()); 422 EXPECT_FLOAT_EQ(100.f, manager->TopControlsHeight());
419 EXPECT_FLOAT_EQ(0, manager->ControlsTopOffset()); 423 EXPECT_FLOAT_EQ(0, manager->ControlsTopOffset());
420 424
421 client.SetTopControlsHeight(50.f); 425 client.SetBrowserControlsHeight(50.f);
422 EXPECT_FALSE(manager->has_animation()); 426 EXPECT_FALSE(manager->has_animation());
423 EXPECT_FLOAT_EQ(50.f, manager->TopControlsHeight()); 427 EXPECT_FLOAT_EQ(50.f, manager->TopControlsHeight());
424 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); 428 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset());
425 } 429 }
426 430
427 TEST(TopControlsManagerTest, GrowingHeightKeepsTopControlsHidden) { 431 TEST(BrowserControlsOffsetManagerTest,
428 MockTopControlsManagerClient client(0.f, 0.5f, 0.5f); 432 GrowingHeightKeepsBrowserControlsHidden) {
429 TopControlsManager* manager = client.manager(); 433 MockBrowserControlsOffsetManagerClient client(0.f, 0.5f, 0.5f);
430 client.SetTopControlsHeight(1.f); 434 BrowserControlsOffsetManager* manager = client.manager();
431 manager->UpdateTopControlsState(HIDDEN, HIDDEN, false); 435 client.SetBrowserControlsHeight(1.f);
436 manager->UpdateBrowserControlsState(HIDDEN, HIDDEN, false);
432 EXPECT_EQ(-1.f, manager->ControlsTopOffset()); 437 EXPECT_EQ(-1.f, manager->ControlsTopOffset());
433 EXPECT_EQ(0.f, manager->ContentTopOffset()); 438 EXPECT_EQ(0.f, manager->ContentTopOffset());
434 439
435 client.SetTopControlsHeight(50.f); 440 client.SetBrowserControlsHeight(50.f);
436 EXPECT_FALSE(manager->has_animation()); 441 EXPECT_FALSE(manager->has_animation());
437 EXPECT_EQ(-50.f, manager->ControlsTopOffset()); 442 EXPECT_EQ(-50.f, manager->ControlsTopOffset());
438 EXPECT_EQ(0.f, manager->ContentTopOffset()); 443 EXPECT_EQ(0.f, manager->ContentTopOffset());
439 444
440 client.SetTopControlsHeight(100.f); 445 client.SetBrowserControlsHeight(100.f);
441 EXPECT_FALSE(manager->has_animation()); 446 EXPECT_FALSE(manager->has_animation());
442 EXPECT_EQ(-100.f, manager->ControlsTopOffset()); 447 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
443 EXPECT_EQ(0.f, manager->ContentTopOffset()); 448 EXPECT_EQ(0.f, manager->ContentTopOffset());
444 } 449 }
445 450
446 TEST(TopControlsManagerTest, ShrinkingHeightKeepsTopControlsHidden) { 451 TEST(BrowserControlsOffsetManagerTest,
447 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); 452 ShrinkingHeightKeepsBrowserControlsHidden) {
448 TopControlsManager* manager = client.manager(); 453 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f);
454 BrowserControlsOffsetManager* manager = client.manager();
449 455
450 manager->ScrollBegin(); 456 manager->ScrollBegin();
451 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); 457 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
452 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); 458 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
453 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); 459 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset());
454 manager->ScrollEnd(); 460 manager->ScrollEnd();
455 461
456 client.SetTopControlsHeight(50.f); 462 client.SetBrowserControlsHeight(50.f);
457 EXPECT_FALSE(manager->has_animation()); 463 EXPECT_FALSE(manager->has_animation());
458 EXPECT_FLOAT_EQ(-50.f, manager->ControlsTopOffset()); 464 EXPECT_FLOAT_EQ(-50.f, manager->ControlsTopOffset());
459 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); 465 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset());
460 466
461 client.SetTopControlsHeight(0.f); 467 client.SetBrowserControlsHeight(0.f);
462 EXPECT_FALSE(manager->has_animation()); 468 EXPECT_FALSE(manager->has_animation());
463 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); 469 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset());
464 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); 470 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset());
465 } 471 }
466 472
467 TEST(TopControlsManagerTest, ScrollByWithZeroHeightControlsIsNoop) { 473 TEST(BrowserControlsOffsetManagerTest, ScrollByWithZeroHeightControlsIsNoop) {
468 MockTopControlsManagerClient client(0.f, 0.5f, 0.5f); 474 MockBrowserControlsOffsetManagerClient client(0.f, 0.5f, 0.5f);
469 TopControlsManager* manager = client.manager(); 475 BrowserControlsOffsetManager* manager = client.manager();
470 manager->UpdateTopControlsState(BOTH, BOTH, false); 476 manager->UpdateBrowserControlsState(BOTH, BOTH, false);
471 477
472 manager->ScrollBegin(); 478 manager->ScrollBegin();
473 gfx::Vector2dF pending = manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); 479 gfx::Vector2dF pending = manager->ScrollBy(gfx::Vector2dF(0.f, 20.f));
474 EXPECT_FLOAT_EQ(20.f, pending.y()); 480 EXPECT_FLOAT_EQ(20.f, pending.y());
475 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); 481 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset());
476 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); 482 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset());
477 EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); 483 EXPECT_FLOAT_EQ(1.f, client.CurrentBrowserControlsShownRatio());
478 manager->ScrollEnd(); 484 manager->ScrollEnd();
479 } 485 }
480 486
481 TEST(TopControlsManagerTest, ScrollThenRestoreBottomControls) { 487 TEST(BrowserControlsOffsetManagerTest, ScrollThenRestoreBottomControls) {
482 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); 488 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f);
483 client.SetBottomControlsHeight(100.f); 489 client.SetBottomControlsHeight(100.f);
484 TopControlsManager* manager = client.manager(); 490 BrowserControlsOffsetManager* manager = client.manager();
485 manager->ScrollBegin(); 491 manager->ScrollBegin();
486 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); 492 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f));
487 EXPECT_FLOAT_EQ(80.f, manager->ContentBottomOffset()); 493 EXPECT_FLOAT_EQ(80.f, manager->ContentBottomOffset());
494 EXPECT_FLOAT_EQ(0.8f, manager->BottomControlsShownRatio());
495 manager->ScrollEnd();
496
497 manager->ScrollBegin();
498 manager->ScrollBy(gfx::Vector2dF(0.f, -200.f));
499 EXPECT_FLOAT_EQ(100.f, manager->ContentBottomOffset());
500 EXPECT_FLOAT_EQ(1.f, manager->BottomControlsShownRatio());
501 manager->ScrollEnd();
502 }
503
504 TEST(BrowserControlsOffsetManagerTest,
505 ScrollThenRestoreBottomControlsNoBrowserControls) {
506 MockBrowserControlsOffsetManagerClient client(0.f, 0.5f, 0.5f);
507 client.SetBottomControlsHeight(100.f);
508 BrowserControlsOffsetManager* manager = client.manager();
509 manager->ScrollBegin();
510 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f));
511 EXPECT_FLOAT_EQ(80.f, manager->ContentBottomOffset());
488 EXPECT_FLOAT_EQ(0.8f, manager->BottomControlsShownRatio()); 512 EXPECT_FLOAT_EQ(0.8f, manager->BottomControlsShownRatio());
489 manager->ScrollEnd(); 513 manager->ScrollEnd();
490 514
491 manager->ScrollBegin(); 515 manager->ScrollBegin();
492 manager->ScrollBy(gfx::Vector2dF(0.f, -200.f)); 516 manager->ScrollBy(gfx::Vector2dF(0.f, -200.f));
493 EXPECT_FLOAT_EQ(100.f, manager->ContentBottomOffset()); 517 EXPECT_FLOAT_EQ(100.f, manager->ContentBottomOffset());
494 EXPECT_FLOAT_EQ(1.f, manager->BottomControlsShownRatio()); 518 EXPECT_FLOAT_EQ(1.f, manager->BottomControlsShownRatio());
495 manager->ScrollEnd(); 519 manager->ScrollEnd();
496 } 520 }
497 521
498 TEST(TopControlsManagerTest, HideAndPeekBottomControls) { 522 TEST(BrowserControlsOffsetManagerTest, HideAndPeekBottomControls) {
499 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); 523 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f);
500 client.SetBottomControlsHeight(100.f); 524 client.SetBottomControlsHeight(100.f);
501 TopControlsManager* manager = client.manager(); 525 BrowserControlsOffsetManager* manager = client.manager();
502 manager->ScrollBegin(); 526 manager->ScrollBegin();
503 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); 527 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
504 EXPECT_FLOAT_EQ(0.f, manager->ContentBottomOffset()); 528 EXPECT_FLOAT_EQ(0.f, manager->ContentBottomOffset());
505 EXPECT_FLOAT_EQ(0.f, manager->BottomControlsShownRatio()); 529 EXPECT_FLOAT_EQ(0.f, manager->BottomControlsShownRatio());
506 manager->ScrollEnd(); 530 manager->ScrollEnd();
507 531
508 manager->ScrollBegin(); 532 manager->ScrollBegin();
509 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); 533 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f));
510 EXPECT_FLOAT_EQ(15.f, manager->ContentBottomOffset()); 534 EXPECT_FLOAT_EQ(15.f, manager->ContentBottomOffset());
511 EXPECT_FLOAT_EQ(0.15f, manager->BottomControlsShownRatio()); 535 EXPECT_FLOAT_EQ(0.15f, manager->BottomControlsShownRatio());
512 manager->ScrollEnd(); 536 manager->ScrollEnd();
513 } 537 }
514 538
515 TEST(TopControlsManagerTest, HideAndImmediateShowKeepsControlsVisible) { 539 TEST(BrowserControlsOffsetManagerTest,
516 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); 540 HideAndImmediateShowKeepsControlsVisible) {
541 MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f);
517 client.SetBottomControlsHeight(100.f); 542 client.SetBottomControlsHeight(100.f);
518 TopControlsManager* manager = client.manager(); 543 BrowserControlsOffsetManager* manager = client.manager();
519 EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); 544 EXPECT_FLOAT_EQ(1.f, client.CurrentBrowserControlsShownRatio());
520 545
521 manager->UpdateTopControlsState(BOTH, HIDDEN, true); 546 manager->UpdateBrowserControlsState(BOTH, HIDDEN, true);
522 EXPECT_TRUE(manager->has_animation()); 547 EXPECT_TRUE(manager->has_animation());
523 EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); 548 EXPECT_FLOAT_EQ(1.f, client.CurrentBrowserControlsShownRatio());
524 549
525 manager->UpdateTopControlsState(BOTH, SHOWN, true); 550 manager->UpdateBrowserControlsState(BOTH, SHOWN, true);
526 EXPECT_FALSE(manager->has_animation()); 551 EXPECT_FALSE(manager->has_animation());
527 EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); 552 EXPECT_FLOAT_EQ(1.f, client.CurrentBrowserControlsShownRatio());
528 } 553 }
529 554
530 } // namespace 555 } // namespace
531 } // namespace cc 556 } // namespace cc
OLDNEW
« no previous file with comments | « cc/input/browser_controls_offset_manager_client.h ('k') | cc/input/browser_controls_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698