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

Side by Side Diff: ui/views/bubble/bubble_delegate_unittest.cc

Issue 11416251: Desktop aura: Continue threading context through views. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix erroneously removed line from NWWin tests. Created 8 years 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 "ui/views/bubble/bubble_delegate.h" 5 #include "ui/views/bubble/bubble_delegate.h"
6 #include "ui/views/bubble/bubble_frame_view.h" 6 #include "ui/views/bubble/bubble_frame_view.h"
7 #include "ui/views/test/views_test_base.h" 7 #include "ui/views/test/views_test_base.h"
8 #include "ui/views/widget/widget.h" 8 #include "ui/views/widget/widget.h"
9 9
10 namespace views { 10 namespace views {
(...skipping 25 matching lines...) Expand all
36 widget_->RemoveObserver(this); 36 widget_->RemoveObserver(this);
37 } 37 }
38 38
39 void TestWidgetObserver::OnWidgetClosing(Widget* widget) { 39 void TestWidgetObserver::OnWidgetClosing(Widget* widget) {
40 DCHECK_EQ(widget_, widget); 40 DCHECK_EQ(widget_, widget);
41 widget_ = NULL; 41 widget_ = NULL;
42 } 42 }
43 43
44 class TestBubbleDelegateView : public BubbleDelegateView { 44 class TestBubbleDelegateView : public BubbleDelegateView {
45 public: 45 public:
46 TestBubbleDelegateView(); 46 TestBubbleDelegateView(View* anchor_view);
47 virtual ~TestBubbleDelegateView(); 47 virtual ~TestBubbleDelegateView();
48 48
49 virtual View* GetInitiallyFocusedView() OVERRIDE; 49 virtual View* GetInitiallyFocusedView() OVERRIDE;
50 50
51 private: 51 private:
52 View* view_; 52 View* view_;
53 }; 53 };
54 54
55 TestBubbleDelegateView::TestBubbleDelegateView() : view_(new View()) { 55 TestBubbleDelegateView::TestBubbleDelegateView(View* anchor_view)
56 : BubbleDelegateView(anchor_view, BubbleBorder::TOP_LEFT),
57 view_(new View()) {
56 view_->set_focusable(true); 58 view_->set_focusable(true);
57 AddChildView(view_); 59 AddChildView(view_);
58 } 60 }
59 61
60 TestBubbleDelegateView::~TestBubbleDelegateView() {} 62 TestBubbleDelegateView::~TestBubbleDelegateView() {}
61 63
62 View* TestBubbleDelegateView::GetInitiallyFocusedView() { 64 View* TestBubbleDelegateView::GetInitiallyFocusedView() {
63 return view_; 65 return view_;
64 } 66 }
65 67
66 } // namespace 68 } // namespace
67 69
68 typedef ViewsTestBase BubbleDelegateTest; 70 typedef ViewsTestBase BubbleDelegateTest;
69 71
70 TEST_F(BubbleDelegateTest, CreateDelegate) { 72 TEST_F(BubbleDelegateTest, CreateDelegate) {
73 // Create the anchor and parent widgets.
74 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW);
75 scoped_ptr<Widget> anchor_widget(new Widget);
76 anchor_widget->Init(params);
77 anchor_widget->Show();
78
71 BubbleDelegateView* bubble_delegate = 79 BubbleDelegateView* bubble_delegate =
72 new BubbleDelegateView(NULL, BubbleBorder::NONE); 80 new BubbleDelegateView(anchor_widget->GetContentsView(),
81 BubbleBorder::NONE);
73 bubble_delegate->set_color(SK_ColorGREEN); 82 bubble_delegate->set_color(SK_ColorGREEN);
74 Widget* bubble_widget( 83 Widget* bubble_widget(
75 BubbleDelegateView::CreateBubble(bubble_delegate)); 84 BubbleDelegateView::CreateBubble(bubble_delegate));
76 EXPECT_EQ(bubble_delegate, bubble_widget->widget_delegate()); 85 EXPECT_EQ(bubble_delegate, bubble_widget->widget_delegate());
77 EXPECT_EQ(bubble_widget, bubble_delegate->GetWidget()); 86 EXPECT_EQ(bubble_widget, bubble_delegate->GetWidget());
78 TestWidgetObserver bubble_observer(bubble_widget); 87 TestWidgetObserver bubble_observer(bubble_widget);
79 EXPECT_FALSE(bubble_observer.widget_closed()); 88 EXPECT_FALSE(bubble_observer.widget_closed());
80 89
81 BubbleBorder* border = 90 BubbleBorder* border =
82 bubble_delegate->GetBubbleFrameView()->bubble_border(); 91 bubble_delegate->GetBubbleFrameView()->bubble_border();
83 EXPECT_EQ(bubble_delegate->arrow_location(), border->arrow_location()); 92 EXPECT_EQ(bubble_delegate->arrow_location(), border->arrow_location());
84 EXPECT_EQ(bubble_delegate->color(), border->background_color()); 93 EXPECT_EQ(bubble_delegate->color(), border->background_color());
85 94
86 bubble_widget->CloseNow(); 95 bubble_widget->CloseNow();
87 RunPendingMessages(); 96 RunPendingMessages();
88 EXPECT_TRUE(bubble_observer.widget_closed()); 97 EXPECT_TRUE(bubble_observer.widget_closed());
89 } 98 }
90 99
91 TEST_F(BubbleDelegateTest, CloseAnchorWidget) { 100 TEST_F(BubbleDelegateTest, CloseAnchorWidget) {
92 // Create the anchor widget. 101 // Create the anchor widget.
93 Widget::InitParams params(Widget::InitParams::TYPE_WINDOW); 102 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW);
94 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
95 scoped_ptr<Widget> anchor_widget(new Widget); 103 scoped_ptr<Widget> anchor_widget(new Widget);
96 anchor_widget->Init(params); 104 anchor_widget->Init(params);
97 anchor_widget->Show(); 105 anchor_widget->Show();
98 106
99 BubbleDelegateView* bubble_delegate = new BubbleDelegateView( 107 BubbleDelegateView* bubble_delegate = new BubbleDelegateView(
100 anchor_widget->GetContentsView(), BubbleBorder::NONE); 108 anchor_widget->GetContentsView(), BubbleBorder::NONE);
101 // Preventing close on deactivate should not prevent closing with the anchor. 109 // Preventing close on deactivate should not prevent closing with the anchor.
102 bubble_delegate->set_close_on_deactivate(false); 110 bubble_delegate->set_close_on_deactivate(false);
103 Widget* bubble_widget = BubbleDelegateView::CreateBubble(bubble_delegate); 111 Widget* bubble_widget = BubbleDelegateView::CreateBubble(bubble_delegate);
104 EXPECT_EQ(bubble_delegate, bubble_widget->widget_delegate()); 112 EXPECT_EQ(bubble_delegate, bubble_widget->widget_delegate());
(...skipping 17 matching lines...) Expand all
122 #endif 130 #endif
123 131
124 // Ensure that closing the anchor widget also closes the bubble itself. 132 // Ensure that closing the anchor widget also closes the bubble itself.
125 anchor_widget->CloseNow(); 133 anchor_widget->CloseNow();
126 RunPendingMessages(); 134 RunPendingMessages();
127 EXPECT_TRUE(bubble_observer.widget_closed()); 135 EXPECT_TRUE(bubble_observer.widget_closed());
128 } 136 }
129 137
130 TEST_F(BubbleDelegateTest, ResetAnchorWidget) { 138 TEST_F(BubbleDelegateTest, ResetAnchorWidget) {
131 // Create the anchor and parent widgets. 139 // Create the anchor and parent widgets.
132 Widget::InitParams params(Widget::InitParams::TYPE_WINDOW); 140 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW);
133 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
134 scoped_ptr<Widget> anchor_widget(new Widget); 141 scoped_ptr<Widget> anchor_widget(new Widget);
135 anchor_widget->Init(params); 142 anchor_widget->Init(params);
136 anchor_widget->Show(); 143 anchor_widget->Show();
137 scoped_ptr<Widget> parent_widget(new Widget); 144 scoped_ptr<Widget> parent_widget(new Widget);
138 parent_widget->Init(params); 145 parent_widget->Init(params);
139 parent_widget->Show(); 146 parent_widget->Show();
140 147
141 // Make sure the bubble widget is parented to a widget other than the anchor 148 // Make sure the bubble widget is parented to a widget other than the anchor
142 // widget so that closing the anchor widget does not close the bubble widget. 149 // widget so that closing the anchor widget does not close the bubble widget.
143 BubbleDelegateView* bubble_delegate = new BubbleDelegateView( 150 BubbleDelegateView* bubble_delegate = new BubbleDelegateView(
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 EXPECT_FALSE(bubble_observer.widget_closed()); 183 EXPECT_FALSE(bubble_observer.widget_closed());
177 #endif 184 #endif
178 185
179 // Ensure that closing the parent widget also closes the bubble itself. 186 // Ensure that closing the parent widget also closes the bubble itself.
180 parent_widget->CloseNow(); 187 parent_widget->CloseNow();
181 RunPendingMessages(); 188 RunPendingMessages();
182 EXPECT_TRUE(bubble_observer.widget_closed()); 189 EXPECT_TRUE(bubble_observer.widget_closed());
183 } 190 }
184 191
185 TEST_F(BubbleDelegateTest, InitiallyFocusedView) { 192 TEST_F(BubbleDelegateTest, InitiallyFocusedView) {
186 TestBubbleDelegateView* bubble_delegate = new TestBubbleDelegateView(); 193 // Create the anchor and parent widgets.
194 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW);
195 scoped_ptr<Widget> anchor_widget(new Widget);
196 anchor_widget->Init(params);
197 anchor_widget->Show();
198
199 TestBubbleDelegateView* bubble_delegate =
200 new TestBubbleDelegateView(anchor_widget->GetContentsView());
187 Widget* bubble_widget = BubbleDelegateView::CreateBubble(bubble_delegate); 201 Widget* bubble_widget = BubbleDelegateView::CreateBubble(bubble_delegate);
188 bubble_widget->Show(); 202 bubble_widget->Show();
189 203
190 View* expected_view = bubble_delegate->GetInitiallyFocusedView(); 204 View* expected_view = bubble_delegate->GetInitiallyFocusedView();
191 // TODO(ben|msw): The NativeWidgetWin::RestoreFocusOnActivate() workaround for 205 // TODO(ben|msw): The NativeWidgetWin::RestoreFocusOnActivate() workaround for
192 // http://crbug.com/125976 breaks this simple test by clearing proper focus. 206 // http://crbug.com/125976 breaks this simple test by clearing proper focus.
193 #if defined(OS_WIN) && !defined(USE_AURA) 207 #if defined(OS_WIN) && !defined(USE_AURA)
194 expected_view = NULL; 208 expected_view = NULL;
195 #endif 209 #endif
196 210
197 EXPECT_EQ(expected_view, bubble_widget->GetFocusManager()->GetFocusedView()); 211 EXPECT_EQ(expected_view, bubble_widget->GetFocusManager()->GetFocusedView());
198 bubble_widget->CloseNow(); 212 bubble_widget->CloseNow();
199 } 213 }
200 214
201 } // namespace views 215 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/accessible_pane_view_unittest.cc ('k') | ui/views/bubble/bubble_frame_view_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698