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

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

Powered by Google App Engine
This is Rietveld 408576698