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

Side by Side Diff: ui/views/widget/widget_unittest.cc

Issue 273073002: Changes code using Compositor to pass in ContextFactory (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix tooltip on chromeos Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <algorithm> 5 #include <algorithm>
6 #include <set> 6 #include <set>
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 1093 matching lines...) Expand 10 before | Expand all | Expand 10 after
1104 // windows. It additionally tests whether the destruction of these windows 1104 // windows. It additionally tests whether the destruction of these windows
1105 // occurs correctly in desktop AURA without crashing. 1105 // occurs correctly in desktop AURA without crashing.
1106 // It provides facilities to test the following cases:- 1106 // It provides facilities to test the following cases:-
1107 // 1. Child window destroyed which should lead to the destruction of the 1107 // 1. Child window destroyed which should lead to the destruction of the
1108 // parent. 1108 // parent.
1109 // 2. Parent window destroyed which should lead to the child being destroyed. 1109 // 2. Parent window destroyed which should lead to the child being destroyed.
1110 class DesktopAuraTopLevelWindowTest 1110 class DesktopAuraTopLevelWindowTest
1111 : public views::TestViewsDelegate, 1111 : public views::TestViewsDelegate,
1112 public aura::WindowObserver { 1112 public aura::WindowObserver {
1113 public: 1113 public:
1114 DesktopAuraTopLevelWindowTest() 1114 explicit DesktopAuraTopLevelWindowTest(ui::ContextFactory* context_factory)
1115 : top_level_widget_(NULL), 1115 : top_level_widget_(NULL),
1116 owned_window_(NULL), 1116 owned_window_(NULL),
1117 owner_destroyed_(false), 1117 owner_destroyed_(false),
1118 owned_window_destroyed_(false) {} 1118 owned_window_destroyed_(false) {
1119 set_context_factory(context_factory);
1120 }
1119 1121
1120 virtual ~DesktopAuraTopLevelWindowTest() { 1122 virtual ~DesktopAuraTopLevelWindowTest() {
1121 EXPECT_TRUE(owner_destroyed_); 1123 EXPECT_TRUE(owner_destroyed_);
1122 EXPECT_TRUE(owned_window_destroyed_); 1124 EXPECT_TRUE(owned_window_destroyed_);
1123 top_level_widget_ = NULL; 1125 top_level_widget_ = NULL;
1124 owned_window_ = NULL; 1126 owned_window_ = NULL;
1125 } 1127 }
1126 1128
1127 // views::TestViewsDelegate overrides. 1129 // views::TestViewsDelegate overrides.
1128 virtual void OnBeforeWidgetInit( 1130 virtual void OnBeforeWidgetInit(
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1202 aura::Window* owned_window_; 1204 aura::Window* owned_window_;
1203 bool owner_destroyed_; 1205 bool owner_destroyed_;
1204 bool owned_window_destroyed_; 1206 bool owned_window_destroyed_;
1205 aura::test::TestWindowDelegate child_window_delegate_; 1207 aura::test::TestWindowDelegate child_window_delegate_;
1206 1208
1207 DISALLOW_COPY_AND_ASSIGN(DesktopAuraTopLevelWindowTest); 1209 DISALLOW_COPY_AND_ASSIGN(DesktopAuraTopLevelWindowTest);
1208 }; 1210 };
1209 1211
1210 TEST_F(WidgetTest, DesktopAuraFullscreenWindowDestroyedBeforeOwnerTest) { 1212 TEST_F(WidgetTest, DesktopAuraFullscreenWindowDestroyedBeforeOwnerTest) {
1211 ViewsDelegate::views_delegate = NULL; 1213 ViewsDelegate::views_delegate = NULL;
1212 DesktopAuraTopLevelWindowTest fullscreen_window; 1214 DesktopAuraTopLevelWindowTest fullscreen_window(context_factory());
1213 ASSERT_NO_FATAL_FAILURE(fullscreen_window.CreateTopLevelWindow( 1215 ASSERT_NO_FATAL_FAILURE(fullscreen_window.CreateTopLevelWindow(
1214 gfx::Rect(0, 0, 200, 200), true)); 1216 gfx::Rect(0, 0, 200, 200), true));
1215 1217
1216 RunPendingMessages(); 1218 RunPendingMessages();
1217 ASSERT_NO_FATAL_FAILURE(fullscreen_window.DestroyOwnedWindow()); 1219 ASSERT_NO_FATAL_FAILURE(fullscreen_window.DestroyOwnedWindow());
1218 RunPendingMessages(); 1220 RunPendingMessages();
1219 } 1221 }
1220 1222
1221 TEST_F(WidgetTest, DesktopAuraFullscreenWindowOwnerDestroyed) { 1223 TEST_F(WidgetTest, DesktopAuraFullscreenWindowOwnerDestroyed) {
1222 ViewsDelegate::views_delegate = NULL; 1224 ViewsDelegate::views_delegate = NULL;
1223 1225
1224 DesktopAuraTopLevelWindowTest fullscreen_window; 1226 DesktopAuraTopLevelWindowTest fullscreen_window(context_factory());
1225 ASSERT_NO_FATAL_FAILURE(fullscreen_window.CreateTopLevelWindow( 1227 ASSERT_NO_FATAL_FAILURE(fullscreen_window.CreateTopLevelWindow(
1226 gfx::Rect(0, 0, 200, 200), true)); 1228 gfx::Rect(0, 0, 200, 200), true));
1227 1229
1228 RunPendingMessages(); 1230 RunPendingMessages();
1229 ASSERT_NO_FATAL_FAILURE(fullscreen_window.DestroyOwnerWindow()); 1231 ASSERT_NO_FATAL_FAILURE(fullscreen_window.DestroyOwnerWindow());
1230 RunPendingMessages(); 1232 RunPendingMessages();
1231 } 1233 }
1232 1234
1233 TEST_F(WidgetTest, DesktopAuraTopLevelOwnedPopupTest) { 1235 TEST_F(WidgetTest, DesktopAuraTopLevelOwnedPopupTest) {
1234 ViewsDelegate::views_delegate = NULL; 1236 ViewsDelegate::views_delegate = NULL;
1235 DesktopAuraTopLevelWindowTest popup_window; 1237 DesktopAuraTopLevelWindowTest popup_window(context_factory());
1236 ASSERT_NO_FATAL_FAILURE(popup_window.CreateTopLevelWindow( 1238 ASSERT_NO_FATAL_FAILURE(popup_window.CreateTopLevelWindow(
1237 gfx::Rect(0, 0, 200, 200), false)); 1239 gfx::Rect(0, 0, 200, 200), false));
1238 1240
1239 RunPendingMessages(); 1241 RunPendingMessages();
1240 ASSERT_NO_FATAL_FAILURE(popup_window.DestroyOwnedWindow()); 1242 ASSERT_NO_FATAL_FAILURE(popup_window.DestroyOwnedWindow());
1241 RunPendingMessages(); 1243 RunPendingMessages();
1242 } 1244 }
1243 1245
1244 // This test validates that when a top level owned popup Aura window is 1246 // This test validates that when a top level owned popup Aura window is
1245 // resized, the widget is resized as well. 1247 // resized, the widget is resized as well.
1246 TEST_F(WidgetTest, DesktopAuraTopLevelOwnedPopupResizeTest) { 1248 TEST_F(WidgetTest, DesktopAuraTopLevelOwnedPopupResizeTest) {
1247 ViewsDelegate::views_delegate = NULL; 1249 ViewsDelegate::views_delegate = NULL;
1248 DesktopAuraTopLevelWindowTest popup_window; 1250 DesktopAuraTopLevelWindowTest popup_window(context_factory());
1249 ASSERT_NO_FATAL_FAILURE(popup_window.CreateTopLevelWindow( 1251 ASSERT_NO_FATAL_FAILURE(popup_window.CreateTopLevelWindow(
1250 gfx::Rect(0, 0, 200, 200), false)); 1252 gfx::Rect(0, 0, 200, 200), false));
1251 1253
1252 gfx::Rect new_size(0, 0, 400, 400); 1254 gfx::Rect new_size(0, 0, 400, 400);
1253 popup_window.owned_window()->SetBounds(new_size); 1255 popup_window.owned_window()->SetBounds(new_size);
1254 1256
1255 EXPECT_EQ(popup_window.top_level_widget()->GetNativeView()->bounds().size(), 1257 EXPECT_EQ(popup_window.top_level_widget()->GetNativeView()->bounds().size(),
1256 new_size.size()); 1258 new_size.size());
1257 RunPendingMessages(); 1259 RunPendingMessages();
1258 ASSERT_NO_FATAL_FAILURE(popup_window.DestroyOwnedWindow()); 1260 ASSERT_NO_FATAL_FAILURE(popup_window.DestroyOwnedWindow());
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after
1679 TEST_F(WidgetWindowTitleTest, SetWindowTitleChanged_DesktopNativeWidget) { 1681 TEST_F(WidgetWindowTitleTest, SetWindowTitleChanged_DesktopNativeWidget) {
1680 // Override to use a DesktopNativeWidget. 1682 // Override to use a DesktopNativeWidget.
1681 bool desktop_native_widget = true; 1683 bool desktop_native_widget = true;
1682 RunTest(desktop_native_widget); 1684 RunTest(desktop_native_widget);
1683 } 1685 }
1684 #endif // !OS_CHROMEOS 1686 #endif // !OS_CHROMEOS
1685 1687
1686 // Used by SetTopLevelCorrectly to track calls to OnBeforeWidgetInit(). 1688 // Used by SetTopLevelCorrectly to track calls to OnBeforeWidgetInit().
1687 class VerifyTopLevelDelegate : public TestViewsDelegate { 1689 class VerifyTopLevelDelegate : public TestViewsDelegate {
1688 public: 1690 public:
1689 VerifyTopLevelDelegate() 1691 explicit VerifyTopLevelDelegate(ui::ContextFactory* context_factory)
1690 : on_before_init_called_(false), 1692 : on_before_init_called_(false),
1691 is_top_level_(false) { 1693 is_top_level_(false) {
1694 set_context_factory(context_factory);
1692 } 1695 }
1693 1696
1694 bool on_before_init_called() const { return on_before_init_called_; } 1697 bool on_before_init_called() const { return on_before_init_called_; }
1695 bool is_top_level() const { return is_top_level_; } 1698 bool is_top_level() const { return is_top_level_; }
1696 1699
1697 virtual void OnBeforeWidgetInit( 1700 virtual void OnBeforeWidgetInit(
1698 Widget::InitParams* params, 1701 Widget::InitParams* params,
1699 internal::NativeWidgetDelegate* delegate) OVERRIDE { 1702 internal::NativeWidgetDelegate* delegate) OVERRIDE {
1700 on_before_init_called_ = true; 1703 on_before_init_called_ = true;
1701 is_top_level_ = params->top_level; 1704 is_top_level_ = params->top_level;
1702 } 1705 }
1703 1706
1704 private: 1707 private:
1705 bool on_before_init_called_; 1708 bool on_before_init_called_;
1706 bool is_top_level_; 1709 bool is_top_level_;
1707 1710
1708 DISALLOW_COPY_AND_ASSIGN(VerifyTopLevelDelegate); 1711 DISALLOW_COPY_AND_ASSIGN(VerifyTopLevelDelegate);
1709 }; 1712 };
1710 1713
1711 // Verifies |top_level| is correctly passed to 1714 // Verifies |top_level| is correctly passed to
1712 // ViewsDelegate::OnBeforeWidgetInit(). 1715 // ViewsDelegate::OnBeforeWidgetInit().
1713 TEST_F(WidgetTest, SetTopLevelCorrectly) { 1716 TEST_F(WidgetTest, SetTopLevelCorrectly) {
1714 set_views_delegate(NULL); 1717 set_views_delegate(NULL);
1715 VerifyTopLevelDelegate* delegate = new VerifyTopLevelDelegate; 1718 VerifyTopLevelDelegate* delegate =
1719 new VerifyTopLevelDelegate(context_factory());
1716 set_views_delegate(delegate); // ViewsTestBase takes ownership. 1720 set_views_delegate(delegate); // ViewsTestBase takes ownership.
1717 scoped_ptr<Widget> widget(new Widget); 1721 scoped_ptr<Widget> widget(new Widget);
1718 Widget::InitParams params = 1722 Widget::InitParams params =
1719 CreateParams(views::Widget::InitParams::TYPE_POPUP); 1723 CreateParams(views::Widget::InitParams::TYPE_POPUP);
1720 params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 1724 params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
1721 widget->Init(params); 1725 widget->Init(params);
1722 EXPECT_TRUE(delegate->on_before_init_called()); 1726 EXPECT_TRUE(delegate->on_before_init_called());
1723 EXPECT_TRUE(delegate->is_top_level()); 1727 EXPECT_TRUE(delegate->is_top_level());
1724 } 1728 }
1725 1729
(...skipping 737 matching lines...) Expand 10 before | Expand all | Expand 10 after
2463 child_widget.Init(child_params); 2467 child_widget.Init(child_params);
2464 child_widget.AddObserver(&observer); 2468 child_widget.AddObserver(&observer);
2465 child_widget.Show(); 2469 child_widget.Show();
2466 2470
2467 parent_widget.CloseNow(); 2471 parent_widget.CloseNow();
2468 } 2472 }
2469 #endif 2473 #endif
2470 2474
2471 } // namespace test 2475 } // namespace test
2472 } // namespace views 2476 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc ('k') | ui/wm/test/wm_test_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698