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

Unified Diff: cc/layers/scrollbar_layer_unittest.cc

Issue 409193002: Avoid div-by-zero in thumb quad computation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 5 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
« no previous file with comments | « cc/layers/scrollbar_layer_impl_base.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/scrollbar_layer_unittest.cc
diff --git a/cc/layers/scrollbar_layer_unittest.cc b/cc/layers/scrollbar_layer_unittest.cc
index 7b5eb9eac8fe5fab6152e0db21f114e932e593fe..bcec55ac145bf6bd931ec92dd28e9574efc8c168 100644
--- a/cc/layers/scrollbar_layer_unittest.cc
+++ b/cc/layers/scrollbar_layer_unittest.cc
@@ -274,7 +274,7 @@ TEST(ScrollbarLayerTest, ThumbRect) {
TEST(ScrollbarLayerTest, SolidColorDrawQuads) {
const int kThumbThickness = 3;
- const int kTrackStart = 0;
+ const int kTrackStart = 1;
weiliangc 2014/07/22 18:49:46 I don't understand why we need to change TrackStar
Ian Vollick 2014/07/22 18:55:00 It's a good question. I did this so that I can mor
weiliangc 2014/07/22 19:00:12 Ah didn't realize the first test case has 40->39 a
const int kTrackLength = 100;
LayerTreeSettings layer_tree_settings;
@@ -303,7 +303,7 @@ TEST(ScrollbarLayerTest, SolidColorDrawQuads) {
const QuadList& quads = render_pass->quad_list;
ASSERT_EQ(1u, quads.size());
EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material);
- EXPECT_RECT_EQ(gfx::Rect(6, 0, 40, 3), quads[0]->rect);
+ EXPECT_RECT_EQ(gfx::Rect(6, 0, 39, 3), quads[0]->rect);
}
// Contents scale should scale the draw quad.
@@ -319,7 +319,7 @@ TEST(ScrollbarLayerTest, SolidColorDrawQuads) {
const QuadList& quads = render_pass->quad_list;
ASSERT_EQ(1u, quads.size());
EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material);
- EXPECT_RECT_EQ(gfx::Rect(12, 0, 80, 6), quads[0]->rect);
+ EXPECT_RECT_EQ(gfx::Rect(12, 0, 78, 6), quads[0]->rect);
}
scrollbar_layer_impl->draw_properties().contents_scale_x = 1.f;
scrollbar_layer_impl->draw_properties().contents_scale_y = 1.f;
@@ -337,7 +337,23 @@ TEST(ScrollbarLayerTest, SolidColorDrawQuads) {
const QuadList& quads = render_pass->quad_list;
ASSERT_EQ(1u, quads.size());
EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material);
- EXPECT_RECT_EQ(gfx::Rect(8, 0, 20, 3), quads[0]->rect);
+ EXPECT_RECT_EQ(gfx::Rect(8, 0, 19, 3), quads[0]->rect);
+ }
+
+ // We shouldn't attempt div-by-zero when the maximum is zero.
+ scrollbar_layer_impl->SetCurrentPos(0.f);
+ scrollbar_layer_impl->SetMaximum(0);
+ {
+ MockOcclusionTracker<LayerImpl> occlusion_tracker;
+ scoped_ptr<RenderPass> render_pass = RenderPass::Create();
+ AppendQuadsData data;
+ scrollbar_layer_impl->AppendQuads(
+ render_pass.get(), occlusion_tracker, &data);
+
+ const QuadList& quads = render_pass->quad_list;
+ ASSERT_EQ(1u, quads.size());
+ EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material);
+ EXPECT_RECT_EQ(gfx::Rect(1, 0, 19, 3), quads[0]->rect);
}
}
« no previous file with comments | « cc/layers/scrollbar_layer_impl_base.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698