Index: ash/wm/frame_painter_unittest.cc |
diff --git a/ash/wm/frame_painter_unittest.cc b/ash/wm/frame_painter_unittest.cc |
index 8ce42eb8564e8099a09c2cc278a67ddce23e7190..b7f11f5e43dfea1092039209e56c63534fbf4d62 100644 |
--- a/ash/wm/frame_painter_unittest.cc |
+++ b/ash/wm/frame_painter_unittest.cc |
@@ -123,6 +123,33 @@ TEST_F(FramePainterTest, Basics) { |
EXPECT_EQ(0u, FramePainter::instances_->size()); |
} |
+TEST_F(FramePainterTest, CreateAndDeleteSingleWindow) { |
+ // Ensure that creating/deleting a window works well and doesn't cause |
+ // crashes. See crbug.com/155634 |
+ scoped_ptr<Widget> widget(CreateTestWidget()); |
+ scoped_ptr<FramePainter> painter(new FramePainter); |
+ ImageButton size(NULL); |
+ ImageButton close(NULL); |
+ painter->Init( |
+ widget.get(), NULL, &size, &close, FramePainter::SIZE_BUTTON_MAXIMIZES); |
+ widget->Show(); |
+ |
+ // We only have one window, so it should use a solo header. |
+ EXPECT_TRUE(painter->UseSoloWindowHeader()); |
+ |
+ // Close the window. |
+ widget.reset(); |
James Cook
2012/10/16 20:51:46
Maybe after this line assert that the root window
Jun Mukai
2012/10/16 21:11:45
Done.
|
+ |
+ // Recreate another window again. |
+ painter.reset(new FramePainter); |
+ widget.reset(CreateTestWidget()); |
+ |
+ painter->Init( |
+ widget.get(), NULL, &size, &close, FramePainter::SIZE_BUTTON_MAXIMIZES); |
+ widget->Show(); |
+ EXPECT_TRUE(painter->UseSoloWindowHeader()); |
+} |
+ |
TEST_F(FramePainterTest, UseSoloWindowHeader) { |
// Create a widget and a painter for it. |
scoped_ptr<Widget> w1(CreateTestWidget()); |