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

Unified Diff: ui/views/widget/widget_unittest.cc

Issue 12212136: Ensures Widget::InitParams::top_level is set correctly before calling (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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
« no previous file with comments | « ui/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: ui/views/widget/widget_unittest.cc
diff --git a/ui/views/widget/widget_unittest.cc b/ui/views/widget/widget_unittest.cc
index ffac6175560b2b46fd5784ffd661e0516887fa99..b03bfd0b5e9178e38bc80b36f2de952730b5d95a 100644
--- a/ui/views/widget/widget_unittest.cc
+++ b/ui/views/widget/widget_unittest.cc
@@ -1410,5 +1410,45 @@ TEST_F(WidgetTest, GestureScrollEventDispatching) {
widget->CloseNow();
}
+// Used by SetTopLevelCorrectly to track calls to OnBeforeWidgetInit().
+class VerifyTopLevelDelegate : public TestViewsDelegate {
+ public:
+ VerifyTopLevelDelegate()
+ : on_before_init_called_(false),
+ is_top_level_(false) {
+ }
+
+ bool on_before_init_called() const { return on_before_init_called_; }
+ bool is_top_level() const { return is_top_level_; }
+
+ virtual void OnBeforeWidgetInit(
+ Widget::InitParams* params,
+ internal::NativeWidgetDelegate* delegate) OVERRIDE {
+ on_before_init_called_ = true;
+ is_top_level_ = params->top_level;
+ }
+
+ private:
+ bool on_before_init_called_;
+ bool is_top_level_;
+
+ DISALLOW_COPY_AND_ASSIGN(VerifyTopLevelDelegate);
+};
+
+// Verifies |top_level| is correctly passed to
+// ViewsDelegate::OnBeforeWidgetInit().
+TEST_F(WidgetTest, SetTopLevelCorrectly) {
+ set_views_delegate(NULL);
+ VerifyTopLevelDelegate* delegate = new VerifyTopLevelDelegate;
+ set_views_delegate(delegate); // ViewsTestBase takes ownership.
+ scoped_ptr<Widget> widget(new Widget);
+ Widget::InitParams params =
+ CreateParams(views::Widget::InitParams::TYPE_POPUP);
+ params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
+ widget->Init(params);
+ EXPECT_TRUE(delegate->on_before_init_called());
+ EXPECT_TRUE(delegate->is_top_level());
+}
+
} // namespace
} // namespace views
« no previous file with comments | « ui/views/widget/widget.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698