Chromium Code Reviews| Index: ui/views/widget/widget_unittest.cc |
| diff --git a/ui/views/widget/widget_unittest.cc b/ui/views/widget/widget_unittest.cc |
| index 12e3cc1fb235adc24735f62d816e5386f4a9bca5..f45fd9e6dbe736db804c8a569f609a3bdfdbe72c 100644 |
| --- a/ui/views/widget/widget_unittest.cc |
| +++ b/ui/views/widget/widget_unittest.cc |
| @@ -1125,12 +1125,13 @@ TEST_F(WidgetTest, TestViewWidthAfterMinimizingWidget) { |
| class DesktopAuraTestValidPaintWidget : public views::Widget { |
| public: |
| DesktopAuraTestValidPaintWidget() |
| - : expect_paint_(true), |
| - received_paint_while_hidden_(false) { |
| - } |
| + : received_paint_(false), |
| + expect_paint_(true), |
| + received_paint_while_hidden_(false) {} |
| - virtual ~DesktopAuraTestValidPaintWidget() { |
| - } |
| + virtual ~DesktopAuraTestValidPaintWidget() {} |
| + |
| + void InitForTest(Widget::InitParams create_params); |
| virtual void Show() override { |
| expect_paint_ = true; |
| @@ -1148,58 +1149,66 @@ class DesktopAuraTestValidPaintWidget : public views::Widget { |
| } |
| virtual void OnNativeWidgetPaint(gfx::Canvas* canvas) override { |
| + received_paint_ = true; |
| EXPECT_TRUE(expect_paint_); |
| if (!expect_paint_) |
| received_paint_while_hidden_ = true; |
| views::Widget::OnNativeWidgetPaint(canvas); |
| } |
| + bool ReadReceivedPaint() { |
|
sky
2014/10/16 22:39:25
nit: make this name more explicit, maybe something
tapted
2014/10/17 02:50:34
Done.
|
| + bool result = received_paint_; |
| + received_paint_ = false; |
| + return result; |
| + } |
| + |
| bool received_paint_while_hidden() const { |
| return received_paint_while_hidden_; |
| } |
| private: |
| + bool received_paint_; |
| bool expect_paint_; |
| bool received_paint_while_hidden_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(DesktopAuraTestValidPaintWidget); |
| }; |
| -TEST_F(WidgetTest, DesktopNativeWidgetNoPaintAfterCloseTest) { |
| +void DesktopAuraTestValidPaintWidget::InitForTest(InitParams init_params) { |
| + init_params.bounds = gfx::Rect(0, 0, 200, 200); |
| + init_params.ownership = InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| + init_params.native_widget = new PlatformDesktopNativeWidget(this); |
| + Init(init_params); |
| + |
| View* contents_view = new View; |
| contents_view->SetFocusable(true); |
| + SetContentsView(contents_view); |
| + |
| + Show(); |
| + Activate(); |
| +} |
| + |
| +TEST_F(WidgetTest, DesktopNativeWidgetNoPaintAfterCloseTest) { |
| DesktopAuraTestValidPaintWidget widget; |
| - Widget::InitParams init_params = |
| - CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
| - init_params.bounds = gfx::Rect(0, 0, 200, 200); |
| - init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| - init_params.native_widget = new PlatformDesktopNativeWidget(&widget); |
| - widget.Init(init_params); |
| - widget.SetContentsView(contents_view); |
| - widget.Show(); |
| - widget.Activate(); |
| + widget.InitForTest(CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS)); |
| RunPendingMessages(); |
| - widget.SchedulePaintInRect(init_params.bounds); |
| + EXPECT_TRUE(widget.ReadReceivedPaint()); |
| + widget.SchedulePaintInRect(widget.GetRestoredBounds()); |
| widget.Close(); |
| RunPendingMessages(); |
| + EXPECT_FALSE(widget.ReadReceivedPaint()); |
| EXPECT_FALSE(widget.received_paint_while_hidden()); |
| } |
| TEST_F(WidgetTest, DesktopNativeWidgetNoPaintAfterHideTest) { |
| - View* contents_view = new View; |
| - contents_view->SetFocusable(true); |
| DesktopAuraTestValidPaintWidget widget; |
| - Widget::InitParams init_params = |
| - CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
| - init_params.bounds = gfx::Rect(0, 0, 200, 200); |
| - init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| - init_params.native_widget = new PlatformDesktopNativeWidget(&widget); |
| - widget.Init(init_params); |
| - widget.SetContentsView(contents_view); |
| - widget.Show(); |
| - widget.Activate(); |
| + widget.InitForTest(CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS)); |
| RunPendingMessages(); |
| - widget.SchedulePaintInRect(init_params.bounds); |
| + EXPECT_TRUE(widget.ReadReceivedPaint()); |
| + widget.SchedulePaintInRect(widget.GetRestoredBounds()); |
| widget.Hide(); |
| RunPendingMessages(); |
| + EXPECT_FALSE(widget.ReadReceivedPaint()); |
| EXPECT_FALSE(widget.received_paint_while_hidden()); |
| widget.Close(); |
| } |
| @@ -1221,6 +1230,8 @@ TEST_F(WidgetTest, TestWindowVisibilityAfterHide) { |
| NonClientFrameView* frame_view = new MinimumSizeFrameView(&widget); |
| non_client_view->SetFrameView(frame_view); |
| + widget.Show(); |
| + EXPECT_TRUE(IsNativeWindowVisible(widget.GetNativeWindow())); |
| widget.Hide(); |
| EXPECT_FALSE(IsNativeWindowVisible(widget.GetNativeWindow())); |
| widget.Show(); |