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

Side by Side Diff: ui/views/controls/menu/menu_controller_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/controls/menu/menu_controller.cc ('k') | ui/views/controls/menu/menu_host.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/controls/menu/menu_controller.h" 5 #include "ui/views/controls/menu/menu_controller.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 169
170 private: 170 private:
171 int outstanding_touches_; 171 int outstanding_touches_;
172 DISALLOW_COPY_AND_ASSIGN(TestEventHandler); 172 DISALLOW_COPY_AND_ASSIGN(TestEventHandler);
173 }; 173 };
174 174
175 // A wrapper around MenuMessageLoop that can be used to track whether a message 175 // A wrapper around MenuMessageLoop that can be used to track whether a message
176 // loop is running or not. 176 // loop is running or not.
177 class TestMenuMessageLoop : public MenuMessageLoop { 177 class TestMenuMessageLoop : public MenuMessageLoop {
178 public: 178 public:
179 explicit TestMenuMessageLoop(scoped_ptr<MenuMessageLoop> original); 179 explicit TestMenuMessageLoop(std::unique_ptr<MenuMessageLoop> original);
180 ~TestMenuMessageLoop() override; 180 ~TestMenuMessageLoop() override;
181 181
182 bool is_running() const { return is_running_; } 182 bool is_running() const { return is_running_; }
183 183
184 private: 184 private:
185 // MenuMessageLoop: 185 // MenuMessageLoop:
186 void Run(MenuController* controller, 186 void Run(MenuController* controller,
187 Widget* owner, 187 Widget* owner,
188 bool nested_menu) override; 188 bool nested_menu) override;
189 void QuitNow() override; 189 void QuitNow() override;
190 void ClearOwner() override; 190 void ClearOwner() override;
191 191
192 scoped_ptr<MenuMessageLoop> original_; 192 std::unique_ptr<MenuMessageLoop> original_;
193 bool is_running_; 193 bool is_running_;
194 194
195 DISALLOW_COPY_AND_ASSIGN(TestMenuMessageLoop); 195 DISALLOW_COPY_AND_ASSIGN(TestMenuMessageLoop);
196 }; 196 };
197 197
198 TestMenuMessageLoop::TestMenuMessageLoop(scoped_ptr<MenuMessageLoop> original) 198 TestMenuMessageLoop::TestMenuMessageLoop(
199 std::unique_ptr<MenuMessageLoop> original)
199 : original_(std::move(original)) { 200 : original_(std::move(original)) {
200 DCHECK(original_); 201 DCHECK(original_);
201 } 202 }
202 203
203 TestMenuMessageLoop::~TestMenuMessageLoop() {} 204 TestMenuMessageLoop::~TestMenuMessageLoop() {}
204 205
205 void TestMenuMessageLoop::Run(MenuController* controller, 206 void TestMenuMessageLoop::Run(MenuController* controller,
206 Widget* owner, 207 Widget* owner,
207 bool nested_menu) { 208 bool nested_menu) {
208 is_running_ = true; 209 is_running_ = true;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 event_generator_->PressKey(key_code, 0); 263 event_generator_->PressKey(key_code, 0);
263 } 264 }
264 265
265 #if defined(OS_LINUX) && defined(USE_X11) 266 #if defined(OS_LINUX) && defined(USE_X11)
266 void TestEventTargeter() { 267 void TestEventTargeter() {
267 { 268 {
268 // With the |ui::NullEventTargeter| instantiated and assigned we expect 269 // With the |ui::NullEventTargeter| instantiated and assigned we expect
269 // the menu to not handle the key event. 270 // the menu to not handle the key event.
270 aura::ScopedWindowTargeter scoped_targeter( 271 aura::ScopedWindowTargeter scoped_targeter(
271 owner()->GetNativeWindow()->GetRootWindow(), 272 owner()->GetNativeWindow()->GetRootWindow(),
272 scoped_ptr<ui::EventTargeter>(new ui::NullEventTargeter)); 273 std::unique_ptr<ui::EventTargeter>(new ui::NullEventTargeter));
273 event_generator_->PressKey(ui::VKEY_ESCAPE, 0); 274 event_generator_->PressKey(ui::VKEY_ESCAPE, 0);
274 EXPECT_EQ(MenuController::EXIT_NONE, menu_exit_type()); 275 EXPECT_EQ(MenuController::EXIT_NONE, menu_exit_type());
275 } 276 }
276 // Now that the targeter has been destroyed, expect to exit the menu 277 // Now that the targeter has been destroyed, expect to exit the menu
277 // normally when hitting escape. 278 // normally when hitting escape.
278 event_generator_->PressKey(ui::VKEY_ESCAPE, 0); 279 event_generator_->PressKey(ui::VKEY_ESCAPE, 0);
279 EXPECT_EQ(MenuController::EXIT_OUTERMOST, menu_exit_type()); 280 EXPECT_EQ(MenuController::EXIT_OUTERMOST, menu_exit_type());
280 } 281 }
281 #endif // defined(OS_LINUX) && defined(USE_X11) 282 #endif // defined(OS_LINUX) && defined(USE_X11)
282 283
283 void TestAsynchronousNestedExitAll() { 284 void TestAsynchronousNestedExitAll() {
284 ASSERT_TRUE(test_message_loop_->is_running()); 285 ASSERT_TRUE(test_message_loop_->is_running());
285 286
286 scoped_ptr<TestMenuControllerDelegate> nested_delegate( 287 std::unique_ptr<TestMenuControllerDelegate> nested_delegate(
287 new TestMenuControllerDelegate()); 288 new TestMenuControllerDelegate());
288 289
289 menu_controller()->AddNestedDelegate(nested_delegate.get()); 290 menu_controller()->AddNestedDelegate(nested_delegate.get());
290 menu_controller()->SetAsyncRun(true); 291 menu_controller()->SetAsyncRun(true);
291 292
292 int mouse_event_flags = 0; 293 int mouse_event_flags = 0;
293 MenuItemView* run_result = menu_controller()->Run( 294 MenuItemView* run_result = menu_controller()->Run(
294 owner(), nullptr, menu_item(), gfx::Rect(), MENU_ANCHOR_TOPLEFT, false, 295 owner(), nullptr, menu_item(), gfx::Rect(), MENU_ANCHOR_TOPLEFT, false,
295 false, &mouse_event_flags); 296 false, &mouse_event_flags);
296 EXPECT_EQ(run_result, nullptr); 297 EXPECT_EQ(run_result, nullptr);
297 298
298 // Exit all menus and check that the parent menu's message loop is 299 // Exit all menus and check that the parent menu's message loop is
299 // terminated. 300 // terminated.
300 menu_controller()->Cancel(MenuController::EXIT_ALL); 301 menu_controller()->Cancel(MenuController::EXIT_ALL);
301 EXPECT_EQ(MenuController::EXIT_ALL, menu_controller()->exit_type()); 302 EXPECT_EQ(MenuController::EXIT_ALL, menu_controller()->exit_type());
302 EXPECT_FALSE(test_message_loop_->is_running()); 303 EXPECT_FALSE(test_message_loop_->is_running());
303 } 304 }
304 305
305 void TestAsynchronousNestedExitOutermost() { 306 void TestAsynchronousNestedExitOutermost() {
306 ASSERT_TRUE(test_message_loop_->is_running()); 307 ASSERT_TRUE(test_message_loop_->is_running());
307 308
308 scoped_ptr<TestMenuControllerDelegate> nested_delegate( 309 std::unique_ptr<TestMenuControllerDelegate> nested_delegate(
309 new TestMenuControllerDelegate()); 310 new TestMenuControllerDelegate());
310 311
311 menu_controller()->AddNestedDelegate(nested_delegate.get()); 312 menu_controller()->AddNestedDelegate(nested_delegate.get());
312 menu_controller()->SetAsyncRun(true); 313 menu_controller()->SetAsyncRun(true);
313 314
314 int mouse_event_flags = 0; 315 int mouse_event_flags = 0;
315 MenuItemView* run_result = menu_controller()->Run( 316 MenuItemView* run_result = menu_controller()->Run(
316 owner(), nullptr, menu_item(), gfx::Rect(), MENU_ANCHOR_TOPLEFT, false, 317 owner(), nullptr, menu_item(), gfx::Rect(), MENU_ANCHOR_TOPLEFT, false,
317 false, &mouse_event_flags); 318 false, &mouse_event_flags);
318 EXPECT_EQ(run_result, nullptr); 319 EXPECT_EQ(run_result, nullptr);
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 } 410 }
410 411
411 // Note that coordinates of events passed to MenuController must be in that of 412 // Note that coordinates of events passed to MenuController must be in that of
412 // the MenuScrollViewContainer. 413 // the MenuScrollViewContainer.
413 void ProcessMouseMoved(SubmenuView* source, const ui::MouseEvent& event) { 414 void ProcessMouseMoved(SubmenuView* source, const ui::MouseEvent& event) {
414 menu_controller_->OnMouseMoved(source, event); 415 menu_controller_->OnMouseMoved(source, event);
415 } 416 }
416 417
417 void RunMenu() { 418 void RunMenu() {
418 #if defined(USE_AURA) 419 #if defined(USE_AURA)
419 scoped_ptr<MenuKeyEventHandler> key_event_handler(new MenuKeyEventHandler); 420 std::unique_ptr<MenuKeyEventHandler> key_event_handler(
421 new MenuKeyEventHandler);
420 #endif 422 #endif
421 423
422 menu_controller_->message_loop_depth_++; 424 menu_controller_->message_loop_depth_++;
423 menu_controller_->RunMessageLoop(false); 425 menu_controller_->RunMessageLoop(false);
424 menu_controller_->message_loop_depth_--; 426 menu_controller_->message_loop_depth_--;
425 } 427 }
426 428
427 void Accept(MenuItemView* item, int event_flags) { 429 void Accept(MenuItemView* item, int event_flags) {
428 menu_controller_->Accept(item, event_flags); 430 menu_controller_->Accept(item, event_flags);
429 } 431 }
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 menu_controller_delegate_.reset(new TestMenuControllerDelegate); 516 menu_controller_delegate_.reset(new TestMenuControllerDelegate);
515 menu_controller_ = 517 menu_controller_ =
516 new MenuController(true, menu_controller_delegate_.get()); 518 new MenuController(true, menu_controller_delegate_.get());
517 menu_controller_->owner_ = owner_.get(); 519 menu_controller_->owner_ = owner_.get();
518 menu_controller_->showing_ = true; 520 menu_controller_->showing_ = true;
519 menu_controller_->SetSelection( 521 menu_controller_->SetSelection(
520 menu_item_.get(), MenuController::SELECTION_UPDATE_IMMEDIATELY); 522 menu_item_.get(), MenuController::SELECTION_UPDATE_IMMEDIATELY);
521 menu_item_->SetController(menu_controller_); 523 menu_item_->SetController(menu_controller_);
522 } 524 }
523 525
524 scoped_ptr<Widget> owner_; 526 std::unique_ptr<Widget> owner_;
525 scoped_ptr<ui::test::EventGenerator> event_generator_; 527 std::unique_ptr<ui::test::EventGenerator> event_generator_;
526 scoped_ptr<TestMenuItemViewShown> menu_item_; 528 std::unique_ptr<TestMenuItemViewShown> menu_item_;
527 scoped_ptr<TestMenuControllerDelegate> menu_controller_delegate_; 529 std::unique_ptr<TestMenuControllerDelegate> menu_controller_delegate_;
528 scoped_ptr<MenuDelegate> menu_delegate_; 530 std::unique_ptr<MenuDelegate> menu_delegate_;
529 MenuController* menu_controller_; 531 MenuController* menu_controller_;
530 TestMenuMessageLoop* test_message_loop_; 532 TestMenuMessageLoop* test_message_loop_;
531 533
532 DISALLOW_COPY_AND_ASSIGN(MenuControllerTest); 534 DISALLOW_COPY_AND_ASSIGN(MenuControllerTest);
533 }; 535 };
534 536
535 #if defined(OS_LINUX) && defined(USE_X11) 537 #if defined(OS_LINUX) && defined(USE_X11)
536 // Tests that an event targeter which blocks events will be honored by the menu 538 // Tests that an event targeter which blocks events will be honored by the menu
537 // event dispatcher. 539 // event dispatcher.
538 TEST_F(MenuControllerTest, EventTargeter) { 540 TEST_F(MenuControllerTest, EventTargeter) {
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after
951 EXPECT_EQ(internal::MenuControllerDelegate::NOTIFY_DELEGATE, 953 EXPECT_EQ(internal::MenuControllerDelegate::NOTIFY_DELEGATE,
952 delegate->on_menu_closed_notify_type()); 954 delegate->on_menu_closed_notify_type());
953 EXPECT_EQ(MenuController::EXIT_ALL, controller->exit_type()); 955 EXPECT_EQ(MenuController::EXIT_ALL, controller->exit_type());
954 } 956 }
955 957
956 // Tests that an asynchrnous menu nested within a synchronous menu restores the 958 // Tests that an asynchrnous menu nested within a synchronous menu restores the
957 // previous MenuControllerDelegate and synchronous settings. 959 // previous MenuControllerDelegate and synchronous settings.
958 TEST_F(MenuControllerTest, AsynchronousNestedDelegate) { 960 TEST_F(MenuControllerTest, AsynchronousNestedDelegate) {
959 MenuController* controller = menu_controller(); 961 MenuController* controller = menu_controller();
960 TestMenuControllerDelegate* delegate = menu_controller_delegate(); 962 TestMenuControllerDelegate* delegate = menu_controller_delegate();
961 scoped_ptr<TestMenuControllerDelegate> nested_delegate( 963 std::unique_ptr<TestMenuControllerDelegate> nested_delegate(
962 new TestMenuControllerDelegate()); 964 new TestMenuControllerDelegate());
963 965
964 ASSERT_FALSE(IsAsyncRun()); 966 ASSERT_FALSE(IsAsyncRun());
965 controller->AddNestedDelegate(nested_delegate.get()); 967 controller->AddNestedDelegate(nested_delegate.get());
966 controller->SetAsyncRun(true); 968 controller->SetAsyncRun(true);
967 969
968 EXPECT_TRUE(IsAsyncRun()); 970 EXPECT_TRUE(IsAsyncRun());
969 EXPECT_EQ(nested_delegate.get(), GetCurrentDelegate()); 971 EXPECT_EQ(nested_delegate.get(), GetCurrentDelegate());
970 972
971 int mouse_event_flags = 0; 973 int mouse_event_flags = 0;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 EXPECT_EQ(internal::MenuControllerDelegate::NOTIFY_DELEGATE, 1029 EXPECT_EQ(internal::MenuControllerDelegate::NOTIFY_DELEGATE,
1028 controller_delegate->on_menu_closed_notify_type()); 1030 controller_delegate->on_menu_closed_notify_type());
1029 EXPECT_EQ(MenuController::EXIT_ALL, controller->exit_type()); 1031 EXPECT_EQ(MenuController::EXIT_ALL, controller->exit_type());
1030 } 1032 }
1031 1033
1032 // Tets that an asynchronous menu nested within an asynchronous menu closes both 1034 // Tets that an asynchronous menu nested within an asynchronous menu closes both
1033 // menus, and notifies both delegates. 1035 // menus, and notifies both delegates.
1034 TEST_F(MenuControllerTest, DoubleAsynchronousNested) { 1036 TEST_F(MenuControllerTest, DoubleAsynchronousNested) {
1035 MenuController* controller = menu_controller(); 1037 MenuController* controller = menu_controller();
1036 TestMenuControllerDelegate* delegate = menu_controller_delegate(); 1038 TestMenuControllerDelegate* delegate = menu_controller_delegate();
1037 scoped_ptr<TestMenuControllerDelegate> nested_delegate( 1039 std::unique_ptr<TestMenuControllerDelegate> nested_delegate(
1038 new TestMenuControllerDelegate()); 1040 new TestMenuControllerDelegate());
1039 1041
1040 ASSERT_FALSE(IsAsyncRun()); 1042 ASSERT_FALSE(IsAsyncRun());
1041 // Sets the run created in SetUp 1043 // Sets the run created in SetUp
1042 controller->SetAsyncRun(true); 1044 controller->SetAsyncRun(true);
1043 1045
1044 // Nested run 1046 // Nested run
1045 controller->AddNestedDelegate(nested_delegate.get()); 1047 controller->AddNestedDelegate(nested_delegate.get());
1046 controller->SetAsyncRun(true); 1048 controller->SetAsyncRun(true);
1047 int mouse_event_flags = 0; 1049 int mouse_event_flags = 0;
1048 MenuItemView* run_result = 1050 MenuItemView* run_result =
1049 controller->Run(owner(), nullptr, menu_item(), gfx::Rect(), 1051 controller->Run(owner(), nullptr, menu_item(), gfx::Rect(),
1050 MENU_ANCHOR_TOPLEFT, false, false, &mouse_event_flags); 1052 MENU_ANCHOR_TOPLEFT, false, false, &mouse_event_flags);
1051 EXPECT_EQ(run_result, nullptr); 1053 EXPECT_EQ(run_result, nullptr);
1052 1054
1053 controller->CancelAll(); 1055 controller->CancelAll();
1054 EXPECT_EQ(1, delegate->on_menu_closed_called()); 1056 EXPECT_EQ(1, delegate->on_menu_closed_called());
1055 EXPECT_EQ(1, nested_delegate->on_menu_closed_called()); 1057 EXPECT_EQ(1, nested_delegate->on_menu_closed_called());
1056 } 1058 }
1057 1059
1058 // Tests that an asynchronous menu nested within a synchronous menu does not 1060 // Tests that an asynchronous menu nested within a synchronous menu does not
1059 // crash when trying to repost events that occur outside of the bounds of the 1061 // crash when trying to repost events that occur outside of the bounds of the
1060 // menu. Instead a proper shutdown should occur. 1062 // menu. Instead a proper shutdown should occur.
1061 TEST_F(MenuControllerTest, AsynchronousRepostEvent) { 1063 TEST_F(MenuControllerTest, AsynchronousRepostEvent) {
1062 MenuController* controller = menu_controller(); 1064 MenuController* controller = menu_controller();
1063 TestMenuControllerDelegate* delegate = menu_controller_delegate(); 1065 TestMenuControllerDelegate* delegate = menu_controller_delegate();
1064 scoped_ptr<TestMenuControllerDelegate> nested_delegate( 1066 std::unique_ptr<TestMenuControllerDelegate> nested_delegate(
1065 new TestMenuControllerDelegate()); 1067 new TestMenuControllerDelegate());
1066 1068
1067 ASSERT_FALSE(IsAsyncRun()); 1069 ASSERT_FALSE(IsAsyncRun());
1068 1070
1069 controller->AddNestedDelegate(nested_delegate.get()); 1071 controller->AddNestedDelegate(nested_delegate.get());
1070 controller->SetAsyncRun(true); 1072 controller->SetAsyncRun(true);
1071 1073
1072 EXPECT_TRUE(IsAsyncRun()); 1074 EXPECT_TRUE(IsAsyncRun());
1073 EXPECT_EQ(nested_delegate.get(), GetCurrentDelegate()); 1075 EXPECT_EQ(nested_delegate.get(), GetCurrentDelegate());
1074 1076
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
1153 base::Bind(&MenuControllerTest::TestAsynchronousNestedExitOutermost, 1155 base::Bind(&MenuControllerTest::TestAsynchronousNestedExitOutermost,
1154 base::Unretained(this))); 1156 base::Unretained(this)));
1155 1157
1156 RunMenu(); 1158 RunMenu();
1157 } 1159 }
1158 1160
1159 // Tests that having the MenuController deleted during RepostEvent does not 1161 // Tests that having the MenuController deleted during RepostEvent does not
1160 // cause a crash. ASAN bots should not detect use-after-free in MenuController. 1162 // cause a crash. ASAN bots should not detect use-after-free in MenuController.
1161 TEST_F(MenuControllerTest, AsynchronousRepostEventDeletesController) { 1163 TEST_F(MenuControllerTest, AsynchronousRepostEventDeletesController) {
1162 MenuController* controller = menu_controller(); 1164 MenuController* controller = menu_controller();
1163 scoped_ptr<TestMenuControllerDelegate> nested_delegate( 1165 std::unique_ptr<TestMenuControllerDelegate> nested_delegate(
1164 new TestMenuControllerDelegate()); 1166 new TestMenuControllerDelegate());
1165 1167
1166 ASSERT_FALSE(IsAsyncRun()); 1168 ASSERT_FALSE(IsAsyncRun());
1167 1169
1168 controller->AddNestedDelegate(nested_delegate.get()); 1170 controller->AddNestedDelegate(nested_delegate.get());
1169 controller->SetAsyncRun(true); 1171 controller->SetAsyncRun(true);
1170 1172
1171 EXPECT_TRUE(IsAsyncRun()); 1173 EXPECT_TRUE(IsAsyncRun());
1172 EXPECT_EQ(nested_delegate.get(), GetCurrentDelegate()); 1174 EXPECT_EQ(nested_delegate.get(), GetCurrentDelegate());
1173 1175
(...skipping 22 matching lines...) Expand all
1196 1198
1197 // Close to remove observers before test TearDown 1199 // Close to remove observers before test TearDown
1198 sub_menu->Close(); 1200 sub_menu->Close();
1199 EXPECT_EQ(1, nested_delegate->on_menu_closed_called()); 1201 EXPECT_EQ(1, nested_delegate->on_menu_closed_called());
1200 } 1202 }
1201 1203
1202 // Tests that having the MenuController deleted during OnGestureEvent does not 1204 // Tests that having the MenuController deleted during OnGestureEvent does not
1203 // cause a crash. ASAN bots should not detect use-after-free in MenuController. 1205 // cause a crash. ASAN bots should not detect use-after-free in MenuController.
1204 TEST_F(MenuControllerTest, AsynchronousGestureDeletesController) { 1206 TEST_F(MenuControllerTest, AsynchronousGestureDeletesController) {
1205 MenuController* controller = menu_controller(); 1207 MenuController* controller = menu_controller();
1206 scoped_ptr<TestMenuControllerDelegate> nested_delegate( 1208 std::unique_ptr<TestMenuControllerDelegate> nested_delegate(
1207 new TestMenuControllerDelegate()); 1209 new TestMenuControllerDelegate());
1208 ASSERT_FALSE(IsAsyncRun()); 1210 ASSERT_FALSE(IsAsyncRun());
1209 1211
1210 controller->AddNestedDelegate(nested_delegate.get()); 1212 controller->AddNestedDelegate(nested_delegate.get());
1211 controller->SetAsyncRun(true); 1213 controller->SetAsyncRun(true);
1212 1214
1213 EXPECT_TRUE(IsAsyncRun()); 1215 EXPECT_TRUE(IsAsyncRun());
1214 EXPECT_EQ(nested_delegate.get(), GetCurrentDelegate()); 1216 EXPECT_EQ(nested_delegate.get(), GetCurrentDelegate());
1215 1217
1216 MenuItemView* item = menu_item(); 1218 MenuItemView* item = menu_item();
(...skipping 16 matching lines...) Expand all
1233 DestroyMenuControllerOnMenuClosed(nested_delegate.get()); 1235 DestroyMenuControllerOnMenuClosed(nested_delegate.get());
1234 controller->OnGestureEvent(sub_menu, &event); 1236 controller->OnGestureEvent(sub_menu, &event);
1235 1237
1236 // Close to remove observers before test TearDown 1238 // Close to remove observers before test TearDown
1237 sub_menu->Close(); 1239 sub_menu->Close();
1238 EXPECT_EQ(1, nested_delegate->on_menu_closed_called()); 1240 EXPECT_EQ(1, nested_delegate->on_menu_closed_called());
1239 } 1241 }
1240 1242
1241 } // namespace test 1243 } // namespace test
1242 } // namespace views 1244 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/controls/menu/menu_controller.cc ('k') | ui/views/controls/menu/menu_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698