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

Side by Side Diff: cc/layers/layer_impl_unittest.cc

Issue 23983047: Pinch/Zoom Infrastructure & Plumbing CL (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address review comments. Created 6 years, 12 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/layers/layer_impl.h" 5 #include "cc/layers/layer_impl.h"
6 6
7 #include "cc/output/filter_operation.h" 7 #include "cc/output/filter_operation.h"
8 #include "cc/output/filter_operations.h" 8 #include "cc/output/filter_operations.h"
9 #include "cc/test/fake_impl_proxy.h" 9 #include "cc/test/fake_impl_proxy.h"
10 #include "cc/test/fake_layer_tree_host_impl.h" 10 #include "cc/test/fake_layer_tree_host_impl.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 TEST(LayerImplTest, VerifyLayerChangesAreTrackedProperly) { 64 TEST(LayerImplTest, VerifyLayerChangesAreTrackedProperly) {
65 // 65 //
66 // This test checks that layerPropertyChanged() has the correct behavior. 66 // This test checks that layerPropertyChanged() has the correct behavior.
67 // 67 //
68 68
69 // The constructor on this will fake that we are on the correct thread. 69 // The constructor on this will fake that we are on the correct thread.
70 // Create a simple LayerImpl tree: 70 // Create a simple LayerImpl tree:
71 FakeImplProxy proxy; 71 FakeImplProxy proxy;
72 FakeLayerTreeHostImpl host_impl(&proxy); 72 FakeLayerTreeHostImpl host_impl(&proxy);
73 EXPECT_TRUE(host_impl.InitializeRenderer(CreateFakeOutputSurface())); 73 EXPECT_TRUE(host_impl.InitializeRenderer(CreateFakeOutputSurface()));
74 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); 74 scoped_ptr<LayerImpl> root_clip =
75 root->AddChild(LayerImpl::Create(host_impl.active_tree(), 2)); 75 LayerImpl::Create(host_impl.active_tree(), 1);
76 root_clip->AddChild(LayerImpl::Create(host_impl.active_tree(), 2));
77 LayerImpl* root = root_clip->children()[0];
78 root->AddChild(LayerImpl::Create(host_impl.active_tree(), 3));
76 LayerImpl* child = root->children()[0]; 79 LayerImpl* child = root->children()[0];
77 child->AddChild(LayerImpl::Create(host_impl.active_tree(), 3)); 80 child->AddChild(LayerImpl::Create(host_impl.active_tree(), 4));
78 LayerImpl* grand_child = child->children()[0]; 81 LayerImpl* grand_child = child->children()[0];
79 82
80 root->SetScrollable(true); 83 root->SetScrollClipLayer(root_clip->id());
81 84
82 // Adding children is an internal operation and should not mark layers as 85 // Adding children is an internal operation and should not mark layers as
83 // changed. 86 // changed.
84 EXPECT_FALSE(root->LayerPropertyChanged()); 87 EXPECT_FALSE(root->LayerPropertyChanged());
85 EXPECT_FALSE(child->LayerPropertyChanged()); 88 EXPECT_FALSE(child->LayerPropertyChanged());
86 EXPECT_FALSE(grand_child->LayerPropertyChanged()); 89 EXPECT_FALSE(grand_child->LayerPropertyChanged());
87 90
88 gfx::PointF arbitrary_point_f = gfx::PointF(0.125f, 0.25f); 91 gfx::PointF arbitrary_point_f = gfx::PointF(0.125f, 0.25f);
89 float arbitrary_number = 0.352f; 92 float arbitrary_number = 0.352f;
90 gfx::Size arbitrary_size = gfx::Size(111, 222); 93 gfx::Size arbitrary_size = gfx::Size(111, 222);
91 gfx::Point arbitrary_point = gfx::Point(333, 444); 94 gfx::Point arbitrary_point = gfx::Point(333, 444);
92 gfx::Vector2d arbitrary_vector2d = gfx::Vector2d(111, 222); 95 gfx::Vector2d arbitrary_vector2d = gfx::Vector2d(111, 222);
93 gfx::Rect arbitrary_rect = gfx::Rect(arbitrary_point, arbitrary_size); 96 gfx::Rect arbitrary_rect = gfx::Rect(arbitrary_point, arbitrary_size);
94 gfx::RectF arbitrary_rect_f = 97 gfx::RectF arbitrary_rect_f =
95 gfx::RectF(arbitrary_point_f, gfx::SizeF(1.234f, 5.678f)); 98 gfx::RectF(arbitrary_point_f, gfx::SizeF(1.234f, 5.678f));
96 SkColor arbitrary_color = SkColorSetRGB(10, 20, 30); 99 SkColor arbitrary_color = SkColorSetRGB(10, 20, 30);
97 gfx::Transform arbitrary_transform; 100 gfx::Transform arbitrary_transform;
98 arbitrary_transform.Scale3d(0.1f, 0.2f, 0.3f); 101 arbitrary_transform.Scale3d(0.1f, 0.2f, 0.3f);
99 FilterOperations arbitrary_filters; 102 FilterOperations arbitrary_filters;
100 arbitrary_filters.Append(FilterOperation::CreateOpacityFilter(0.5f)); 103 arbitrary_filters.Append(FilterOperation::CreateOpacityFilter(0.5f));
101 SkXfermode::Mode arbitrary_blend_mode = SkXfermode::kMultiply_Mode; 104 SkXfermode::Mode arbitrary_blend_mode = SkXfermode::kMultiply_Mode;
102 105
103 // These properties are internal, and should not be considered "change" when 106 // These properties are internal, and should not be considered "change" when
104 // they are used. 107 // they are used.
105 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 108 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
106 root->set_update_rect(arbitrary_rect_f)); 109 root->set_update_rect(arbitrary_rect_f));
107 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 110 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
108 root->SetMaxScrollOffset(arbitrary_vector2d)); 111 root_clip->SetBounds(arbitrary_size));
109 112
110 // Changing these properties affects the entire subtree of layers. 113 // Changing these properties affects the entire subtree of layers.
111 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetAnchorPoint(arbitrary_point_f)); 114 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetAnchorPoint(arbitrary_point_f));
112 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetAnchorPointZ(arbitrary_number)); 115 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetAnchorPointZ(arbitrary_number));
113 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetFilters(arbitrary_filters)); 116 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetFilters(arbitrary_filters));
114 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetFilters(FilterOperations())); 117 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetFilters(FilterOperations()));
115 EXECUTE_AND_VERIFY_SUBTREE_CHANGED( 118 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(
116 root->SetMaskLayer(LayerImpl::Create(host_impl.active_tree(), 4))); 119 root->SetMaskLayer(LayerImpl::Create(host_impl.active_tree(), 5)));
117 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetMasksToBounds(true)); 120 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetMasksToBounds(true));
118 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetContentsOpaque(true)); 121 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetContentsOpaque(true));
119 EXECUTE_AND_VERIFY_SUBTREE_CHANGED( 122 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(
120 root->SetReplicaLayer(LayerImpl::Create(host_impl.active_tree(), 5))); 123 root->SetReplicaLayer(LayerImpl::Create(host_impl.active_tree(), 6)));
121 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetPosition(arbitrary_point_f)); 124 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetPosition(arbitrary_point_f));
122 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetPreserves3d(true)); 125 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetPreserves3d(true));
123 EXECUTE_AND_VERIFY_SUBTREE_CHANGED( 126 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(
124 root->SetDoubleSided(false)); // constructor initializes it to "true". 127 root->SetDoubleSided(false)); // constructor initializes it to "true".
125 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->ScrollBy(arbitrary_vector2d)); 128 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->ScrollBy(arbitrary_vector2d));
126 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetScrollDelta(gfx::Vector2d())); 129 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetScrollDelta(gfx::Vector2d()));
127 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetScrollOffset(arbitrary_vector2d)); 130 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetScrollOffset(arbitrary_vector2d));
128 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetHideLayerAndSubtree(true)); 131 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetHideLayerAndSubtree(true));
129 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetOpacity(arbitrary_number)); 132 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetOpacity(arbitrary_number));
130 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetBlendMode(arbitrary_blend_mode)); 133 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetBlendMode(arbitrary_blend_mode));
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetDrawsContent(true)); 191 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetDrawsContent(true));
189 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 192 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
190 root->SetSublayerTransform(arbitrary_transform)); 193 root->SetSublayerTransform(arbitrary_transform));
191 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetBounds(arbitrary_size)); 194 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetBounds(arbitrary_size));
192 } 195 }
193 196
194 TEST(LayerImplTest, VerifyNeedsUpdateDrawProperties) { 197 TEST(LayerImplTest, VerifyNeedsUpdateDrawProperties) {
195 FakeImplProxy proxy; 198 FakeImplProxy proxy;
196 FakeLayerTreeHostImpl host_impl(&proxy); 199 FakeLayerTreeHostImpl host_impl(&proxy);
197 EXPECT_TRUE(host_impl.InitializeRenderer(CreateFakeOutputSurface())); 200 EXPECT_TRUE(host_impl.InitializeRenderer(CreateFakeOutputSurface()));
198 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); 201 scoped_ptr<LayerImpl> root_clip =
199 root->SetScrollable(true); 202 LayerImpl::Create(host_impl.active_tree(), 1);
203 root_clip->AddChild(LayerImpl::Create(host_impl.active_tree(), 2));
204 LayerImpl* root = root_clip->children()[0];
205 root->SetScrollClipLayer(root_clip->id());
200 206
201 gfx::PointF arbitrary_point_f = gfx::PointF(0.125f, 0.25f); 207 gfx::PointF arbitrary_point_f = gfx::PointF(0.125f, 0.25f);
202 float arbitrary_number = 0.352f; 208 float arbitrary_number = 0.352f;
203 gfx::Size arbitrary_size = gfx::Size(111, 222); 209 gfx::Size arbitrary_size = gfx::Size(111, 222);
204 gfx::Point arbitrary_point = gfx::Point(333, 444); 210 gfx::Point arbitrary_point = gfx::Point(333, 444);
205 gfx::Vector2d arbitrary_vector2d = gfx::Vector2d(111, 222); 211 gfx::Vector2d arbitrary_vector2d = gfx::Vector2d(111, 222);
206 gfx::Vector2d large_vector2d = gfx::Vector2d(1000, 1000); 212 gfx::Size large_size = gfx::Size(1000, 1000);
207 gfx::Rect arbitrary_rect = gfx::Rect(arbitrary_point, arbitrary_size); 213 gfx::Rect arbitrary_rect = gfx::Rect(arbitrary_point, arbitrary_size);
208 gfx::RectF arbitrary_rect_f = 214 gfx::RectF arbitrary_rect_f =
209 gfx::RectF(arbitrary_point_f, gfx::SizeF(1.234f, 5.678f)); 215 gfx::RectF(arbitrary_point_f, gfx::SizeF(1.234f, 5.678f));
210 SkColor arbitrary_color = SkColorSetRGB(10, 20, 30); 216 SkColor arbitrary_color = SkColorSetRGB(10, 20, 30);
211 gfx::Transform arbitrary_transform; 217 gfx::Transform arbitrary_transform;
212 arbitrary_transform.Scale3d(0.1f, 0.2f, 0.3f); 218 arbitrary_transform.Scale3d(0.1f, 0.2f, 0.3f);
213 FilterOperations arbitrary_filters; 219 FilterOperations arbitrary_filters;
214 arbitrary_filters.Append(FilterOperation::CreateOpacityFilter(0.5f)); 220 arbitrary_filters.Append(FilterOperation::CreateOpacityFilter(0.5f));
215 SkXfermode::Mode arbitrary_blend_mode = SkXfermode::kMultiply_Mode; 221 SkXfermode::Mode arbitrary_blend_mode = SkXfermode::kMultiply_Mode;
216 222
217 // Related filter functions. 223 // Related filter functions.
218 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitrary_filters)); 224 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitrary_filters));
219 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitrary_filters)); 225 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitrary_filters));
220 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(FilterOperations())); 226 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(FilterOperations()));
221 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitrary_filters)); 227 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitrary_filters));
222 228
223 // Related scrolling functions. 229 // Related scrolling functions.
224 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetMaxScrollOffset(large_vector2d)); 230 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetBounds(large_size));
225 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( 231 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(
226 root->SetMaxScrollOffset(large_vector2d)); 232 root->SetBounds(large_size));
227 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->ScrollBy(arbitrary_vector2d)); 233 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->ScrollBy(arbitrary_vector2d));
228 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->ScrollBy(gfx::Vector2d())); 234 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->ScrollBy(gfx::Vector2d()));
229 root->SetScrollDelta(gfx::Vector2d(0, 0)); 235 root->SetScrollDelta(gfx::Vector2d(0, 0));
230 host_impl.ForcePrepareToDraw(); 236 host_impl.ForcePrepareToDraw();
231 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetScrollDelta(arbitrary_vector2d)); 237 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetScrollDelta(arbitrary_vector2d));
232 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( 238 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(
233 root->SetScrollDelta(arbitrary_vector2d)); 239 root->SetScrollDelta(arbitrary_vector2d));
234 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( 240 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(
235 root->SetScrollOffset(arbitrary_vector2d)); 241 root->SetScrollOffset(arbitrary_vector2d));
236 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( 242 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 } 328 }
323 } 329 }
324 } 330 }
325 } 331 }
326 332
327 class LayerImplScrollTest : public testing::Test { 333 class LayerImplScrollTest : public testing::Test {
328 public: 334 public:
329 LayerImplScrollTest() : host_impl_(&proxy_), root_id_(7) { 335 LayerImplScrollTest() : host_impl_(&proxy_), root_id_(7) {
330 host_impl_.active_tree() 336 host_impl_.active_tree()
331 ->SetRootLayer(LayerImpl::Create(host_impl_.active_tree(), root_id_)); 337 ->SetRootLayer(LayerImpl::Create(host_impl_.active_tree(), root_id_));
332 host_impl_.active_tree()->root_layer()->SetScrollable(true); 338 host_impl_.active_tree()->root_layer()->AddChild(
339 LayerImpl::Create(host_impl_.active_tree(), root_id_ + 1));
340 layer()->SetScrollClipLayer(root_id_);
341 // Set the max scroll offset by noting that the root layer has bounds (1,1),
342 // thus whatever bounds are set for the layer will be the max scroll
343 // offset plus 1 in each direction.
344 host_impl_.active_tree()->root_layer()->SetBounds(gfx::Size(1, 1));
345 gfx::Vector2d max_scroll_offset(51, 81);
346 layer()->SetBounds(gfx::Size(max_scroll_offset.x(), max_scroll_offset.y()));
333 } 347 }
334 348
335 LayerImpl* layer() { return host_impl_.active_tree()->root_layer(); } 349 LayerImpl* layer() {
350 return host_impl_.active_tree()->root_layer()->children()[0];
351 }
336 352
337 private: 353 private:
338 FakeImplProxy proxy_; 354 FakeImplProxy proxy_;
339 FakeLayerTreeHostImpl host_impl_; 355 FakeLayerTreeHostImpl host_impl_;
340 int root_id_; 356 int root_id_;
341 }; 357 };
342 358
343 TEST_F(LayerImplScrollTest, ScrollByWithZeroOffset) { 359 TEST_F(LayerImplScrollTest, ScrollByWithZeroOffset) {
344 // Test that LayerImpl::ScrollBy only affects ScrollDelta and total scroll 360 // Test that LayerImpl::ScrollBy only affects ScrollDelta and total scroll
345 // offset is bounded by the range [0, max scroll offset]. 361 // offset is bounded by the range [0, max scroll offset].
346 gfx::Vector2d max_scroll_offset(50, 80);
347 layer()->SetMaxScrollOffset(max_scroll_offset);
348 362
349 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->TotalScrollOffset()); 363 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->TotalScrollOffset());
350 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset()); 364 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset());
351 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 365 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
352 366
353 layer()->ScrollBy(gfx::Vector2dF(-100, 100)); 367 layer()->ScrollBy(gfx::Vector2dF(-100, 100));
354 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->TotalScrollOffset()); 368 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->TotalScrollOffset());
355 369
356 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->TotalScrollOffset()); 370 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->TotalScrollOffset());
357 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset()); 371 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset());
358 372
359 layer()->ScrollBy(gfx::Vector2dF(100, -100)); 373 layer()->ScrollBy(gfx::Vector2dF(100, -100));
360 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->TotalScrollOffset()); 374 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->TotalScrollOffset());
361 375
362 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->TotalScrollOffset()); 376 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->TotalScrollOffset());
363 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset()); 377 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset());
364 } 378 }
365 379
366 TEST_F(LayerImplScrollTest, ScrollByWithNonZeroOffset) { 380 TEST_F(LayerImplScrollTest, ScrollByWithNonZeroOffset) {
367 gfx::Vector2d max_scroll_offset(50, 80);
368 gfx::Vector2d scroll_offset(10, 5); 381 gfx::Vector2d scroll_offset(10, 5);
369 layer()->SetMaxScrollOffset(max_scroll_offset);
370 layer()->SetScrollOffset(scroll_offset); 382 layer()->SetScrollOffset(scroll_offset);
371 383
372 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); 384 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset());
373 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 385 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
374 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 386 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
375 387
376 layer()->ScrollBy(gfx::Vector2dF(-100, 100)); 388 layer()->ScrollBy(gfx::Vector2dF(-100, 100));
377 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->TotalScrollOffset()); 389 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->TotalScrollOffset());
378 390
379 EXPECT_VECTOR_EQ(layer()->ScrollDelta() + scroll_offset, 391 EXPECT_VECTOR_EQ(layer()->ScrollDelta() + scroll_offset,
(...skipping 22 matching lines...) Expand all
402 } 414 }
403 415
404 virtual void SetTotalPageScaleFactor(float page_scale_factor) OVERRIDE {} 416 virtual void SetTotalPageScaleFactor(float page_scale_factor) OVERRIDE {}
405 virtual void SetScrollableSize(gfx::SizeF scrollable_size) OVERRIDE {} 417 virtual void SetScrollableSize(gfx::SizeF scrollable_size) OVERRIDE {}
406 418
407 private: 419 private:
408 gfx::Vector2dF fixed_offset_; 420 gfx::Vector2dF fixed_offset_;
409 }; 421 };
410 422
411 TEST_F(LayerImplScrollTest, ScrollByWithIgnoringDelegate) { 423 TEST_F(LayerImplScrollTest, ScrollByWithIgnoringDelegate) {
412 gfx::Vector2d max_scroll_offset(50, 80);
413 gfx::Vector2d scroll_offset(10, 5); 424 gfx::Vector2d scroll_offset(10, 5);
414 layer()->SetMaxScrollOffset(max_scroll_offset);
415 layer()->SetScrollOffset(scroll_offset); 425 layer()->SetScrollOffset(scroll_offset);
416 426
417 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); 427 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset());
418 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 428 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
419 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 429 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
420 430
421 ScrollDelegateIgnore delegate; 431 ScrollDelegateIgnore delegate;
422 gfx::Vector2dF fixed_offset(32, 12); 432 gfx::Vector2dF fixed_offset(32, 12);
423 delegate.set_fixed_offset(fixed_offset); 433 delegate.set_fixed_offset(fixed_offset);
424 layer()->SetScrollOffsetDelegate(&delegate); 434 layer()->SetScrollOffsetDelegate(&delegate);
(...skipping 29 matching lines...) Expand all
454 } 464 }
455 virtual bool IsExternalFlingActive() const OVERRIDE { return false; } 465 virtual bool IsExternalFlingActive() const OVERRIDE { return false; }
456 virtual void SetTotalPageScaleFactor(float page_scale_factor) OVERRIDE {} 466 virtual void SetTotalPageScaleFactor(float page_scale_factor) OVERRIDE {}
457 virtual void SetScrollableSize(gfx::SizeF scrollable_size) OVERRIDE {} 467 virtual void SetScrollableSize(gfx::SizeF scrollable_size) OVERRIDE {}
458 468
459 private: 469 private:
460 gfx::Vector2dF current_offset_; 470 gfx::Vector2dF current_offset_;
461 }; 471 };
462 472
463 TEST_F(LayerImplScrollTest, ScrollByWithAcceptingDelegate) { 473 TEST_F(LayerImplScrollTest, ScrollByWithAcceptingDelegate) {
464 gfx::Vector2d max_scroll_offset(50, 80);
465 gfx::Vector2d scroll_offset(10, 5); 474 gfx::Vector2d scroll_offset(10, 5);
466 layer()->SetMaxScrollOffset(max_scroll_offset);
467 layer()->SetScrollOffset(scroll_offset); 475 layer()->SetScrollOffset(scroll_offset);
468 476
469 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); 477 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset());
470 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 478 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
471 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 479 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
472 480
473 ScrollDelegateAccept delegate; 481 ScrollDelegateAccept delegate;
474 layer()->SetScrollOffsetDelegate(&delegate); 482 layer()->SetScrollOffsetDelegate(&delegate);
475 483
476 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); 484 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset());
(...skipping 11 matching lines...) Expand all
488 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 496 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
489 497
490 gfx::Vector2dF scroll_delta(1, 1); 498 gfx::Vector2dF scroll_delta(1, 1);
491 layer()->ScrollBy(scroll_delta); 499 layer()->ScrollBy(scroll_delta);
492 500
493 EXPECT_VECTOR_EQ(gfx::Vector2dF(1, 80), layer()->TotalScrollOffset()); 501 EXPECT_VECTOR_EQ(gfx::Vector2dF(1, 80), layer()->TotalScrollOffset());
494 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 502 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
495 } 503 }
496 504
497 TEST_F(LayerImplScrollTest, ApplySentScrollsNoDelegate) { 505 TEST_F(LayerImplScrollTest, ApplySentScrollsNoDelegate) {
498 gfx::Vector2d max_scroll_offset(50, 80);
499 gfx::Vector2d scroll_offset(10, 5); 506 gfx::Vector2d scroll_offset(10, 5);
500 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 507 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
501 gfx::Vector2d sent_scroll_delta(12, -3); 508 gfx::Vector2d sent_scroll_delta(12, -3);
502 509
503 layer()->SetMaxScrollOffset(max_scroll_offset);
504 layer()->SetScrollOffset(scroll_offset); 510 layer()->SetScrollOffset(scroll_offset);
505 layer()->ScrollBy(scroll_delta); 511 layer()->ScrollBy(scroll_delta);
506 layer()->SetSentScrollDelta(sent_scroll_delta); 512 layer()->SetSentScrollDelta(sent_scroll_delta);
507 513
508 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset()); 514 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset());
509 EXPECT_VECTOR_EQ(scroll_delta, layer()->ScrollDelta()); 515 EXPECT_VECTOR_EQ(scroll_delta, layer()->ScrollDelta());
510 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 516 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
511 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta()); 517 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta());
512 518
513 layer()->ApplySentScrollDeltasFromAbortedCommit(); 519 layer()->ApplySentScrollDeltasFromAbortedCommit();
514 520
515 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset()); 521 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset());
516 EXPECT_VECTOR_EQ(scroll_delta - sent_scroll_delta, layer()->ScrollDelta()); 522 EXPECT_VECTOR_EQ(scroll_delta - sent_scroll_delta, layer()->ScrollDelta());
517 EXPECT_VECTOR_EQ(scroll_offset + sent_scroll_delta, layer()->scroll_offset()); 523 EXPECT_VECTOR_EQ(scroll_offset + sent_scroll_delta, layer()->scroll_offset());
518 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta()); 524 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta());
519 } 525 }
520 526
521 TEST_F(LayerImplScrollTest, ApplySentScrollsWithIgnoringDelegate) { 527 TEST_F(LayerImplScrollTest, ApplySentScrollsWithIgnoringDelegate) {
522 gfx::Vector2d max_scroll_offset(50, 80);
523 gfx::Vector2d scroll_offset(10, 5); 528 gfx::Vector2d scroll_offset(10, 5);
524 gfx::Vector2d sent_scroll_delta(12, -3); 529 gfx::Vector2d sent_scroll_delta(12, -3);
525 gfx::Vector2dF fixed_offset(32, 12); 530 gfx::Vector2dF fixed_offset(32, 12);
526 531
527 layer()->SetMaxScrollOffset(max_scroll_offset);
528 layer()->SetScrollOffset(scroll_offset); 532 layer()->SetScrollOffset(scroll_offset);
529 ScrollDelegateIgnore delegate; 533 ScrollDelegateIgnore delegate;
530 delegate.set_fixed_offset(fixed_offset); 534 delegate.set_fixed_offset(fixed_offset);
531 layer()->SetScrollOffsetDelegate(&delegate); 535 layer()->SetScrollOffsetDelegate(&delegate);
532 layer()->SetSentScrollDelta(sent_scroll_delta); 536 layer()->SetSentScrollDelta(sent_scroll_delta);
533 537
534 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset()); 538 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset());
535 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 539 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
536 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta()); 540 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta());
537 541
538 layer()->ApplySentScrollDeltasFromAbortedCommit(); 542 layer()->ApplySentScrollDeltasFromAbortedCommit();
539 543
540 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset()); 544 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset());
541 EXPECT_VECTOR_EQ(scroll_offset + sent_scroll_delta, layer()->scroll_offset()); 545 EXPECT_VECTOR_EQ(scroll_offset + sent_scroll_delta, layer()->scroll_offset());
542 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta()); 546 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta());
543 } 547 }
544 548
545 TEST_F(LayerImplScrollTest, ApplySentScrollsWithAcceptingDelegate) { 549 TEST_F(LayerImplScrollTest, ApplySentScrollsWithAcceptingDelegate) {
546 gfx::Vector2d max_scroll_offset(50, 80);
547 gfx::Vector2d scroll_offset(10, 5); 550 gfx::Vector2d scroll_offset(10, 5);
548 gfx::Vector2d sent_scroll_delta(12, -3); 551 gfx::Vector2d sent_scroll_delta(12, -3);
549 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 552 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
550 553
551 layer()->SetMaxScrollOffset(max_scroll_offset);
552 layer()->SetScrollOffset(scroll_offset); 554 layer()->SetScrollOffset(scroll_offset);
553 ScrollDelegateAccept delegate; 555 ScrollDelegateAccept delegate;
554 layer()->SetScrollOffsetDelegate(&delegate); 556 layer()->SetScrollOffsetDelegate(&delegate);
555 layer()->ScrollBy(scroll_delta); 557 layer()->ScrollBy(scroll_delta);
556 layer()->SetSentScrollDelta(sent_scroll_delta); 558 layer()->SetSentScrollDelta(sent_scroll_delta);
557 559
558 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset()); 560 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset());
559 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 561 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
560 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta()); 562 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta());
561 563
562 layer()->ApplySentScrollDeltasFromAbortedCommit(); 564 layer()->ApplySentScrollDeltasFromAbortedCommit();
563 565
564 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset()); 566 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset());
565 EXPECT_VECTOR_EQ(scroll_offset + sent_scroll_delta, layer()->scroll_offset()); 567 EXPECT_VECTOR_EQ(scroll_offset + sent_scroll_delta, layer()->scroll_offset());
566 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta()); 568 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta());
567 } 569 }
568 570
569 // The user-scrollability breaks for zoomed-in pages. So disable this. 571 // The user-scrollability breaks for zoomed-in pages. So disable this.
570 // http://crbug.com/322223 572 // http://crbug.com/322223
571 TEST_F(LayerImplScrollTest, DISABLED_ScrollUserUnscrollableLayer) { 573 TEST_F(LayerImplScrollTest, DISABLED_ScrollUserUnscrollableLayer) {
572 gfx::Vector2d max_scroll_offset(50, 80);
573 gfx::Vector2d scroll_offset(10, 5); 574 gfx::Vector2d scroll_offset(10, 5);
574 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 575 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
575 576
576 layer()->set_user_scrollable_vertical(false); 577 layer()->set_user_scrollable_vertical(false);
577 layer()->SetMaxScrollOffset(max_scroll_offset);
578 layer()->SetScrollOffset(scroll_offset); 578 layer()->SetScrollOffset(scroll_offset);
579 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta); 579 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta);
580 580
581 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 8.5f), unscrolled); 581 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 8.5f), unscrolled);
582 EXPECT_VECTOR_EQ(gfx::Vector2dF(30.5f, 5), layer()->TotalScrollOffset()); 582 EXPECT_VECTOR_EQ(gfx::Vector2dF(30.5f, 5), layer()->TotalScrollOffset());
583 } 583 }
584 584
585 } // namespace 585 } // namespace
586 } // namespace cc 586 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698