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..374435f6b038fa0de5b389f73b05e601a26e2f45 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 ReadReceivedPaintAndReset() { |
+ 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.ReadReceivedPaintAndReset()); |
+ widget.SchedulePaintInRect(widget.GetRestoredBounds()); |
widget.Close(); |
RunPendingMessages(); |
+ EXPECT_FALSE(widget.ReadReceivedPaintAndReset()); |
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.ReadReceivedPaintAndReset()); |
+ widget.SchedulePaintInRect(widget.GetRestoredBounds()); |
widget.Hide(); |
RunPendingMessages(); |
+ EXPECT_FALSE(widget.ReadReceivedPaintAndReset()); |
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(); |