Chromium Code Reviews| Index: cc/trees/layer_tree_host_unittest_scroll.cc |
| diff --git a/cc/trees/layer_tree_host_unittest_scroll.cc b/cc/trees/layer_tree_host_unittest_scroll.cc |
| index ddc5507a27cc4ae93c917f86121e17be8206a6b0..2a2d8448b7ed87921e08cc67365094e75d898c32 100644 |
| --- a/cc/trees/layer_tree_host_unittest_scroll.cc |
| +++ b/cc/trees/layer_tree_host_unittest_scroll.cc |
| @@ -497,6 +497,64 @@ class LayerTreeHostScrollTestFractionalScroll : public LayerTreeHostScrollTest { |
| MULTI_THREAD_TEST_F(LayerTreeHostScrollTestFractionalScroll); |
| +class LayerTreeHostScrollTestScrollSnapping : public LayerTreeHostScrollTest { |
| + public: |
| + LayerTreeHostScrollTestScrollSnapping() : scroll_amount_(1.75, 0) {} |
| + |
| + void SetupTree() override { |
| + LayerTreeHostScrollTest::SetupTree(); |
| + layer_tree_host() |
| + ->outer_viewport_scroll_layer() |
| + ->scroll_clip_layer() |
| + ->SetForceRenderSurfaceForTesting(true); |
| + gfx::Transform translate; |
| + translate.Translate(0.25f, 0.f); |
| + layer_tree_host() |
| + ->outer_viewport_scroll_layer() |
| + ->scroll_clip_layer() |
| + ->SetTransform(translate); |
| + layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.1f, 100.f); |
| + } |
| + |
| + void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| + |
| + void DrawLayersOnThread(LayerTreeHostImpl* impl) override { |
| + LayerImpl* scroll_layer = impl->OuterViewportScrollLayer(); |
| + gfx::Transform translate; |
| + |
| + // Check that screen space transform of the scrollable layer is correctly |
| + // snapped to integers. |
| + switch (impl->active_tree()->source_frame_number()) { |
| + case 0: |
| + translate.Translate(0, 0); |
| + EXPECT_EQ(translate, |
|
sunxd
2016/05/17 18:19:45
I'm not sure if there is a better variable to comp
ajuma
2016/05/17 19:18:51
You could compare to the identity (either by compa
sunxd
2016/05/17 19:38:01
Done.
|
| + scroll_layer->draw_properties().screen_space_transform); |
| + PostSetNeedsCommitToMainThread(); |
| + break; |
| + case 1: |
| + translate.Translate(-2, 0); |
| + EXPECT_EQ(translate, |
| + scroll_layer->draw_properties().screen_space_transform); |
| + PostSetNeedsCommitToMainThread(); |
| + break; |
| + case 2: |
| + translate.Translate(-3, 0); |
| + EXPECT_EQ(translate, |
| + scroll_layer->draw_properties().screen_space_transform); |
| + EndTest(); |
| + break; |
| + } |
| + scroll_layer->ScrollBy(scroll_amount_); |
| + } |
| + |
| + void AfterTest() override {} |
| + |
| + private: |
| + gfx::Vector2dF scroll_amount_; |
| +}; |
| + |
| +MULTI_THREAD_TEST_F(LayerTreeHostScrollTestScrollSnapping); |
| + |
| class LayerTreeHostScrollTestCaseWithChild : public LayerTreeHostScrollTest { |
| public: |
| LayerTreeHostScrollTestCaseWithChild() |