Index: cc/trees/layer_tree_host_impl_unittest.cc |
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc |
index c184c67df9d9467996328090e9a43b5d4266b894..85627c48c193d719127a321b09520a061c8c461a 100644 |
--- a/cc/trees/layer_tree_host_impl_unittest.cc |
+++ b/cc/trees/layer_tree_host_impl_unittest.cc |
@@ -2325,9 +2325,14 @@ TEST_F(LayerTreeHostImplTest, ScrollScaledLayer) { |
class TestScrollOffsetDelegate : public LayerScrollOffsetDelegate { |
public: |
- TestScrollOffsetDelegate() {} |
+ TestScrollOffsetDelegate() : page_scale_factor_(0.f) {} |
+ |
virtual ~TestScrollOffsetDelegate() {} |
+ virtual void SetMaxScrollOffset(gfx::Vector2dF max_scroll_offset) OVERRIDE { |
+ max_scroll_offset_ = max_scroll_offset; |
+ } |
+ |
virtual void SetTotalScrollOffset(gfx::Vector2dF new_value) OVERRIDE { |
last_set_scroll_offset_ = new_value; |
} |
@@ -2336,6 +2341,14 @@ class TestScrollOffsetDelegate : public LayerScrollOffsetDelegate { |
return getter_return_value_; |
} |
+ virtual void SetPageScaleFactor(float page_scale_factor) OVERRIDE { |
+ page_scale_factor_ = page_scale_factor; |
+ } |
+ |
+ virtual void SetScrollableSize(gfx::SizeF scrollable_size) OVERRIDE { |
+ scrollable_size_ = scrollable_size; |
+ } |
+ |
gfx::Vector2dF last_set_scroll_offset() { |
return last_set_scroll_offset_; |
} |
@@ -2344,13 +2357,29 @@ class TestScrollOffsetDelegate : public LayerScrollOffsetDelegate { |
getter_return_value_ = value; |
} |
+ gfx::Vector2dF max_scroll_offset() const { |
+ return max_scroll_offset_; |
+ } |
+ |
+ gfx::SizeF scrollable_size() const { |
+ return scrollable_size_; |
+ } |
+ |
+ float page_scale_factor() const { |
+ return page_scale_factor_; |
+ } |
+ |
private: |
gfx::Vector2dF last_set_scroll_offset_; |
gfx::Vector2dF getter_return_value_; |
+ gfx::Vector2dF max_scroll_offset_; |
+ gfx::SizeF scrollable_size_; |
+ float page_scale_factor_; |
}; |
TEST_F(LayerTreeHostImplTest, RootLayerScrollOffsetDelegation) { |
TestScrollOffsetDelegate scroll_delegate; |
+ host_impl_->SetViewportSize(gfx::Size(10, 20)); |
LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 100)); |
// Setting the delegate results in the current scroll offset being set. |
@@ -2361,6 +2390,18 @@ TEST_F(LayerTreeHostImplTest, RootLayerScrollOffsetDelegation) { |
EXPECT_EQ(initial_scroll_delta.ToString(), |
scroll_delegate.last_set_scroll_offset().ToString()); |
+ // Setting the delegate results in the scrollable_size, max_scroll_offset and |
+ // page_scale being set. |
+ EXPECT_EQ(gfx::SizeF(100, 100), scroll_delegate.scrollable_size()); |
+ EXPECT_EQ(gfx::Vector2dF(90, 80), scroll_delegate.max_scroll_offset()); |
+ EXPECT_EQ(1.f, scroll_delegate.page_scale_factor()); |
+ |
+ // Updating page scale immediately updates the delegate. |
+ host_impl_->active_tree()->SetPageScaleFactorAndLimits(2.f, 0.5f, 4.f); |
+ EXPECT_EQ(2.f, scroll_delegate.page_scale_factor()); |
+ host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 0.5f, 4.f); |
+ EXPECT_EQ(1.f, scroll_delegate.page_scale_factor()); |
+ |
// Scrolling should be relative to the offset as returned by the delegate. |
gfx::Vector2dF scroll_delta(0.f, 10.f); |
gfx::Vector2dF current_offset(7.f, 8.f); |