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

Unified Diff: views/widget/widget_unittest.cc

Issue 7979035: Fix for black-hole. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix more tests, reset non_client_view when new contentview is set Created 9 years, 3 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
« views/widget/widget.cc ('K') | « views/widget/widget.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: views/widget/widget_unittest.cc
diff --git a/views/widget/widget_unittest.cc b/views/widget/widget_unittest.cc
index a9f43dcb2b156e3a3ef2e32dcd0febdb9dd8e4da..aafa408544dba1c47b2a3bb1d77b7eeca4b836ac 100644
--- a/views/widget/widget_unittest.cc
+++ b/views/widget/widget_unittest.cc
@@ -132,6 +132,15 @@ Widget* CreateChildPlatformWidget(gfx::NativeView parent_native_view) {
return child;
}
+Widget* CreateTopLevelNativeWidgetViews() {
+ Widget* toplevel = new Widget;
+ Widget::InitParams params(Widget::InitParams::TYPE_WINDOW);
+ params.native_widget = new NativeWidgetViews(toplevel);
+ toplevel->Init(params);
+ toplevel->SetContentsView(new View);
+ return toplevel;
+}
+
Widget* CreateChildNativeWidgetViewsWithParent(Widget* parent) {
Widget* child = new Widget;
Widget::InitParams params(Widget::InitParams::TYPE_CONTROL);
@@ -178,7 +187,7 @@ TEST_F(WidgetTest, GetTopLevelWidget_Synthetic) {
// child NativeWidgetViews.
Widget* toplevel = CreateTopLevelPlatformWidget();
widget_views_delegate().set_default_parent_view(toplevel->GetRootView());
- Widget* child = CreateChildNativeWidgetViews();
+ Widget* child = CreateTopLevelNativeWidgetViews();
EXPECT_EQ(toplevel, toplevel->GetTopLevelWidget());
EXPECT_EQ(child, child->GetTopLevelWidget());
@@ -187,23 +196,26 @@ TEST_F(WidgetTest, GetTopLevelWidget_Synthetic) {
// |child| should be automatically destroyed with |toplevel|.
}
-// Creates a hierarchy consisting of a top level platform native widget, a child
-// NativeWidgetViews, and a child of that child, another NativeWidgetViews.
-TEST_F(WidgetTest, GetTopLevelWidget_SyntheticParent) {
- Widget* toplevel = CreateTopLevelPlatformWidget();
- widget_views_delegate().set_default_parent_view(toplevel->GetRootView());
-
- Widget* child1 = CreateChildNativeWidgetViews(); // Will be parented
- // automatically to
- // |toplevel|.
- Widget* child11 = CreateChildNativeWidgetViewsWithParent(child1);
-
+// Creates a hierarchy consisting of a desktop platform native widget, a
+// toplevel NativeWidgetViews, and a child of that toplevel, another
+// NativeWidgetViews.
+TEST_F(WidgetTest, GetTopLevelWidget_SyntheticDesktop) {
+ // Create a hierarchy consisting of a desktop platform native widget,
+ // a toplevel NativeWidgetViews and a chlid NativeWidgetViews.
+ Widget* desktop = CreateTopLevelPlatformWidget();
+ widget_views_delegate().set_default_parent_view(desktop->GetRootView());
+ Widget* toplevel = CreateTopLevelNativeWidgetViews(); // Will be parented
+ // automatically to
+ // |toplevel|.
+
+ Widget* child = CreateChildNativeWidgetViewsWithParent(toplevel);
+
+ EXPECT_EQ(desktop, desktop->GetTopLevelWidget());
EXPECT_EQ(toplevel, toplevel->GetTopLevelWidget());
- EXPECT_EQ(child1, child1->GetTopLevelWidget());
- EXPECT_EQ(child1, child11->GetTopLevelWidget());
+ EXPECT_EQ(toplevel, child->GetTopLevelWidget());
- toplevel->CloseNow();
- // |child1| and |child11| should be destroyed with |toplevel|.
+ desktop->CloseNow();
+ // |toplevel|, |child| should be automatically destroyed with |toplevel|.
}
// This is flaky on touch build. See crbug.com/94137.
@@ -215,12 +227,8 @@ TEST_F(WidgetTest, GetTopLevelWidget_SyntheticParent) {
// Tests some grab/ungrab events.
TEST_F(WidgetTest, MAYBE_GrabUngrab) {
Widget* toplevel = CreateTopLevelPlatformWidget();
- widget_views_delegate().set_default_parent_view(toplevel->GetRootView());
-
- Widget* child1 = CreateChildNativeWidgetViews(); // Will be parented
- // automatically to
- // |toplevel|.
- Widget* child2 = CreateChildNativeWidgetViews();
+ Widget* child1 = CreateChildNativeWidgetViewsWithParent(toplevel);
+ Widget* child2 = CreateChildNativeWidgetViewsWithParent(toplevel);
toplevel->SetBounds(gfx::Rect(0, 0, 500, 500));
@@ -650,7 +658,7 @@ class WidgetObserverTest : public WidgetTest,
}
Widget* NewWidget() {
- Widget* widget = CreateChildNativeWidgetViews();
+ Widget* widget = CreateTopLevelNativeWidgetViews();
widget->AddObserver(this);
return widget;
}
@@ -677,18 +685,26 @@ TEST_F(WidgetObserverTest, ActivationChange) {
Widget* toplevel = CreateTopLevelPlatformWidget();
widget_views_delegate().set_default_parent_view(toplevel->GetRootView());
- Widget* child1 = NewWidget();
- Widget* child2 = NewWidget();
+ Widget* toplevel1 = NewWidget();
+ Widget* toplevel2 = NewWidget();
+
+ toplevel1->Show();
+ toplevel2->Show();
reset();
- child1->Activate();
- EXPECT_EQ(child1, widget_activated());
+ toplevel1->Activate();
+
+ RunPendingMessages();
+ EXPECT_EQ(toplevel1, widget_activated());
- child2->Activate();
- EXPECT_EQ(child1, widget_deactivated());
- EXPECT_EQ(child2, widget_activated());
- EXPECT_EQ(child2, active());
+ toplevel2->Activate();
+ RunPendingMessages();
+ EXPECT_EQ(toplevel1, widget_deactivated());
+ EXPECT_EQ(toplevel2, widget_activated());
+ EXPECT_EQ(toplevel2, active());
+
+ toplevel->CloseNow();
}
TEST_F(WidgetObserverTest, VisibilityChange) {
@@ -711,6 +727,8 @@ TEST_F(WidgetObserverTest, VisibilityChange) {
child2->Show();
EXPECT_EQ(child2, widget_shown());
+
+ toplevel->CloseNow();
}
} // namespace
« views/widget/widget.cc ('K') | « views/widget/widget.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698