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

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

Issue 1868363002: Replace scoped_ptr with std::unique_ptr in //ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scopedptrcc
Patch Set: scopedptrui: rebase-make_scoped_ptr Created 4 years, 8 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
« no previous file with comments | « ui/views/bubble/bubble_dialog_delegate.cc ('k') | ui/views/bubble/bubble_frame_view.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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_dialog_delegate.h" 5 #include "ui/views/bubble/bubble_dialog_delegate.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "ui/base/hit_test.h" 10 #include "ui/base/hit_test.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 return widget; 57 return widget;
58 } 58 }
59 59
60 private: 60 private:
61 DISALLOW_COPY_AND_ASSIGN(BubbleDialogDelegateTest); 61 DISALLOW_COPY_AND_ASSIGN(BubbleDialogDelegateTest);
62 }; 62 };
63 63
64 } // namespace 64 } // namespace
65 65
66 TEST_F(BubbleDialogDelegateTest, CreateDelegate) { 66 TEST_F(BubbleDialogDelegateTest, CreateDelegate) {
67 scoped_ptr<Widget> anchor_widget(CreateTestWidget()); 67 std::unique_ptr<Widget> anchor_widget(CreateTestWidget());
68 TestBubbleDialogDelegateView* bubble_delegate = 68 TestBubbleDialogDelegateView* bubble_delegate =
69 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView()); 69 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
70 bubble_delegate->set_color(SK_ColorGREEN); 70 bubble_delegate->set_color(SK_ColorGREEN);
71 Widget* bubble_widget = 71 Widget* bubble_widget =
72 BubbleDialogDelegateView::CreateBubble(bubble_delegate); 72 BubbleDialogDelegateView::CreateBubble(bubble_delegate);
73 EXPECT_EQ(bubble_delegate, bubble_widget->widget_delegate()); 73 EXPECT_EQ(bubble_delegate, bubble_widget->widget_delegate());
74 EXPECT_EQ(bubble_widget, bubble_delegate->GetWidget()); 74 EXPECT_EQ(bubble_widget, bubble_delegate->GetWidget());
75 test::TestWidgetObserver bubble_observer(bubble_widget); 75 test::TestWidgetObserver bubble_observer(bubble_widget);
76 bubble_widget->Show(); 76 bubble_widget->Show();
77 77
78 BubbleBorder* border = bubble_delegate->GetBubbleFrameView()->bubble_border(); 78 BubbleBorder* border = bubble_delegate->GetBubbleFrameView()->bubble_border();
79 EXPECT_EQ(bubble_delegate->arrow(), border->arrow()); 79 EXPECT_EQ(bubble_delegate->arrow(), border->arrow());
80 EXPECT_EQ(bubble_delegate->color(), border->background_color()); 80 EXPECT_EQ(bubble_delegate->color(), border->background_color());
81 81
82 EXPECT_FALSE(bubble_observer.widget_closed()); 82 EXPECT_FALSE(bubble_observer.widget_closed());
83 bubble_widget->CloseNow(); 83 bubble_widget->CloseNow();
84 EXPECT_TRUE(bubble_observer.widget_closed()); 84 EXPECT_TRUE(bubble_observer.widget_closed());
85 } 85 }
86 86
87 TEST_F(BubbleDialogDelegateTest, CloseAnchorWidget) { 87 TEST_F(BubbleDialogDelegateTest, CloseAnchorWidget) {
88 scoped_ptr<Widget> anchor_widget(CreateTestWidget()); 88 std::unique_ptr<Widget> anchor_widget(CreateTestWidget());
89 BubbleDialogDelegateView* bubble_delegate = 89 BubbleDialogDelegateView* bubble_delegate =
90 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView()); 90 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
91 // Preventing close on deactivate should not prevent closing with the anchor. 91 // Preventing close on deactivate should not prevent closing with the anchor.
92 bubble_delegate->set_close_on_deactivate(false); 92 bubble_delegate->set_close_on_deactivate(false);
93 Widget* bubble_widget = 93 Widget* bubble_widget =
94 BubbleDialogDelegateView::CreateBubble(bubble_delegate); 94 BubbleDialogDelegateView::CreateBubble(bubble_delegate);
95 EXPECT_EQ(bubble_delegate, bubble_widget->widget_delegate()); 95 EXPECT_EQ(bubble_delegate, bubble_widget->widget_delegate());
96 EXPECT_EQ(bubble_widget, bubble_delegate->GetWidget()); 96 EXPECT_EQ(bubble_widget, bubble_delegate->GetWidget());
97 EXPECT_EQ(anchor_widget.get(), bubble_delegate->anchor_widget()); 97 EXPECT_EQ(anchor_widget.get(), bubble_delegate->anchor_widget());
98 test::TestWidgetObserver bubble_observer(bubble_widget); 98 test::TestWidgetObserver bubble_observer(bubble_widget);
99 EXPECT_FALSE(bubble_observer.widget_closed()); 99 EXPECT_FALSE(bubble_observer.widget_closed());
100 100
101 bubble_widget->Show(); 101 bubble_widget->Show();
102 EXPECT_EQ(anchor_widget.get(), bubble_delegate->anchor_widget()); 102 EXPECT_EQ(anchor_widget.get(), bubble_delegate->anchor_widget());
103 EXPECT_FALSE(bubble_observer.widget_closed()); 103 EXPECT_FALSE(bubble_observer.widget_closed());
104 104
105 // TODO(msw): Remove activation hack to prevent bookkeeping errors in: 105 // TODO(msw): Remove activation hack to prevent bookkeeping errors in:
106 // aura::test::TestActivationClient::OnWindowDestroyed(). 106 // aura::test::TestActivationClient::OnWindowDestroyed().
107 scoped_ptr<Widget> smoke_and_mirrors_widget(CreateTestWidget()); 107 std::unique_ptr<Widget> smoke_and_mirrors_widget(CreateTestWidget());
108 EXPECT_FALSE(bubble_observer.widget_closed()); 108 EXPECT_FALSE(bubble_observer.widget_closed());
109 109
110 // Ensure that closing the anchor widget also closes the bubble itself. 110 // Ensure that closing the anchor widget also closes the bubble itself.
111 anchor_widget->CloseNow(); 111 anchor_widget->CloseNow();
112 EXPECT_TRUE(bubble_observer.widget_closed()); 112 EXPECT_TRUE(bubble_observer.widget_closed());
113 } 113 }
114 114
115 // This test checks that the bubble delegate is capable to handle an early 115 // This test checks that the bubble delegate is capable to handle an early
116 // destruction of the used anchor view. (Animations and delayed closure of the 116 // destruction of the used anchor view. (Animations and delayed closure of the
117 // bubble will call upon the anchor view to get its location). 117 // bubble will call upon the anchor view to get its location).
118 TEST_F(BubbleDialogDelegateTest, CloseAnchorViewTest) { 118 TEST_F(BubbleDialogDelegateTest, CloseAnchorViewTest) {
119 // Create an anchor widget and add a view to be used as an anchor view. 119 // Create an anchor widget and add a view to be used as an anchor view.
120 scoped_ptr<Widget> anchor_widget(CreateTestWidget()); 120 std::unique_ptr<Widget> anchor_widget(CreateTestWidget());
121 scoped_ptr<View> anchor_view(new View()); 121 std::unique_ptr<View> anchor_view(new View());
122 anchor_widget->GetContentsView()->AddChildView(anchor_view.get()); 122 anchor_widget->GetContentsView()->AddChildView(anchor_view.get());
123 TestBubbleDialogDelegateView* bubble_delegate = 123 TestBubbleDialogDelegateView* bubble_delegate =
124 new TestBubbleDialogDelegateView(anchor_view.get()); 124 new TestBubbleDialogDelegateView(anchor_view.get());
125 // Prevent flakes by avoiding closing on activation changes. 125 // Prevent flakes by avoiding closing on activation changes.
126 bubble_delegate->set_close_on_deactivate(false); 126 bubble_delegate->set_close_on_deactivate(false);
127 Widget* bubble_widget = 127 Widget* bubble_widget =
128 BubbleDialogDelegateView::CreateBubble(bubble_delegate); 128 BubbleDialogDelegateView::CreateBubble(bubble_delegate);
129 129
130 // Check that the anchor view is correct and set up an anchor view rect. 130 // Check that the anchor view is correct and set up an anchor view rect.
131 // Make sure that this rect will get ignored (as long as the anchor view is 131 // Make sure that this rect will get ignored (as long as the anchor view is
(...skipping 12 matching lines...) Expand all
144 // is still kept, so that the bubble does not jump when the view gets deleted. 144 // is still kept, so that the bubble does not jump when the view gets deleted.
145 anchor_widget->GetContentsView()->RemoveChildView(anchor_view.get()); 145 anchor_widget->GetContentsView()->RemoveChildView(anchor_view.get());
146 anchor_view.reset(); 146 anchor_view.reset();
147 EXPECT_EQ(NULL, bubble_delegate->GetAnchorView()); 147 EXPECT_EQ(NULL, bubble_delegate->GetAnchorView());
148 EXPECT_EQ(view_rect.ToString(), bubble_delegate->GetAnchorRect().ToString()); 148 EXPECT_EQ(view_rect.ToString(), bubble_delegate->GetAnchorRect().ToString());
149 } 149 }
150 150
151 // Testing that a move of the anchor view will lead to new bubble locations. 151 // Testing that a move of the anchor view will lead to new bubble locations.
152 TEST_F(BubbleDialogDelegateTest, TestAnchorRectMovesWithViewTest) { 152 TEST_F(BubbleDialogDelegateTest, TestAnchorRectMovesWithViewTest) {
153 // Create an anchor widget and add a view to be used as anchor view. 153 // Create an anchor widget and add a view to be used as anchor view.
154 scoped_ptr<Widget> anchor_widget(CreateTestWidget()); 154 std::unique_ptr<Widget> anchor_widget(CreateTestWidget());
155 TestBubbleDialogDelegateView* bubble_delegate = 155 TestBubbleDialogDelegateView* bubble_delegate =
156 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView()); 156 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
157 BubbleDialogDelegateView::CreateBubble(bubble_delegate); 157 BubbleDialogDelegateView::CreateBubble(bubble_delegate);
158 158
159 anchor_widget->GetContentsView()->SetBounds(10, 10, 100, 100); 159 anchor_widget->GetContentsView()->SetBounds(10, 10, 100, 100);
160 const gfx::Rect view_rect = bubble_delegate->GetAnchorRect(); 160 const gfx::Rect view_rect = bubble_delegate->GetAnchorRect();
161 161
162 anchor_widget->GetContentsView()->SetBounds(20, 10, 100, 100); 162 anchor_widget->GetContentsView()->SetBounds(20, 10, 100, 100);
163 const gfx::Rect view_rect_2 = bubble_delegate->GetAnchorRect(); 163 const gfx::Rect view_rect_2 = bubble_delegate->GetAnchorRect();
164 EXPECT_NE(view_rect.ToString(), view_rect_2.ToString()); 164 EXPECT_NE(view_rect.ToString(), view_rect_2.ToString());
165 } 165 }
166 166
167 TEST_F(BubbleDialogDelegateTest, ResetAnchorWidget) { 167 TEST_F(BubbleDialogDelegateTest, ResetAnchorWidget) {
168 scoped_ptr<Widget> anchor_widget(CreateTestWidget()); 168 std::unique_ptr<Widget> anchor_widget(CreateTestWidget());
169 BubbleDialogDelegateView* bubble_delegate = 169 BubbleDialogDelegateView* bubble_delegate =
170 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView()); 170 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
171 171
172 // Make sure the bubble widget is parented to a widget other than the anchor 172 // Make sure the bubble widget is parented to a widget other than the anchor
173 // widget so that closing the anchor widget does not close the bubble widget. 173 // widget so that closing the anchor widget does not close the bubble widget.
174 scoped_ptr<Widget> parent_widget(CreateTestWidget()); 174 std::unique_ptr<Widget> parent_widget(CreateTestWidget());
175 bubble_delegate->set_parent_window(parent_widget->GetNativeView()); 175 bubble_delegate->set_parent_window(parent_widget->GetNativeView());
176 // Preventing close on deactivate should not prevent closing with the parent. 176 // Preventing close on deactivate should not prevent closing with the parent.
177 bubble_delegate->set_close_on_deactivate(false); 177 bubble_delegate->set_close_on_deactivate(false);
178 Widget* bubble_widget = 178 Widget* bubble_widget =
179 BubbleDialogDelegateView::CreateBubble(bubble_delegate); 179 BubbleDialogDelegateView::CreateBubble(bubble_delegate);
180 EXPECT_EQ(bubble_delegate, bubble_widget->widget_delegate()); 180 EXPECT_EQ(bubble_delegate, bubble_widget->widget_delegate());
181 EXPECT_EQ(bubble_widget, bubble_delegate->GetWidget()); 181 EXPECT_EQ(bubble_widget, bubble_delegate->GetWidget());
182 EXPECT_EQ(anchor_widget.get(), bubble_delegate->anchor_widget()); 182 EXPECT_EQ(anchor_widget.get(), bubble_delegate->anchor_widget());
183 test::TestWidgetObserver bubble_observer(bubble_widget); 183 test::TestWidgetObserver bubble_observer(bubble_widget);
184 EXPECT_FALSE(bubble_observer.widget_closed()); 184 EXPECT_FALSE(bubble_observer.widget_closed());
185 185
186 // Showing and hiding the bubble widget should have no effect on its anchor. 186 // Showing and hiding the bubble widget should have no effect on its anchor.
187 bubble_widget->Show(); 187 bubble_widget->Show();
188 EXPECT_EQ(anchor_widget.get(), bubble_delegate->anchor_widget()); 188 EXPECT_EQ(anchor_widget.get(), bubble_delegate->anchor_widget());
189 bubble_widget->Hide(); 189 bubble_widget->Hide();
190 EXPECT_EQ(anchor_widget.get(), bubble_delegate->anchor_widget()); 190 EXPECT_EQ(anchor_widget.get(), bubble_delegate->anchor_widget());
191 191
192 // Ensure that closing the anchor widget clears the bubble's reference to that 192 // Ensure that closing the anchor widget clears the bubble's reference to that
193 // anchor widget, but the bubble itself does not close. 193 // anchor widget, but the bubble itself does not close.
194 anchor_widget->CloseNow(); 194 anchor_widget->CloseNow();
195 EXPECT_NE(anchor_widget.get(), bubble_delegate->anchor_widget()); 195 EXPECT_NE(anchor_widget.get(), bubble_delegate->anchor_widget());
196 EXPECT_FALSE(bubble_observer.widget_closed()); 196 EXPECT_FALSE(bubble_observer.widget_closed());
197 197
198 // TODO(msw): Remove activation hack to prevent bookkeeping errors in: 198 // TODO(msw): Remove activation hack to prevent bookkeeping errors in:
199 // aura::test::TestActivationClient::OnWindowDestroyed(). 199 // aura::test::TestActivationClient::OnWindowDestroyed().
200 scoped_ptr<Widget> smoke_and_mirrors_widget(CreateTestWidget()); 200 std::unique_ptr<Widget> smoke_and_mirrors_widget(CreateTestWidget());
201 EXPECT_FALSE(bubble_observer.widget_closed()); 201 EXPECT_FALSE(bubble_observer.widget_closed());
202 202
203 // Ensure that closing the parent widget also closes the bubble itself. 203 // Ensure that closing the parent widget also closes the bubble itself.
204 parent_widget->CloseNow(); 204 parent_widget->CloseNow();
205 EXPECT_TRUE(bubble_observer.widget_closed()); 205 EXPECT_TRUE(bubble_observer.widget_closed());
206 } 206 }
207 207
208 TEST_F(BubbleDialogDelegateTest, InitiallyFocusedView) { 208 TEST_F(BubbleDialogDelegateTest, InitiallyFocusedView) {
209 scoped_ptr<Widget> anchor_widget(CreateTestWidget()); 209 std::unique_ptr<Widget> anchor_widget(CreateTestWidget());
210 BubbleDialogDelegateView* bubble_delegate = 210 BubbleDialogDelegateView* bubble_delegate =
211 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView()); 211 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
212 Widget* bubble_widget = 212 Widget* bubble_widget =
213 BubbleDialogDelegateView::CreateBubble(bubble_delegate); 213 BubbleDialogDelegateView::CreateBubble(bubble_delegate);
214 bubble_widget->Show(); 214 bubble_widget->Show();
215 EXPECT_EQ(bubble_delegate->GetInitiallyFocusedView(), 215 EXPECT_EQ(bubble_delegate->GetInitiallyFocusedView(),
216 bubble_widget->GetFocusManager()->GetFocusedView()); 216 bubble_widget->GetFocusManager()->GetFocusedView());
217 bubble_widget->CloseNow(); 217 bubble_widget->CloseNow();
218 } 218 }
219 219
220 TEST_F(BubbleDialogDelegateTest, NonClientHitTest) { 220 TEST_F(BubbleDialogDelegateTest, NonClientHitTest) {
221 scoped_ptr<Widget> anchor_widget(CreateTestWidget()); 221 std::unique_ptr<Widget> anchor_widget(CreateTestWidget());
222 TestBubbleDialogDelegateView* bubble_delegate = 222 TestBubbleDialogDelegateView* bubble_delegate =
223 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView()); 223 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
224 BubbleDialogDelegateView::CreateBubble(bubble_delegate); 224 BubbleDialogDelegateView::CreateBubble(bubble_delegate);
225 BubbleFrameView* frame = bubble_delegate->GetBubbleFrameView(); 225 BubbleFrameView* frame = bubble_delegate->GetBubbleFrameView();
226 const int border = frame->bubble_border()->GetBorderThickness(); 226 const int border = frame->bubble_border()->GetBorderThickness();
227 227
228 struct { 228 struct {
229 const int point; 229 const int point;
230 const int hit; 230 const int hit;
231 } cases[] = { 231 } cases[] = {
232 {border, HTNOWHERE}, {border + 50, HTCLIENT}, {1000, HTNOWHERE}, 232 {border, HTNOWHERE}, {border + 50, HTCLIENT}, {1000, HTNOWHERE},
233 }; 233 };
234 234
235 for (size_t i = 0; i < arraysize(cases); ++i) { 235 for (size_t i = 0; i < arraysize(cases); ++i) {
236 gfx::Point point(cases[i].point, cases[i].point); 236 gfx::Point point(cases[i].point, cases[i].point);
237 EXPECT_EQ(cases[i].hit, frame->NonClientHitTest(point)) 237 EXPECT_EQ(cases[i].hit, frame->NonClientHitTest(point))
238 << " with border: " << border << ", at point " << cases[i].point; 238 << " with border: " << border << ", at point " << cases[i].point;
239 } 239 }
240 } 240 }
241 241
242 TEST_F(BubbleDialogDelegateTest, VisibleWhenAnchorWidgetBoundsChanged) { 242 TEST_F(BubbleDialogDelegateTest, VisibleWhenAnchorWidgetBoundsChanged) {
243 scoped_ptr<Widget> anchor_widget(CreateTestWidget()); 243 std::unique_ptr<Widget> anchor_widget(CreateTestWidget());
244 BubbleDialogDelegateView* bubble_delegate = 244 BubbleDialogDelegateView* bubble_delegate =
245 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView()); 245 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
246 Widget* bubble_widget = 246 Widget* bubble_widget =
247 BubbleDialogDelegateView::CreateBubble(bubble_delegate); 247 BubbleDialogDelegateView::CreateBubble(bubble_delegate);
248 test::TestWidgetObserver bubble_observer(bubble_widget); 248 test::TestWidgetObserver bubble_observer(bubble_widget);
249 EXPECT_FALSE(bubble_observer.widget_closed()); 249 EXPECT_FALSE(bubble_observer.widget_closed());
250 250
251 anchor_widget->Show(); 251 anchor_widget->Show();
252 bubble_widget->Show(); 252 bubble_widget->Show();
253 EXPECT_TRUE(bubble_widget->IsVisible()); 253 EXPECT_TRUE(bubble_widget->IsVisible());
254 anchor_widget->SetBounds(gfx::Rect(10, 10, 100, 100)); 254 anchor_widget->SetBounds(gfx::Rect(10, 10, 100, 100));
255 EXPECT_TRUE(bubble_widget->IsVisible()); 255 EXPECT_TRUE(bubble_widget->IsVisible());
256 } 256 }
257 257
258 // Test that setting WidgetDelegate::set_can_activate() to false makes the 258 // Test that setting WidgetDelegate::set_can_activate() to false makes the
259 // widget created via BubbleDialogDelegateView::CreateBubble() not activatable. 259 // widget created via BubbleDialogDelegateView::CreateBubble() not activatable.
260 TEST_F(BubbleDialogDelegateTest, NotActivatable) { 260 TEST_F(BubbleDialogDelegateTest, NotActivatable) {
261 scoped_ptr<Widget> anchor_widget(CreateTestWidget()); 261 std::unique_ptr<Widget> anchor_widget(CreateTestWidget());
262 BubbleDialogDelegateView* bubble_delegate = 262 BubbleDialogDelegateView* bubble_delegate =
263 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView()); 263 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
264 bubble_delegate->set_can_activate(false); 264 bubble_delegate->set_can_activate(false);
265 Widget* bubble_widget = 265 Widget* bubble_widget =
266 BubbleDialogDelegateView::CreateBubble(bubble_delegate); 266 BubbleDialogDelegateView::CreateBubble(bubble_delegate);
267 bubble_widget->Show(); 267 bubble_widget->Show();
268 EXPECT_FALSE(bubble_widget->CanActivate()); 268 EXPECT_FALSE(bubble_widget->CanActivate());
269 } 269 }
270 270
271 TEST_F(BubbleDialogDelegateTest, CloseMethods) { 271 TEST_F(BubbleDialogDelegateTest, CloseMethods) {
272 { 272 {
273 scoped_ptr<Widget> anchor_widget(CreateTestWidget()); 273 std::unique_ptr<Widget> anchor_widget(CreateTestWidget());
274 BubbleDialogDelegateView* bubble_delegate = 274 BubbleDialogDelegateView* bubble_delegate =
275 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView()); 275 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
276 bubble_delegate->set_close_on_deactivate(true); 276 bubble_delegate->set_close_on_deactivate(true);
277 Widget* bubble_widget = 277 Widget* bubble_widget =
278 BubbleDialogDelegateView::CreateBubble(bubble_delegate); 278 BubbleDialogDelegateView::CreateBubble(bubble_delegate);
279 anchor_widget->Show(); 279 anchor_widget->Show();
280 bubble_widget->Show(); 280 bubble_widget->Show();
281 anchor_widget->Activate(); 281 anchor_widget->Activate();
282 EXPECT_TRUE(bubble_widget->IsClosed()); 282 EXPECT_TRUE(bubble_widget->IsClosed());
283 } 283 }
284 284
285 { 285 {
286 scoped_ptr<Widget> anchor_widget(CreateTestWidget()); 286 std::unique_ptr<Widget> anchor_widget(CreateTestWidget());
287 BubbleDialogDelegateView* bubble_delegate = 287 BubbleDialogDelegateView* bubble_delegate =
288 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView()); 288 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
289 Widget* bubble_widget = 289 Widget* bubble_widget =
290 BubbleDialogDelegateView::CreateBubble(bubble_delegate); 290 BubbleDialogDelegateView::CreateBubble(bubble_delegate);
291 bubble_widget->Show(); 291 bubble_widget->Show();
292 292
293 ui::KeyEvent escape_event(ui::ET_KEY_PRESSED, ui::VKEY_ESCAPE, ui::EF_NONE); 293 ui::KeyEvent escape_event(ui::ET_KEY_PRESSED, ui::VKEY_ESCAPE, ui::EF_NONE);
294 bubble_widget->OnKeyEvent(&escape_event); 294 bubble_widget->OnKeyEvent(&escape_event);
295 EXPECT_TRUE(bubble_widget->IsClosed()); 295 EXPECT_TRUE(bubble_widget->IsClosed());
296 } 296 }
297 297
298 { 298 {
299 scoped_ptr<Widget> anchor_widget(CreateTestWidget()); 299 std::unique_ptr<Widget> anchor_widget(CreateTestWidget());
300 TestBubbleDialogDelegateView* bubble_delegate = 300 TestBubbleDialogDelegateView* bubble_delegate =
301 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView()); 301 new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
302 Widget* bubble_widget = 302 Widget* bubble_widget =
303 BubbleDialogDelegateView::CreateBubble(bubble_delegate); 303 BubbleDialogDelegateView::CreateBubble(bubble_delegate);
304 bubble_widget->Show(); 304 bubble_widget->Show();
305 BubbleFrameView* frame_view = bubble_delegate->GetBubbleFrameView(); 305 BubbleFrameView* frame_view = bubble_delegate->GetBubbleFrameView();
306 LabelButton* close_button = frame_view->close_; 306 LabelButton* close_button = frame_view->close_;
307 ASSERT_TRUE(close_button); 307 ASSERT_TRUE(close_button);
308 frame_view->ButtonPressed( 308 frame_view->ButtonPressed(
309 close_button, 309 close_button,
310 ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), 310 ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
311 ui::EventTimeForNow(), ui::EF_NONE, ui::EF_NONE)); 311 ui::EventTimeForNow(), ui::EF_NONE, ui::EF_NONE));
312 EXPECT_TRUE(bubble_widget->IsClosed()); 312 EXPECT_TRUE(bubble_widget->IsClosed());
313 } 313 }
314 } 314 }
315 315
316 } // namespace views 316 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/bubble/bubble_dialog_delegate.cc ('k') | ui/views/bubble/bubble_frame_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698