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

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

Issue 511253003: Made Blink aware of top controls offset (Chromium-side) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed crash + mojo example build break Created 6 years, 3 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
« no previous file with comments | « cc/input/top_controls_manager_client.h ('k') | cc/test/fake_layer_tree_host_client.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/top_controls_manager.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/time/time.h" 8 #include "base/time/time.h"
9 #include "cc/input/top_controls_manager_client.h" 9 #include "cc/input/top_controls_manager_client.h"
10 #include "cc/layers/layer_impl.h" 10 #include "cc/layers/layer_impl.h"
(...skipping 10 matching lines...) Expand all
21 21
22 static const float kTopControlsHeight = 100; 22 static const float kTopControlsHeight = 100;
23 23
24 class MockTopControlsManagerClient : public TopControlsManagerClient { 24 class MockTopControlsManagerClient : public TopControlsManagerClient {
25 public: 25 public:
26 MockTopControlsManagerClient(float top_controls_show_threshold, 26 MockTopControlsManagerClient(float top_controls_show_threshold,
27 float top_controls_hide_threshold) 27 float top_controls_hide_threshold)
28 : host_impl_(&proxy_, &shared_bitmap_manager_), 28 : host_impl_(&proxy_, &shared_bitmap_manager_),
29 redraw_needed_(false), 29 redraw_needed_(false),
30 update_draw_properties_needed_(false), 30 update_draw_properties_needed_(false),
31 top_controls_top_offset_(0.f),
31 top_controls_show_threshold_(top_controls_show_threshold), 32 top_controls_show_threshold_(top_controls_show_threshold),
32 top_controls_hide_threshold_(top_controls_hide_threshold) { 33 top_controls_hide_threshold_(top_controls_hide_threshold) {
33 active_tree_ = LayerTreeImpl::create(&host_impl_); 34 active_tree_ = LayerTreeImpl::create(&host_impl_);
34 root_scroll_layer_ = LayerImpl::Create(active_tree_.get(), 1); 35 root_scroll_layer_ = LayerImpl::Create(active_tree_.get(), 1);
35 } 36 }
36 37
37 virtual ~MockTopControlsManagerClient() {} 38 virtual ~MockTopControlsManagerClient() {}
38 39
39 virtual void DidChangeTopControlsPosition() OVERRIDE { 40 virtual void DidChangeTopControlsPosition() OVERRIDE {
40 redraw_needed_ = true; 41 redraw_needed_ = true;
41 update_draw_properties_needed_ = true; 42 update_draw_properties_needed_ = true;
42 } 43 }
43 44
44 virtual bool HaveRootScrollLayer() const OVERRIDE { 45 virtual bool HaveRootScrollLayer() const OVERRIDE {
45 return true; 46 return true;
46 } 47 }
47 48
49 virtual void SetControlsTopOffset(float offset) OVERRIDE {
50 top_controls_top_offset_ = offset;
51 }
52
53 virtual float ControlsTopOffset() const OVERRIDE {
54 return top_controls_top_offset_;
55 }
56
48 LayerImpl* rootScrollLayer() { 57 LayerImpl* rootScrollLayer() {
49 return root_scroll_layer_.get(); 58 return root_scroll_layer_.get();
50 } 59 }
51 60
52 TopControlsManager* manager() { 61 TopControlsManager* manager() {
53 if (!manager_) { 62 if (!manager_) {
54 manager_ = TopControlsManager::Create(this, 63 manager_ = TopControlsManager::Create(this,
55 kTopControlsHeight, 64 kTopControlsHeight,
56 top_controls_show_threshold_, 65 top_controls_show_threshold_,
57 top_controls_hide_threshold_); 66 top_controls_hide_threshold_);
58 } 67 }
59 return manager_.get(); 68 return manager_.get();
60 } 69 }
61 70
62 private: 71 private:
63 FakeImplProxy proxy_; 72 FakeImplProxy proxy_;
64 TestSharedBitmapManager shared_bitmap_manager_; 73 TestSharedBitmapManager shared_bitmap_manager_;
65 FakeLayerTreeHostImpl host_impl_; 74 FakeLayerTreeHostImpl host_impl_;
66 scoped_ptr<LayerTreeImpl> active_tree_; 75 scoped_ptr<LayerTreeImpl> active_tree_;
67 scoped_ptr<LayerImpl> root_scroll_layer_; 76 scoped_ptr<LayerImpl> root_scroll_layer_;
68 scoped_ptr<TopControlsManager> manager_; 77 scoped_ptr<TopControlsManager> manager_;
69 bool redraw_needed_; 78 bool redraw_needed_;
70 bool update_draw_properties_needed_; 79 bool update_draw_properties_needed_;
71 80
81 float top_controls_top_offset_;
72 float top_controls_show_threshold_; 82 float top_controls_show_threshold_;
73 float top_controls_hide_threshold_; 83 float top_controls_hide_threshold_;
74 }; 84 };
75 85
76 TEST(TopControlsManagerTest, EnsureScrollThresholdApplied) { 86 TEST(TopControlsManagerTest, EnsureScrollThresholdApplied) {
77 MockTopControlsManagerClient client(0.5f, 0.5f); 87 MockTopControlsManagerClient client(0.5f, 0.5f);
78 TopControlsManager* manager = client.manager(); 88 TopControlsManager* manager = client.manager();
79 89
80 manager->ScrollBegin(); 90 manager->ScrollBegin();
81 91
82 // Scroll down to hide the controls entirely. 92 // Scroll down to hide the controls entirely.
83 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f)); 93 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f));
84 EXPECT_EQ(-30.f, manager->controls_top_offset()); 94 EXPECT_EQ(-30.f, manager->ControlsTopOffset());
85 95
86 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f)); 96 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f));
87 EXPECT_EQ(-60.f, manager->controls_top_offset()); 97 EXPECT_EQ(-60.f, manager->ControlsTopOffset());
88 98
89 manager->ScrollBy(gfx::Vector2dF(0.f, 100.f)); 99 manager->ScrollBy(gfx::Vector2dF(0.f, 100.f));
90 EXPECT_EQ(-100.f, manager->controls_top_offset()); 100 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
91 101
92 // Scroll back up a bit and ensure the controls don't move until we cross 102 // Scroll back up a bit and ensure the controls don't move until we cross
93 // the threshold. 103 // the threshold.
94 manager->ScrollBy(gfx::Vector2dF(0.f, -10.f)); 104 manager->ScrollBy(gfx::Vector2dF(0.f, -10.f));
95 EXPECT_EQ(-100.f, manager->controls_top_offset()); 105 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
96 106
97 manager->ScrollBy(gfx::Vector2dF(0.f, -50.f)); 107 manager->ScrollBy(gfx::Vector2dF(0.f, -50.f));
98 EXPECT_EQ(-100.f, manager->controls_top_offset()); 108 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
99 109
100 // After hitting the threshold, further scrolling up should result in the top 110 // After hitting the threshold, further scrolling up should result in the top
101 // controls showing. 111 // controls showing.
102 manager->ScrollBy(gfx::Vector2dF(0.f, -10.f)); 112 manager->ScrollBy(gfx::Vector2dF(0.f, -10.f));
103 EXPECT_EQ(-90.f, manager->controls_top_offset()); 113 EXPECT_EQ(-90.f, manager->ControlsTopOffset());
104 114
105 manager->ScrollBy(gfx::Vector2dF(0.f, -50.f)); 115 manager->ScrollBy(gfx::Vector2dF(0.f, -50.f));
106 EXPECT_EQ(-40.f, manager->controls_top_offset()); 116 EXPECT_EQ(-40.f, manager->ControlsTopOffset());
107 117
108 // Reset the scroll threshold by going further up the page than the initial 118 // Reset the scroll threshold by going further up the page than the initial
109 // threshold. 119 // threshold.
110 manager->ScrollBy(gfx::Vector2dF(0.f, -100.f)); 120 manager->ScrollBy(gfx::Vector2dF(0.f, -100.f));
111 EXPECT_EQ(0.f, manager->controls_top_offset()); 121 EXPECT_EQ(0.f, manager->ControlsTopOffset());
112 122
113 // See that scrolling down the page now will result in the controls hiding. 123 // See that scrolling down the page now will result in the controls hiding.
114 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); 124 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f));
115 EXPECT_EQ(-20.f, manager->controls_top_offset()); 125 EXPECT_EQ(-20.f, manager->ControlsTopOffset());
116 126
117 manager->ScrollEnd(); 127 manager->ScrollEnd();
118 } 128 }
119 129
120 TEST(TopControlsManagerTest, PartialShownHideAnimation) { 130 TEST(TopControlsManagerTest, PartialShownHideAnimation) {
121 MockTopControlsManagerClient client(0.5f, 0.5f); 131 MockTopControlsManagerClient client(0.5f, 0.5f);
122 TopControlsManager* manager = client.manager(); 132 TopControlsManager* manager = client.manager();
123 manager->ScrollBegin(); 133 manager->ScrollBegin();
124 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); 134 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
125 EXPECT_EQ(-100.f, manager->controls_top_offset()); 135 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
126 EXPECT_EQ(0.f, manager->content_top_offset()); 136 EXPECT_EQ(0.f, manager->ContentTopOffset());
127 manager->ScrollEnd(); 137 manager->ScrollEnd();
128 138
129 manager->ScrollBegin(); 139 manager->ScrollBegin();
130 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); 140 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f));
131 EXPECT_EQ(-85.f, manager->controls_top_offset()); 141 EXPECT_EQ(-85.f, manager->ControlsTopOffset());
132 EXPECT_EQ(15.f, manager->content_top_offset()); 142 EXPECT_EQ(15.f, manager->ContentTopOffset());
133 manager->ScrollEnd(); 143 manager->ScrollEnd();
134 144
135 EXPECT_TRUE(manager->animation()); 145 EXPECT_TRUE(manager->animation());
136 146
137 base::TimeTicks time = gfx::FrameTime::Now(); 147 base::TimeTicks time = gfx::FrameTime::Now();
138 float previous_offset = manager->controls_top_offset(); 148 float previous_offset = manager->ControlsTopOffset();
139 while (manager->animation()) { 149 while (manager->animation()) {
140 time = base::TimeDelta::FromMicroseconds(100) + time; 150 time = base::TimeDelta::FromMicroseconds(100) + time;
141 manager->Animate(time); 151 manager->Animate(time);
142 EXPECT_LT(manager->controls_top_offset(), previous_offset); 152 EXPECT_LT(manager->ControlsTopOffset(), previous_offset);
143 previous_offset = manager->controls_top_offset(); 153 previous_offset = manager->ControlsTopOffset();
144 } 154 }
145 EXPECT_FALSE(manager->animation()); 155 EXPECT_FALSE(manager->animation());
146 EXPECT_EQ(-100.f, manager->controls_top_offset()); 156 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
147 EXPECT_EQ(0.f, manager->content_top_offset()); 157 EXPECT_EQ(0.f, manager->ContentTopOffset());
148 } 158 }
149 159
150 TEST(TopControlsManagerTest, PartialShownShowAnimation) { 160 TEST(TopControlsManagerTest, PartialShownShowAnimation) {
151 MockTopControlsManagerClient client(0.5f, 0.5f); 161 MockTopControlsManagerClient client(0.5f, 0.5f);
152 TopControlsManager* manager = client.manager(); 162 TopControlsManager* manager = client.manager();
153 manager->ScrollBegin(); 163 manager->ScrollBegin();
154 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); 164 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
155 EXPECT_EQ(-100.f, manager->controls_top_offset()); 165 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
156 EXPECT_EQ(0.f, manager->content_top_offset()); 166 EXPECT_EQ(0.f, manager->ContentTopOffset());
157 manager->ScrollEnd(); 167 manager->ScrollEnd();
158 168
159 manager->ScrollBegin(); 169 manager->ScrollBegin();
160 manager->ScrollBy(gfx::Vector2dF(0.f, -70.f)); 170 manager->ScrollBy(gfx::Vector2dF(0.f, -70.f));
161 EXPECT_EQ(-30.f, manager->controls_top_offset()); 171 EXPECT_EQ(-30.f, manager->ControlsTopOffset());
162 EXPECT_EQ(70.f, manager->content_top_offset()); 172 EXPECT_EQ(70.f, manager->ContentTopOffset());
163 manager->ScrollEnd(); 173 manager->ScrollEnd();
164 174
165 EXPECT_TRUE(manager->animation()); 175 EXPECT_TRUE(manager->animation());
166 176
167 base::TimeTicks time = gfx::FrameTime::Now(); 177 base::TimeTicks time = gfx::FrameTime::Now();
168 float previous_offset = manager->controls_top_offset(); 178 float previous_offset = manager->ControlsTopOffset();
169 while (manager->animation()) { 179 while (manager->animation()) {
170 time = base::TimeDelta::FromMicroseconds(100) + time; 180 time = base::TimeDelta::FromMicroseconds(100) + time;
171 manager->Animate(time); 181 manager->Animate(time);
172 EXPECT_GT(manager->controls_top_offset(), previous_offset); 182 EXPECT_GT(manager->ControlsTopOffset(), previous_offset);
173 previous_offset = manager->controls_top_offset(); 183 previous_offset = manager->ControlsTopOffset();
174 } 184 }
175 EXPECT_FALSE(manager->animation()); 185 EXPECT_FALSE(manager->animation());
176 EXPECT_EQ(0.f, manager->controls_top_offset()); 186 EXPECT_EQ(0.f, manager->ControlsTopOffset());
177 EXPECT_EQ(100.f, manager->content_top_offset()); 187 EXPECT_EQ(100.f, manager->ContentTopOffset());
178 } 188 }
179 189
180 TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdShows) { 190 TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdShows) {
181 MockTopControlsManagerClient client(0.25f, 0.25f); 191 MockTopControlsManagerClient client(0.25f, 0.25f);
182 TopControlsManager* manager = client.manager(); 192 TopControlsManager* manager = client.manager();
183 193
184 manager->ScrollBegin(); 194 manager->ScrollBegin();
185 195
186 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); 196 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f));
187 EXPECT_EQ(-20.f, manager->controls_top_offset()); 197 EXPECT_EQ(-20.f, manager->ControlsTopOffset());
188 EXPECT_EQ(80.f, manager->content_top_offset()); 198 EXPECT_EQ(80.f, manager->ContentTopOffset());
189 199
190 manager->ScrollEnd(); 200 manager->ScrollEnd();
191 EXPECT_TRUE(manager->animation()); 201 EXPECT_TRUE(manager->animation());
192 202
193 base::TimeTicks time = gfx::FrameTime::Now(); 203 base::TimeTicks time = gfx::FrameTime::Now();
194 float previous_offset = manager->controls_top_offset(); 204 float previous_offset = manager->ControlsTopOffset();
195 while (manager->animation()) { 205 while (manager->animation()) {
196 time = base::TimeDelta::FromMicroseconds(100) + time; 206 time = base::TimeDelta::FromMicroseconds(100) + time;
197 manager->Animate(time); 207 manager->Animate(time);
198 EXPECT_GT(manager->controls_top_offset(), previous_offset); 208 EXPECT_GT(manager->ControlsTopOffset(), previous_offset);
199 previous_offset = manager->controls_top_offset(); 209 previous_offset = manager->ControlsTopOffset();
200 } 210 }
201 EXPECT_FALSE(manager->animation()); 211 EXPECT_FALSE(manager->animation());
202 EXPECT_EQ(0.f, manager->controls_top_offset()); 212 EXPECT_EQ(0.f, manager->ControlsTopOffset());
203 EXPECT_EQ(100.f, manager->content_top_offset()); 213 EXPECT_EQ(100.f, manager->ContentTopOffset());
204 } 214 }
205 215
206 TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdHides) { 216 TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdHides) {
207 MockTopControlsManagerClient client(0.25f, 0.25f); 217 MockTopControlsManagerClient client(0.25f, 0.25f);
208 TopControlsManager* manager = client.manager(); 218 TopControlsManager* manager = client.manager();
209 219
210 manager->ScrollBegin(); 220 manager->ScrollBegin();
211 221
212 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f)); 222 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f));
213 EXPECT_EQ(-30.f, manager->controls_top_offset()); 223 EXPECT_EQ(-30.f, manager->ControlsTopOffset());
214 EXPECT_EQ(70.f, manager->content_top_offset()); 224 EXPECT_EQ(70.f, manager->ContentTopOffset());
215 225
216 manager->ScrollEnd(); 226 manager->ScrollEnd();
217 EXPECT_TRUE(manager->animation()); 227 EXPECT_TRUE(manager->animation());
218 228
219 base::TimeTicks time = gfx::FrameTime::Now(); 229 base::TimeTicks time = gfx::FrameTime::Now();
220 float previous_offset = manager->controls_top_offset(); 230 float previous_offset = manager->ControlsTopOffset();
221 while (manager->animation()) { 231 while (manager->animation()) {
222 time = base::TimeDelta::FromMicroseconds(100) + time; 232 time = base::TimeDelta::FromMicroseconds(100) + time;
223 manager->Animate(time); 233 manager->Animate(time);
224 EXPECT_LT(manager->controls_top_offset(), previous_offset); 234 EXPECT_LT(manager->ControlsTopOffset(), previous_offset);
225 previous_offset = manager->controls_top_offset(); 235 previous_offset = manager->ControlsTopOffset();
226 } 236 }
227 EXPECT_FALSE(manager->animation()); 237 EXPECT_FALSE(manager->animation());
228 EXPECT_EQ(-100.f, manager->controls_top_offset()); 238 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
229 EXPECT_EQ(0.f, manager->content_top_offset()); 239 EXPECT_EQ(0.f, manager->ContentTopOffset());
230 } 240 }
231 241
232 TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdHides) { 242 TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdHides) {
233 MockTopControlsManagerClient client(0.25f, 0.25f); 243 MockTopControlsManagerClient client(0.25f, 0.25f);
234 TopControlsManager* manager = client.manager(); 244 TopControlsManager* manager = client.manager();
235 245
236 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f)); 246 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f));
237 EXPECT_EQ(-100.f, manager->controls_top_offset()); 247 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
238 EXPECT_EQ(0.f, manager->content_top_offset()); 248 EXPECT_EQ(0.f, manager->ContentTopOffset());
239 249
240 manager->ScrollBegin(); 250 manager->ScrollBegin();
241 251
242 manager->ScrollBy(gfx::Vector2dF(0.f, -20.f)); 252 manager->ScrollBy(gfx::Vector2dF(0.f, -20.f));
243 EXPECT_EQ(-80.f, manager->controls_top_offset()); 253 EXPECT_EQ(-80.f, manager->ControlsTopOffset());
244 EXPECT_EQ(20.f, manager->content_top_offset()); 254 EXPECT_EQ(20.f, manager->ContentTopOffset());
245 255
246 manager->ScrollEnd(); 256 manager->ScrollEnd();
247 EXPECT_TRUE(manager->animation()); 257 EXPECT_TRUE(manager->animation());
248 258
249 base::TimeTicks time = gfx::FrameTime::Now(); 259 base::TimeTicks time = gfx::FrameTime::Now();
250 float previous_offset = manager->controls_top_offset(); 260 float previous_offset = manager->ControlsTopOffset();
251 while (manager->animation()) { 261 while (manager->animation()) {
252 time = base::TimeDelta::FromMicroseconds(100) + time; 262 time = base::TimeDelta::FromMicroseconds(100) + time;
253 manager->Animate(time); 263 manager->Animate(time);
254 EXPECT_LT(manager->controls_top_offset(), previous_offset); 264 EXPECT_LT(manager->ControlsTopOffset(), previous_offset);
255 previous_offset = manager->controls_top_offset(); 265 previous_offset = manager->ControlsTopOffset();
256 } 266 }
257 EXPECT_FALSE(manager->animation()); 267 EXPECT_FALSE(manager->animation());
258 EXPECT_EQ(-100.f, manager->controls_top_offset()); 268 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
259 EXPECT_EQ(0.f, manager->content_top_offset()); 269 EXPECT_EQ(0.f, manager->ContentTopOffset());
260 } 270 }
261 271
262 TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdShows) { 272 TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdShows) {
263 MockTopControlsManagerClient client(0.25f, 0.25f); 273 MockTopControlsManagerClient client(0.25f, 0.25f);
264 TopControlsManager* manager = client.manager(); 274 TopControlsManager* manager = client.manager();
265 275
266 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f)); 276 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f));
267 EXPECT_EQ(-100.f, manager->controls_top_offset()); 277 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
268 EXPECT_EQ(0.f, manager->content_top_offset()); 278 EXPECT_EQ(0.f, manager->ContentTopOffset());
269 279
270 manager->ScrollBegin(); 280 manager->ScrollBegin();
271 281
272 manager->ScrollBy(gfx::Vector2dF(0.f, -30.f)); 282 manager->ScrollBy(gfx::Vector2dF(0.f, -30.f));
273 EXPECT_EQ(-70.f, manager->controls_top_offset()); 283 EXPECT_EQ(-70.f, manager->ControlsTopOffset());
274 EXPECT_EQ(30.f, manager->content_top_offset()); 284 EXPECT_EQ(30.f, manager->ContentTopOffset());
275 285
276 manager->ScrollEnd(); 286 manager->ScrollEnd();
277 EXPECT_TRUE(manager->animation()); 287 EXPECT_TRUE(manager->animation());
278 288
279 base::TimeTicks time = gfx::FrameTime::Now(); 289 base::TimeTicks time = gfx::FrameTime::Now();
280 float previous_offset = manager->controls_top_offset(); 290 float previous_offset = manager->ControlsTopOffset();
281 while (manager->animation()) { 291 while (manager->animation()) {
282 time = base::TimeDelta::FromMicroseconds(100) + time; 292 time = base::TimeDelta::FromMicroseconds(100) + time;
283 manager->Animate(time); 293 manager->Animate(time);
284 EXPECT_GT(manager->controls_top_offset(), previous_offset); 294 EXPECT_GT(manager->ControlsTopOffset(), previous_offset);
285 previous_offset = manager->controls_top_offset(); 295 previous_offset = manager->ControlsTopOffset();
286 } 296 }
287 EXPECT_FALSE(manager->animation()); 297 EXPECT_FALSE(manager->animation());
288 EXPECT_EQ(0.f, manager->controls_top_offset()); 298 EXPECT_EQ(0.f, manager->ControlsTopOffset());
289 EXPECT_EQ(100.f, manager->content_top_offset()); 299 EXPECT_EQ(100.f, manager->ContentTopOffset());
290 } 300 }
291 301
292 TEST(TopControlsManagerTest, PinchIgnoresScroll) { 302 TEST(TopControlsManagerTest, PinchIgnoresScroll) {
293 MockTopControlsManagerClient client(0.5f, 0.5f); 303 MockTopControlsManagerClient client(0.5f, 0.5f);
294 TopControlsManager* manager = client.manager(); 304 TopControlsManager* manager = client.manager();
295 305
296 // Hide the controls. 306 // Hide the controls.
297 manager->ScrollBegin(); 307 manager->ScrollBegin();
298 EXPECT_EQ(0.f, manager->controls_top_offset()); 308 EXPECT_EQ(0.f, manager->ControlsTopOffset());
299 309
300 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); 310 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
301 EXPECT_EQ(-100.f, manager->controls_top_offset()); 311 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
302 312
303 manager->PinchBegin(); 313 manager->PinchBegin();
304 EXPECT_EQ(-100.f, manager->controls_top_offset()); 314 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
305 315
306 // Scrolls are ignored during pinch. 316 // Scrolls are ignored during pinch.
307 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); 317 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f));
308 EXPECT_EQ(-100.f, manager->controls_top_offset()); 318 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
309 manager->PinchEnd(); 319 manager->PinchEnd();
310 EXPECT_EQ(-100.f, manager->controls_top_offset()); 320 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
311 321
312 // Scrolls should no long be ignored. 322 // Scrolls should no long be ignored.
313 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); 323 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f));
314 EXPECT_EQ(-85.f, manager->controls_top_offset()); 324 EXPECT_EQ(-85.f, manager->ControlsTopOffset());
315 EXPECT_EQ(15.f, manager->content_top_offset()); 325 EXPECT_EQ(15.f, manager->ContentTopOffset());
316 manager->ScrollEnd(); 326 manager->ScrollEnd();
317 327
318 EXPECT_TRUE(manager->animation()); 328 EXPECT_TRUE(manager->animation());
319 } 329 }
320 330
321 TEST(TopControlsManagerTest, PinchBeginStartsAnimationIfNecessary) { 331 TEST(TopControlsManagerTest, PinchBeginStartsAnimationIfNecessary) {
322 MockTopControlsManagerClient client(0.5f, 0.5f); 332 MockTopControlsManagerClient client(0.5f, 0.5f);
323 TopControlsManager* manager = client.manager(); 333 TopControlsManager* manager = client.manager();
324 334
325 manager->ScrollBegin(); 335 manager->ScrollBegin();
326 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); 336 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
327 EXPECT_EQ(-100.f, manager->controls_top_offset()); 337 EXPECT_EQ(-100.f, manager->ControlsTopOffset());
328 338
329 manager->PinchBegin(); 339 manager->PinchBegin();
330 EXPECT_FALSE(manager->animation()); 340 EXPECT_FALSE(manager->animation());
331 341
332 manager->PinchEnd(); 342 manager->PinchEnd();
333 EXPECT_FALSE(manager->animation()); 343 EXPECT_FALSE(manager->animation());
334 344
335 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); 345 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f));
336 EXPECT_EQ(-85.f, manager->controls_top_offset()); 346 EXPECT_EQ(-85.f, manager->ControlsTopOffset());
337 EXPECT_EQ(15.f, manager->content_top_offset()); 347 EXPECT_EQ(15.f, manager->ContentTopOffset());
338 348
339 manager->PinchBegin(); 349 manager->PinchBegin();
340 EXPECT_TRUE(manager->animation()); 350 EXPECT_TRUE(manager->animation());
341 351
342 base::TimeTicks time = base::TimeTicks::Now(); 352 base::TimeTicks time = base::TimeTicks::Now();
343 float previous_offset = manager->controls_top_offset(); 353 float previous_offset = manager->ControlsTopOffset();
344 while (manager->animation()) { 354 while (manager->animation()) {
345 time = base::TimeDelta::FromMicroseconds(100) + time; 355 time = base::TimeDelta::FromMicroseconds(100) + time;
346 manager->Animate(time); 356 manager->Animate(time);
347 EXPECT_LT(manager->controls_top_offset(), previous_offset); 357 EXPECT_LT(manager->ControlsTopOffset(), previous_offset);
348 previous_offset = manager->controls_top_offset(); 358 previous_offset = manager->ControlsTopOffset();
349 } 359 }
350 EXPECT_FALSE(manager->animation()); 360 EXPECT_FALSE(manager->animation());
351 361
352 manager->PinchEnd(); 362 manager->PinchEnd();
353 EXPECT_FALSE(manager->animation()); 363 EXPECT_FALSE(manager->animation());
354 364
355 manager->ScrollBy(gfx::Vector2dF(0.f, -55.f)); 365 manager->ScrollBy(gfx::Vector2dF(0.f, -55.f));
356 EXPECT_EQ(-45.f, manager->controls_top_offset()); 366 EXPECT_EQ(-45.f, manager->ControlsTopOffset());
357 EXPECT_EQ(55.f, manager->content_top_offset()); 367 EXPECT_EQ(55.f, manager->ContentTopOffset());
358 EXPECT_FALSE(manager->animation()); 368 EXPECT_FALSE(manager->animation());
359 369
360 manager->ScrollEnd(); 370 manager->ScrollEnd();
361 EXPECT_TRUE(manager->animation()); 371 EXPECT_TRUE(manager->animation());
362 372
363 time = base::TimeTicks::Now(); 373 time = base::TimeTicks::Now();
364 previous_offset = manager->controls_top_offset(); 374 previous_offset = manager->ControlsTopOffset();
365 while (manager->animation()) { 375 while (manager->animation()) {
366 time = base::TimeDelta::FromMicroseconds(100) + time; 376 time = base::TimeDelta::FromMicroseconds(100) + time;
367 manager->Animate(time); 377 manager->Animate(time);
368 EXPECT_GT(manager->controls_top_offset(), previous_offset); 378 EXPECT_GT(manager->ControlsTopOffset(), previous_offset);
369 previous_offset = manager->controls_top_offset(); 379 previous_offset = manager->ControlsTopOffset();
370 } 380 }
371 EXPECT_FALSE(manager->animation()); 381 EXPECT_FALSE(manager->animation());
372 EXPECT_EQ(0.f, manager->controls_top_offset()); 382 EXPECT_EQ(0.f, manager->ControlsTopOffset());
373 } 383 }
374 384
375 } // namespace 385 } // namespace
376 } // namespace cc 386 } // namespace cc
OLDNEW
« no previous file with comments | « cc/input/top_controls_manager_client.h ('k') | cc/test/fake_layer_tree_host_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698