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

Unified Diff: cc/layers/solid_color_scrollbar_layer_impl_unittest.cc

Issue 2803853007: Ignore rounding error between clip_layer_length_ and scroll_layer_length_ (Closed)
Patch Set: add test Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: cc/layers/solid_color_scrollbar_layer_impl_unittest.cc
diff --git a/cc/layers/solid_color_scrollbar_layer_impl_unittest.cc b/cc/layers/solid_color_scrollbar_layer_impl_unittest.cc
index a2b24303f235538035b4ab0095d4300c8ebe3f4d..f1565731097d23edaa3e4341a89744a39ed38545 100644
--- a/cc/layers/solid_color_scrollbar_layer_impl_unittest.cc
+++ b/cc/layers/solid_color_scrollbar_layer_impl_unittest.cc
@@ -77,5 +77,47 @@ TEST(SolidColorScrollbarLayerImplTest, Occlusion) {
}
}
+TEST(SolidColorScrollbarLayerImplTest, RoundingError) {
bokan 2017/04/18 17:39:08 This isn't specific to solid color scrollbar layer
+ gfx::Size viewport_size(100, 100);
+
+ LayerTestCommon::LayerImplTest impl;
+
+ LayerImpl* clip_layer = impl.AddChildToRoot<LayerImpl>();
+ LayerImpl* scroll_layer = impl.AddChild<LayerImpl>(clip_layer);
+
+ scroll_layer->SetScrollClipLayer(clip_layer->id());
+
+ const int kTrackStart = 0;
+ const int kThumbThickness = 10;
+ const bool kIsLeftSideVerticalScrollbar = false;
+ const bool kIsOverlayScrollbar = false;
+
+ SolidColorScrollbarLayerImpl* scrollbar_layer =
+ impl.AddChild<SolidColorScrollbarLayerImpl>(
+ scroll_layer, HORIZONTAL, kThumbThickness, kTrackStart,
+ kIsLeftSideVerticalScrollbar, kIsOverlayScrollbar);
+
+ scrollbar_layer->SetScrollLayerId(scroll_layer->id());
+ clip_layer->SetBounds(gfx::Size(100, 100));
+ scroll_layer->SetBounds(gfx::Size(100, 100));
+
+ impl.CalcDrawProps(viewport_size);
+
+ EXPECT_FLOAT_EQ(100.0f, scrollbar_layer->clip_layer_length());
+ EXPECT_FLOAT_EQ(100.0f, scrollbar_layer->scroll_layer_length());
bokan 2017/04/18 17:39:08 No need to test these.
+
+ // Fake clip layer length to scrollbar to mock rounding error.
+ scrollbar_layer->SetClipLayerLength(99.99f);
+ // Fake device scale.
+ impl.host_impl()->active_tree()->SetDeviceScaleFactor(3);
+
+ EXPECT_FLOAT_EQ(99.99f, scrollbar_layer->clip_layer_length());
+ EXPECT_FLOAT_EQ(3.f, impl.host_impl()->active_tree()->device_scale_factor());
+ EXPECT_FLOAT_EQ(1.f,
+ impl.host_impl()->active_tree()->current_page_scale_factor());
bokan 2017/04/18 17:39:08 No need to test any of the above lines. If you rea
+
+ EXPECT_FALSE(scrollbar_layer->CanScrollOrientation());
bokan 2017/04/18 17:39:08 You should also test the converse, that if the cli
+}
+
} // namespace
} // namespace cc

Powered by Google App Engine
This is Rietveld 408576698