Index: cc/layer_tree_host_impl_unittest.cc |
diff --git a/cc/layer_tree_host_impl_unittest.cc b/cc/layer_tree_host_impl_unittest.cc |
index 278f4676be2d10b3f02d45b483a0165de053de5f..f772155651b711f2fd0cc3e565bb397523fc77c0 100644 |
--- a/cc/layer_tree_host_impl_unittest.cc |
+++ b/cc/layer_tree_host_impl_unittest.cc |
@@ -646,7 +646,7 @@ TEST_P(LayerTreeHostImplTest, pinchGesture) |
} |
} |
- // Two-finger panning |
+ // Two-finger panning should not happen based on pinch events only |
{ |
m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale); |
scrollLayer->setImplTransform(identityScaleTransform); |
@@ -661,6 +661,27 @@ TEST_P(LayerTreeHostImplTest, pinchGesture) |
scoped_ptr<ScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas(); |
EXPECT_EQ(scrollInfo->pageScaleDelta, pageScaleDelta); |
+ EXPECT_TRUE(scrollInfo->scrolls.empty()); |
+ } |
+ |
+ // Two-finger panning should work with interleaved scroll events |
+ { |
+ m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale); |
+ scrollLayer->setImplTransform(identityScaleTransform); |
+ scrollLayer->setScrollDelta(gfx::Vector2d()); |
+ scrollLayer->setScrollOffset(gfx::Vector2d(20, 20)); |
+ |
+ float pageScaleDelta = 1; |
+ m_hostImpl->scrollBegin(gfx::Point(10, 10), InputHandlerClient::Wheel); |
+ m_hostImpl->pinchGestureBegin(); |
+ m_hostImpl->pinchGestureUpdate(pageScaleDelta, gfx::Point(10, 10)); |
+ m_hostImpl->scrollBy(gfx::Point(10, 10), gfx::Vector2d(-10, -10)); |
+ m_hostImpl->pinchGestureUpdate(pageScaleDelta, gfx::Point(20, 20)); |
+ m_hostImpl->pinchGestureEnd(); |
+ m_hostImpl->scrollEnd(); |
+ |
+ scoped_ptr<ScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas(); |
+ EXPECT_EQ(scrollInfo->pageScaleDelta, pageScaleDelta); |
expectContains(*scrollInfo, scrollLayer->id(), gfx::Vector2d(-10, -10)); |
} |
} |