| Index: ui/views/view_unittest.cc
|
| diff --git a/ui/views/view_unittest.cc b/ui/views/view_unittest.cc
|
| index 1a103b731deb77f359ff10f7048caa4d6c15c196..bdcf48be132fe12b72643a5090a02ecc3dfb3e63 100644
|
| --- a/ui/views/view_unittest.cc
|
| +++ b/ui/views/view_unittest.cc
|
| @@ -432,6 +432,41 @@ void TestView::OnPaint(gfx::Canvas* canvas) {
|
| did_paint_ = true;
|
| }
|
|
|
| +TEST_F(ViewTest, PaintEmptyView) {
|
| + Widget* widget = new Widget;
|
| + Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
|
| + widget->Init(params);
|
| + View* root_view = widget->GetRootView();
|
| + root_view->SetBounds(0, 0, 25, 26);
|
| +
|
| + // |v1| is empty.
|
| + TestView* v1 = new TestView;
|
| + v1->SetBounds(10, 11, 0, 1);
|
| + root_view->AddChildView(v1);
|
| +
|
| + // |v11| is a child of an empty |v1|.
|
| + TestView* v11 = new TestView;
|
| + v11->SetBounds(3, 4, 6, 5);
|
| + v1->AddChildView(v11);
|
| +
|
| + // |v2| is not.
|
| + TestView* v2 = new TestView;
|
| + v2->SetBounds(3, 4, 6, 5);
|
| + root_view->AddChildView(v2);
|
| +
|
| + // Paint "everything".
|
| + gfx::Rect first_paint(1, 1);
|
| + scoped_refptr<cc::DisplayItemList> list =
|
| + cc::DisplayItemList::Create(first_paint, cc::DisplayItemListSettings());
|
| + root_view->Paint(ui::PaintContext(list.get(), 1.f, first_paint, first_paint));
|
| +
|
| + // The empty view has nothing to paint so it doesn't try build a cache, nor do
|
| + // its children which would be clipped by its (empty) self.
|
| + EXPECT_FALSE(v1->did_paint_);
|
| + EXPECT_FALSE(v11->did_paint_);
|
| + EXPECT_TRUE(v2->did_paint_);
|
| +}
|
| +
|
| TEST_F(ViewTest, PaintWithUnknownInvalidation) {
|
| Widget* widget = new Widget;
|
| Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
|
|
|