| OLD | NEW | 
|---|
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "base/keyboard_codes.h" | 5 #include "base/keyboard_codes.h" | 
| 6 #include "base/string_util.h" | 6 #include "base/string_util.h" | 
| 7 #include "chrome/browser/automation/ui_controls.h" | 7 #include "chrome/browser/automation/ui_controls.h" | 
| 8 #include "chrome/browser/bookmarks/bookmark_model.h" | 8 #include "chrome/browser/bookmarks/bookmark_model.h" | 
| 9 #include "chrome/browser/bookmarks/bookmark_utils.h" | 9 #include "chrome/browser/bookmarks/bookmark_utils.h" | 
| 10 #include "chrome/browser/pref_service.h" | 10 #include "chrome/browser/pref_service.h" | 
| 11 #include "chrome/browser/profile.h" | 11 #include "chrome/browser/profile.h" | 
| 12 #include "chrome/browser/tab_contents/page_navigator.h" | 12 #include "chrome/browser/tab_contents/page_navigator.h" | 
| 13 #include "chrome/browser/views/bookmark_bar_view.h" | 13 #include "chrome/browser/views/bookmark_bar_view.h" | 
|  | 14 #include "chrome/common/notification_service.h" | 
| 14 #include "chrome/common/pref_names.h" | 15 #include "chrome/common/pref_names.h" | 
| 15 #include "chrome/test/testing_profile.h" | 16 #include "chrome/test/testing_profile.h" | 
| 16 #include "chrome/test/interactive_ui/view_event_test_base.h" | 17 #include "chrome/test/interactive_ui/view_event_test_base.h" | 
|  | 18 #include "chrome/test/ui_test_utils.h" | 
| 17 #include "grit/generated_resources.h" | 19 #include "grit/generated_resources.h" | 
| 18 #include "views/controls/button/menu_button.h" | 20 #include "views/controls/button/menu_button.h" | 
| 19 #include "views/controls/button/text_button.h" | 21 #include "views/controls/button/text_button.h" | 
| 20 #include "views/controls/menu/menu_controller.h" | 22 #include "views/controls/menu/menu_controller.h" | 
| 21 #include "views/controls/menu/menu_item_view.h" | 23 #include "views/controls/menu/menu_item_view.h" | 
| 22 #include "views/controls/menu/submenu_view.h" | 24 #include "views/controls/menu/submenu_view.h" | 
| 23 #include "views/window/window.h" | 25 #include "views/window/window.h" | 
| 24 | 26 | 
|  | 27 #if defined(OS_LINUX) | 
|  | 28 // See http://crbug.com/40040 for details. | 
|  | 29 #define MAYBE_DND DISABLED_DND | 
|  | 30 #define MAYBE_DNDToDifferentMenu DISABLED_DNDToDifferentMenu | 
|  | 31 #define MAYBE_DNDBackToOriginatingMenu DISABLED_DNDBackToOriginatingMenu | 
|  | 32 | 
|  | 33 // See http://crbug.com/40039 for details. | 
|  | 34 #define MAYBE_KeyEvents DISABLED_KeyEvents | 
|  | 35 | 
|  | 36 #else | 
|  | 37 | 
|  | 38 #define MAYBE_DND DND | 
|  | 39 #define MAYBE_DNDToDifferentMenu DNDToDifferentMenu | 
|  | 40 #define MAYBE_DNDBackToOriginatingMenu DNDBackToOriginatingMenu | 
|  | 41 #define MAYBE_DNDBackToOriginatingMenu DNDBackToOriginatingMenu | 
|  | 42 #define MAYBE_KeyEvents KeyEvents | 
|  | 43 | 
|  | 44 #endif | 
|  | 45 | 
| 25 namespace { | 46 namespace { | 
| 26 | 47 | 
| 27 // PageNavigator implementation that records the URL. | 48 // PageNavigator implementation that records the URL. | 
| 28 class TestingPageNavigator : public PageNavigator { | 49 class TestingPageNavigator : public PageNavigator { | 
| 29  public: | 50  public: | 
| 30   virtual void OpenURL(const GURL& url, const GURL& referrer, | 51   virtual void OpenURL(const GURL& url, const GURL& referrer, | 
| 31                        WindowOpenDisposition disposition, | 52                        WindowOpenDisposition disposition, | 
| 32                        PageTransition::Type transition) { | 53                        PageTransition::Type transition) { | 
| 33     url_ = url; | 54     url_ = url; | 
| 34   } | 55   } | 
| (...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 338         menu->GetSubmenu()->GetMenuItemAt(1); | 359         menu->GetSubmenu()->GetMenuItemAt(1); | 
| 339     ASSERT_TRUE(child_menu->GetSubmenu() != NULL); | 360     ASSERT_TRUE(child_menu->GetSubmenu() != NULL); | 
| 340     ASSERT_FALSE(child_menu->GetSubmenu()->IsShowing()); | 361     ASSERT_FALSE(child_menu->GetSubmenu()->IsShowing()); | 
| 341 | 362 | 
| 342     // And submenu we last clicked is showing. | 363     // And submenu we last clicked is showing. | 
| 343     child_menu = menu->GetSubmenu()->GetMenuItemAt(2); | 364     child_menu = menu->GetSubmenu()->GetMenuItemAt(2); | 
| 344     ASSERT_TRUE(child_menu != NULL); | 365     ASSERT_TRUE(child_menu != NULL); | 
| 345     ASSERT_TRUE(child_menu->GetSubmenu()->IsShowing()); | 366     ASSERT_TRUE(child_menu->GetSubmenu()->IsShowing()); | 
| 346 | 367 | 
| 347     // Nothing should have been selected. | 368     // Nothing should have been selected. | 
| 348     ASSERT_TRUE(navigator_.url_ == GURL()); | 369     EXPECT_EQ(GURL(), navigator_.url_); | 
| 349 | 370 | 
| 350     // Hide menu. | 371     // Hide menu. | 
| 351     menu->GetMenuController()->Cancel(true); | 372     menu->GetMenuController()->Cancel(true); | 
| 352 | 373 | 
| 353     Done(); | 374     Done(); | 
| 354   } | 375   } | 
| 355 }; | 376 }; | 
| 356 | 377 | 
| 357 VIEW_TEST(BookmarkBarViewTest3, Submenus) | 378 VIEW_TEST(BookmarkBarViewTest3, Submenus) | 
| 358 | 379 | 
|  | 380 // Observer that posts task upon the context menu creation. | 
|  | 381 // This is necessary for Linux as the context menu has to check | 
|  | 382 // the clipboard, which invokes the event loop. | 
|  | 383 class ContextMenuNotificationObserver : public NotificationObserver { | 
|  | 384  public: | 
|  | 385   explicit ContextMenuNotificationObserver(Task* task) : task_(task) { | 
|  | 386     registrar_.Add(this, | 
|  | 387                    NotificationType::BOOKMARK_CONTEXT_MENU_SHOWN, | 
|  | 388                    NotificationService::AllSources()); | 
|  | 389   } | 
|  | 390 | 
|  | 391   virtual void Observe(NotificationType type, | 
|  | 392                        const NotificationSource& source, | 
|  | 393                        const NotificationDetails& details) { | 
|  | 394     MessageLoop::current()->PostTask(FROM_HERE, task_); | 
|  | 395   } | 
|  | 396 | 
|  | 397  private: | 
|  | 398   NotificationRegistrar registrar_; | 
|  | 399   Task* task_; | 
|  | 400 | 
|  | 401   DISALLOW_COPY_AND_ASSIGN(ContextMenuNotificationObserver); | 
|  | 402 }; | 
|  | 403 | 
| 359 // Tests context menus by way of opening a context menu for a bookmark, | 404 // Tests context menus by way of opening a context menu for a bookmark, | 
| 360 // then right clicking to get context menu and selecting the first menu item | 405 // then right clicking to get context menu and selecting the first menu item | 
| 361 // (open). | 406 // (open). | 
| 362 class BookmarkBarViewTest4 : public BookmarkBarViewEventTestBase { | 407 class BookmarkBarViewTest4 : public BookmarkBarViewEventTestBase { | 
|  | 408  public: | 
|  | 409   BookmarkBarViewTest4() | 
|  | 410       : ALLOW_THIS_IN_INITIALIZER_LIST( | 
|  | 411           observer_(CreateEventTask(this, &BookmarkBarViewTest4::Step3))) { | 
|  | 412   } | 
|  | 413 | 
| 363  protected: | 414  protected: | 
| 364   virtual void DoTestOnMessageLoop() { | 415   virtual void DoTestOnMessageLoop() { | 
| 365     // Move the mouse to the first folder on the bookmark bar and press the | 416     // Move the mouse to the first folder on the bookmark bar and press the | 
| 366     // mouse. | 417     // mouse. | 
| 367     views::TextButton* button = bb_view_->other_bookmarked_button(); | 418     views::TextButton* button = bb_view_->other_bookmarked_button(); | 
| 368     ui_controls::MoveMouseToCenterAndPress(button, ui_controls::LEFT, | 419     ui_controls::MoveMouseToCenterAndPress(button, ui_controls::LEFT, | 
| 369         ui_controls::DOWN | ui_controls::UP, | 420         ui_controls::DOWN | ui_controls::UP, | 
| 370         CreateEventTask(this, &BookmarkBarViewTest4::Step2)); | 421         CreateEventTask(this, &BookmarkBarViewTest4::Step2)); | 
| 371   } | 422   } | 
| 372 | 423 | 
| 373  private: | 424  private: | 
| 374   void Step2() { | 425   void Step2() { | 
| 375     // Menu should be showing. | 426     // Menu should be showing. | 
| 376     views::MenuItemView* menu = bb_view_->GetMenu(); | 427     views::MenuItemView* menu = bb_view_->GetMenu(); | 
| 377     ASSERT_TRUE(menu != NULL); | 428     ASSERT_TRUE(menu != NULL); | 
| 378     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 429     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 
| 379 | 430 | 
| 380     views::MenuItemView* child_menu = | 431     views::MenuItemView* child_menu = | 
| 381         menu->GetSubmenu()->GetMenuItemAt(0); | 432         menu->GetSubmenu()->GetMenuItemAt(0); | 
| 382     ASSERT_TRUE(child_menu != NULL); | 433     ASSERT_TRUE(child_menu != NULL); | 
| 383 | 434 | 
| 384     // Right click on the first child to get its context menu. | 435     // Right click on the first child to get its context menu. | 
| 385     ui_controls::MoveMouseToCenterAndPress(child_menu, ui_controls::RIGHT, | 436     ui_controls::MoveMouseToCenterAndPress(child_menu, ui_controls::RIGHT, | 
| 386         ui_controls::DOWN | ui_controls::UP, | 437         ui_controls::DOWN | ui_controls::UP, NULL); | 
| 387         CreateEventTask(this, &BookmarkBarViewTest4::Step3)); | 438     // Step3 will be invoked by ContextMenuNotificationObserver. | 
| 388   } | 439   } | 
| 389 | 440 | 
| 390   void Step3() { | 441   void Step3() { | 
| 391     // Make sure the context menu is showing. | 442     // Make sure the context menu is showing. | 
| 392     views::MenuItemView* menu = bb_view_->GetContextMenu(); | 443     views::MenuItemView* menu = bb_view_->GetContextMenu(); | 
| 393     ASSERT_TRUE(menu != NULL); | 444     ASSERT_TRUE(menu != NULL); | 
| 394     ASSERT_TRUE(menu->GetSubmenu()); | 445     ASSERT_TRUE(menu->GetSubmenu()); | 
| 395     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 446     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 
| 396 | 447 | 
| 397     // Select the first menu item (open). | 448     // Select the first menu item (open). | 
| 398     ui_controls::MoveMouseToCenterAndPress(menu->GetSubmenu()->GetMenuItemAt(0), | 449     ui_controls::MoveMouseToCenterAndPress(menu->GetSubmenu()->GetMenuItemAt(0), | 
| 399         ui_controls::LEFT, ui_controls::DOWN | ui_controls::UP, | 450         ui_controls::LEFT, ui_controls::DOWN | ui_controls::UP, | 
| 400         CreateEventTask(this, &BookmarkBarViewTest4::Step4)); | 451         CreateEventTask(this, &BookmarkBarViewTest4::Step4)); | 
| 401   } | 452   } | 
| 402 | 453 | 
| 403   void Step4() { | 454   void Step4() { | 
| 404     ASSERT_TRUE(navigator_.url_ == | 455     EXPECT_EQ(navigator_.url_, | 
| 405                 model_->other_node()->GetChild(0)->GetURL()); | 456               model_->other_node()->GetChild(0)->GetURL()); | 
| 406 | 457 | 
| 407     Done(); | 458     Done(); | 
| 408   } | 459   } | 
|  | 460 | 
|  | 461   ContextMenuNotificationObserver observer_; | 
| 409 }; | 462 }; | 
| 410 | 463 | 
| 411 VIEW_TEST(BookmarkBarViewTest4, ContextMenus) | 464 VIEW_TEST(BookmarkBarViewTest4, ContextMenus) | 
| 412 | 465 | 
| 413 // Tests drag and drop within the same menu. | 466 // Tests drag and drop within the same menu. | 
| 414 class BookmarkBarViewTest5 : public BookmarkBarViewEventTestBase { | 467 class BookmarkBarViewTest5 : public BookmarkBarViewEventTestBase { | 
| 415  protected: | 468  protected: | 
| 416   virtual void DoTestOnMessageLoop() { | 469   virtual void DoTestOnMessageLoop() { | 
| 417     url_dragging_ = | 470     url_dragging_ = | 
| 418         model_->GetBookmarkBarNode()->GetChild(0)->GetChild(0)->GetURL(); | 471         model_->GetBookmarkBarNode()->GetChild(0)->GetChild(0)->GetURL(); | 
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 451     // Start a drag. | 504     // Start a drag. | 
| 452     ui_controls::SendMouseMoveNotifyWhenDone(loc.x() + 10, loc.y(), | 505     ui_controls::SendMouseMoveNotifyWhenDone(loc.x() + 10, loc.y(), | 
| 453         CreateEventTask(this, &BookmarkBarViewTest5::Step4)); | 506         CreateEventTask(this, &BookmarkBarViewTest5::Step4)); | 
| 454 | 507 | 
| 455     // See comment above this method as to why we do this. | 508     // See comment above this method as to why we do this. | 
| 456     ScheduleMouseMoveInBackground(loc.x(), loc.y()); | 509     ScheduleMouseMoveInBackground(loc.x(), loc.y()); | 
| 457   } | 510   } | 
| 458 | 511 | 
| 459   void Step4() { | 512   void Step4() { | 
| 460     // Drop the item so that it's now the second item. | 513     // Drop the item so that it's now the second item. | 
| 461    views::MenuItemView* target_menu = | 514     views::MenuItemView* target_menu = | 
| 462         bb_view_->GetMenu()->GetSubmenu()->GetMenuItemAt(1); | 515         bb_view_->GetMenu()->GetSubmenu()->GetMenuItemAt(1); | 
| 463    gfx::Point loc(1, target_menu->height() - 1); | 516     gfx::Point loc(1, target_menu->height() - 1); | 
| 464     views::View::ConvertPointToScreen(target_menu, &loc); | 517     views::View::ConvertPointToScreen(target_menu, &loc); | 
| 465     ui_controls::SendMouseMove(loc.x(), loc.y()); | 518     ui_controls::SendMouseMove(loc.x(), loc.y()); | 
| 466 | 519 | 
| 467     ui_controls::SendMouseEventsNotifyWhenDone(ui_controls::LEFT, | 520     ui_controls::SendMouseEventsNotifyWhenDone(ui_controls::LEFT, | 
| 468         ui_controls::UP, | 521         ui_controls::UP, | 
| 469         CreateEventTask(this, &BookmarkBarViewTest5::Step5)); | 522         CreateEventTask(this, &BookmarkBarViewTest5::Step5)); | 
| 470   } | 523   } | 
| 471 | 524 | 
| 472   void Step5() { | 525   void Step5() { | 
| 473     GURL url = model_->GetBookmarkBarNode()->GetChild(0)->GetChild(1)->GetURL(); | 526     GURL url = model_->GetBookmarkBarNode()->GetChild(0)->GetChild(1)->GetURL(); | 
| 474     ASSERT_TRUE(url == url_dragging_); | 527     EXPECT_EQ(url_dragging_, url); | 
| 475     Done(); | 528     Done(); | 
| 476   } | 529   } | 
| 477 | 530 | 
| 478   GURL url_dragging_; | 531   GURL url_dragging_; | 
| 479 }; | 532 }; | 
| 480 | 533 | 
| 481 VIEW_TEST(BookmarkBarViewTest5, DND) | 534 VIEW_TEST(BookmarkBarViewTest5, MAYBE_DND) | 
| 482 | 535 | 
| 483 // Tests holding mouse down on overflow button, dragging such that menu pops up | 536 // Tests holding mouse down on overflow button, dragging such that menu pops up | 
| 484 // then selecting an item. | 537 // then selecting an item. | 
| 485 class BookmarkBarViewTest6 : public BookmarkBarViewEventTestBase { | 538 class BookmarkBarViewTest6 : public BookmarkBarViewEventTestBase { | 
| 486  protected: | 539  protected: | 
| 487   virtual void DoTestOnMessageLoop() { | 540   virtual void DoTestOnMessageLoop() { | 
| 488     // Press the mouse button on the overflow button. Don't release it though. | 541     // Press the mouse button on the overflow button. Don't release it though. | 
| 489     views::TextButton* button = bb_view_->overflow_button(); | 542     views::TextButton* button = bb_view_->overflow_button(); | 
| 490     ui_controls::MoveMouseToCenterAndPress(button, ui_controls::LEFT, | 543     ui_controls::MoveMouseToCenterAndPress(button, ui_controls::LEFT, | 
| 491         ui_controls::DOWN, CreateEventTask(this, &BookmarkBarViewTest6::Step2)); | 544         ui_controls::DOWN, CreateEventTask(this, &BookmarkBarViewTest6::Step2)); | 
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 581   } | 634   } | 
| 582 | 635 | 
| 583   void Step5() { | 636   void Step5() { | 
| 584     ASSERT_TRUE(model_->other_node()->GetChild(0)->GetURL() == url_dragging_); | 637     ASSERT_TRUE(model_->other_node()->GetChild(0)->GetURL() == url_dragging_); | 
| 585     Done(); | 638     Done(); | 
| 586   } | 639   } | 
| 587 | 640 | 
| 588   GURL url_dragging_; | 641   GURL url_dragging_; | 
| 589 }; | 642 }; | 
| 590 | 643 | 
| 591 VIEW_TEST(BookmarkBarViewTest7, DNDToDifferentMenu) | 644 VIEW_TEST(BookmarkBarViewTest7, MAYBE_DNDToDifferentMenu) | 
| 592 | 645 | 
| 593 // Drags from one menu to next so that original menu closes, then back to | 646 // Drags from one menu to next so that original menu closes, then back to | 
| 594 // original menu. | 647 // original menu. | 
| 595 class BookmarkBarViewTest8 : public BookmarkBarViewEventTestBase { | 648 class BookmarkBarViewTest8 : public BookmarkBarViewEventTestBase { | 
| 596  protected: | 649  protected: | 
| 597   virtual void DoTestOnMessageLoop() { | 650   virtual void DoTestOnMessageLoop() { | 
| 598     url_dragging_ = | 651     url_dragging_ = | 
| 599         model_->GetBookmarkBarNode()->GetChild(0)->GetChild(0)->GetURL(); | 652         model_->GetBookmarkBarNode()->GetChild(0)->GetChild(0)->GetURL(); | 
| 600 | 653 | 
| 601     // Move the mouse to the first folder on the bookmark bar and press the | 654     // Move the mouse to the first folder on the bookmark bar and press the | 
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 668     // Make sure drop was processed. | 721     // Make sure drop was processed. | 
| 669     GURL final_url = model_->GetBookmarkBarNode()->GetChild(0)->GetChild(0)-> | 722     GURL final_url = model_->GetBookmarkBarNode()->GetChild(0)->GetChild(0)-> | 
| 670         GetChild(1)->GetURL(); | 723         GetChild(1)->GetURL(); | 
| 671     ASSERT_TRUE(final_url == url_dragging_); | 724     ASSERT_TRUE(final_url == url_dragging_); | 
| 672     Done(); | 725     Done(); | 
| 673   } | 726   } | 
| 674 | 727 | 
| 675   GURL url_dragging_; | 728   GURL url_dragging_; | 
| 676 }; | 729 }; | 
| 677 | 730 | 
| 678 VIEW_TEST(BookmarkBarViewTest8, DNDBackToOriginatingMenu) | 731 VIEW_TEST(BookmarkBarViewTest8, MAYBE_DNDBackToOriginatingMenu) | 
| 679 | 732 | 
| 680 // Moves the mouse over the scroll button and makes sure we get scrolling. | 733 // Moves the mouse over the scroll button and makes sure we get scrolling. | 
| 681 class BookmarkBarViewTest9 : public BookmarkBarViewEventTestBase { | 734 class BookmarkBarViewTest9 : public BookmarkBarViewEventTestBase { | 
| 682  protected: | 735  protected: | 
| 683   virtual bool CreateBigMenu() { return true; } | 736   virtual bool CreateBigMenu() { return true; } | 
| 684 | 737 | 
| 685   virtual void DoTestOnMessageLoop() { | 738   virtual void DoTestOnMessageLoop() { | 
| 686     // Move the mouse to the first folder on the bookmark bar and press the | 739     // Move the mouse to the first folder on the bookmark bar and press the | 
| 687     // mouse. | 740     // mouse. | 
| 688     views::TextButton* button = bb_view_->GetBookmarkButton(0); | 741     views::TextButton* button = bb_view_->GetBookmarkButton(0); | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
| 706     // Move the mouse over the scroll button. | 759     // Move the mouse over the scroll button. | 
| 707     views::View* scroll_container = menu->GetSubmenu()->GetParent(); | 760     views::View* scroll_container = menu->GetSubmenu()->GetParent(); | 
| 708     ASSERT_TRUE(scroll_container != NULL); | 761     ASSERT_TRUE(scroll_container != NULL); | 
| 709     scroll_container = scroll_container->GetParent(); | 762     scroll_container = scroll_container->GetParent(); | 
| 710     ASSERT_TRUE(scroll_container != NULL); | 763     ASSERT_TRUE(scroll_container != NULL); | 
| 711     views::View* scroll_down_button = scroll_container->GetChildViewAt(1); | 764     views::View* scroll_down_button = scroll_container->GetChildViewAt(1); | 
| 712     ASSERT_TRUE(scroll_down_button); | 765     ASSERT_TRUE(scroll_down_button); | 
| 713     gfx::Point loc(scroll_down_button->width() / 2, | 766     gfx::Point loc(scroll_down_button->width() / 2, | 
| 714                    scroll_down_button->height() / 2); | 767                    scroll_down_button->height() / 2); | 
| 715     views::View::ConvertPointToScreen(scroll_down_button, &loc); | 768     views::View::ConvertPointToScreen(scroll_down_button, &loc); | 
|  | 769 | 
|  | 770     // On linux, the sending one location isn't enough. | 
|  | 771     ui_controls::SendMouseMove(loc.x() - 1 , loc.y() - 1); | 
| 716     ui_controls::SendMouseMoveNotifyWhenDone( | 772     ui_controls::SendMouseMoveNotifyWhenDone( | 
| 717         loc.x(), loc.y(), CreateEventTask(this, &BookmarkBarViewTest9::Step3)); | 773         loc.x(), loc.y(), CreateEventTask(this, &BookmarkBarViewTest9::Step3)); | 
| 718   } | 774   } | 
| 719 | 775 | 
| 720   void Step3() { | 776   void Step3() { | 
| 721     MessageLoop::current()->PostDelayedTask(FROM_HERE, | 777     MessageLoop::current()->PostDelayedTask(FROM_HERE, | 
| 722         NewRunnableMethod(this, &BookmarkBarViewTest9::Step4), 200); | 778         NewRunnableMethod(this, &BookmarkBarViewTest9::Step4), 200); | 
| 723   } | 779   } | 
| 724 | 780 | 
| 725   void Step4() { | 781   void Step4() { | 
| 726     gfx::Point menu_loc; | 782     gfx::Point menu_loc; | 
| 727     views::View::ConvertPointToScreen(first_menu_, &menu_loc); | 783     views::View::ConvertPointToScreen(first_menu_, &menu_loc); | 
| 728     ASSERT_NE(start_y_, menu_loc.y()); | 784     ASSERT_NE(start_y_, menu_loc.y()); | 
| 729 | 785 | 
| 730     // Hide menu. | 786     // Hide menu. | 
| 731     bb_view_->GetMenu()->GetMenuController()->Cancel(true); | 787     bb_view_->GetMenu()->GetMenuController()->Cancel(true); | 
| 732 | 788 | 
| 733     Done(); | 789     // On linux, Cancelling menu will call Quit on the message loop, | 
|  | 790     // which can interfere with Done. We need to run Done in the | 
|  | 791     // next execution loop. | 
|  | 792     MessageLoop::current()->PostTask( | 
|  | 793         FROM_HERE, | 
|  | 794         NewRunnableMethod(this, &ViewEventTestBase::Done)); | 
| 734   } | 795   } | 
| 735 | 796 | 
| 736   int start_y_; | 797   int start_y_; | 
| 737   views::MenuItemView* first_menu_; | 798   views::MenuItemView* first_menu_; | 
| 738 }; | 799 }; | 
| 739 | 800 | 
| 740 VIEW_TEST(BookmarkBarViewTest9, ScrollButtonScrolls) | 801 VIEW_TEST(BookmarkBarViewTest9, ScrollButtonScrolls) | 
| 741 | 802 | 
| 742 // Tests up/down/left/enter key messages. | 803 // Tests up/down/left/enter key messages. | 
| 743 class BookmarkBarViewTest10 : public BookmarkBarViewEventTestBase { | 804 class BookmarkBarViewTest10 : public BookmarkBarViewEventTestBase { | 
| 744  protected: | 805  protected: | 
| 745   virtual void DoTestOnMessageLoop() { | 806   virtual void DoTestOnMessageLoop() { | 
| 746     // Move the mouse to the first folder on the bookmark bar and press the | 807     // Move the mouse to the first folder on the bookmark bar and press the | 
| 747     // mouse. | 808     // mouse. | 
| 748     views::TextButton* button = bb_view_->GetBookmarkButton(0); | 809     views::TextButton* button = bb_view_->GetBookmarkButton(0); | 
| 749     ui_controls::MoveMouseToCenterAndPress(button, ui_controls::LEFT, | 810     ui_controls::MoveMouseToCenterAndPress(button, ui_controls::LEFT, | 
| 750         ui_controls::DOWN | ui_controls::UP, | 811         ui_controls::DOWN | ui_controls::UP, | 
| 751         CreateEventTask(this, &BookmarkBarViewTest10::Step2)); | 812         CreateEventTask(this, &BookmarkBarViewTest10::Step2)); | 
|  | 813     MessageLoop::current()->RunAllPending(); | 
| 752   } | 814   } | 
| 753 | 815 | 
| 754  private: | 816  private: | 
| 755   void Step2() { | 817   void Step2() { | 
| 756     // Menu should be showing. | 818     // Menu should be showing. | 
| 757     views::MenuItemView* menu = bb_view_->GetMenu(); | 819     views::MenuItemView* menu = bb_view_->GetMenu(); | 
| 758     ASSERT_TRUE(menu != NULL); | 820     ASSERT_TRUE(menu != NULL); | 
| 759     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 821     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 
| 760 | 822 | 
| 761     // Send a down event, which should select the first item. | 823     // Send a down event, which should select the first item. | 
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 835   } | 897   } | 
| 836 | 898 | 
| 837   void Step8() { | 899   void Step8() { | 
| 838     ASSERT_TRUE( | 900     ASSERT_TRUE( | 
| 839         model_->GetBookmarkBarNode()->GetChild(0)->GetChild(0)->GetURL() == | 901         model_->GetBookmarkBarNode()->GetChild(0)->GetChild(0)->GetURL() == | 
| 840         navigator_.url_); | 902         navigator_.url_); | 
| 841     Done(); | 903     Done(); | 
| 842   } | 904   } | 
| 843 }; | 905 }; | 
| 844 | 906 | 
| 845 VIEW_TEST(BookmarkBarViewTest10, KeyEvents) | 907 VIEW_TEST(BookmarkBarViewTest10, MAYBE_KeyEvents) | 
| 846 | 908 | 
| 847 // Make sure the menu closes with the following sequence: show menu, show | 909 // Make sure the menu closes with the following sequence: show menu, show | 
| 848 // context menu, close context menu (via escape), then click else where. This | 910 // context menu, close context menu (via escape), then click else where. This | 
| 849 // effectively verifies we maintain mouse capture after the context menu is | 911 // effectively verifies we maintain mouse capture after the context menu is | 
| 850 // hidden. | 912 // hidden. | 
| 851 class BookmarkBarViewTest11 : public BookmarkBarViewEventTestBase { | 913 class BookmarkBarViewTest11 : public BookmarkBarViewEventTestBase { | 
|  | 914  public: | 
|  | 915   BookmarkBarViewTest11() | 
|  | 916       : ALLOW_THIS_IN_INITIALIZER_LIST( | 
|  | 917           observer_(CreateEventTask(this, &BookmarkBarViewTest11::Step3))) { | 
|  | 918   } | 
|  | 919 | 
| 852  protected: | 920  protected: | 
| 853   virtual void DoTestOnMessageLoop() { | 921   virtual void DoTestOnMessageLoop() { | 
| 854     // Move the mouse to the first folder on the bookmark bar and press the | 922     // Move the mouse to the first folder on the bookmark bar and press the | 
| 855     // mouse. | 923     // mouse. | 
| 856     views::TextButton* button = bb_view_->other_bookmarked_button(); | 924     views::TextButton* button = bb_view_->other_bookmarked_button(); | 
| 857     ui_controls::MoveMouseToCenterAndPress(button, ui_controls::LEFT, | 925     ui_controls::MoveMouseToCenterAndPress(button, ui_controls::LEFT, | 
| 858         ui_controls::DOWN | ui_controls::UP, | 926         ui_controls::DOWN | ui_controls::UP, | 
| 859         CreateEventTask(this, &BookmarkBarViewTest11::Step2)); | 927         CreateEventTask(this, &BookmarkBarViewTest11::Step2)); | 
| 860   } | 928   } | 
| 861 | 929 | 
| 862  private: | 930  private: | 
| 863   void Step2() { | 931   void Step2() { | 
| 864     // Menu should be showing. | 932     // Menu should be showing. | 
| 865     views::MenuItemView* menu = bb_view_->GetMenu(); | 933     views::MenuItemView* menu = bb_view_->GetMenu(); | 
| 866     ASSERT_TRUE(menu != NULL); | 934     ASSERT_TRUE(menu != NULL); | 
| 867     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 935     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 
| 868 | 936 | 
| 869     views::MenuItemView* child_menu = | 937     views::MenuItemView* child_menu = | 
| 870         menu->GetSubmenu()->GetMenuItemAt(0); | 938         menu->GetSubmenu()->GetMenuItemAt(0); | 
| 871     ASSERT_TRUE(child_menu != NULL); | 939     ASSERT_TRUE(child_menu != NULL); | 
| 872 | 940 | 
| 873     // Right click on the first child to get its context menu. | 941     // Right click on the first child to get its context menu. | 
| 874     ui_controls::MoveMouseToCenterAndPress(child_menu, ui_controls::RIGHT, | 942     ui_controls::MoveMouseToCenterAndPress(child_menu, ui_controls::RIGHT, | 
| 875         ui_controls::DOWN | ui_controls::UP, | 943         ui_controls::DOWN | ui_controls::UP, NULL); | 
| 876         CreateEventTask(this, &BookmarkBarViewTest11::Step3)); | 944     // Step3 will be invoked by ContextMenuNotificationObserver. | 
| 877   } | 945   } | 
| 878 | 946 | 
| 879   void Step3() { | 947   void Step3() { | 
| 880     // Send escape so that the context menu hides. | 948     // Send escape so that the context menu hides. | 
| 881     ui_controls::SendKeyPressNotifyWhenDone( | 949     ui_controls::SendKeyPressNotifyWhenDone( | 
| 882         NULL, base::VKEY_ESCAPE, false, false, false, | 950         NULL, base::VKEY_ESCAPE, false, false, false, | 
| 883         CreateEventTask(this, &BookmarkBarViewTest11::Step4)); | 951         CreateEventTask(this, &BookmarkBarViewTest11::Step4)); | 
| 884   } | 952   } | 
| 885 | 953 | 
| 886   void Step4() { | 954   void Step4() { | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
| 902         CreateEventTask(this, &BookmarkBarViewTest11::Step5)); | 970         CreateEventTask(this, &BookmarkBarViewTest11::Step5)); | 
| 903   } | 971   } | 
| 904 | 972 | 
| 905   void Step5() { | 973   void Step5() { | 
| 906     // Make sure the menu is not showing. | 974     // Make sure the menu is not showing. | 
| 907     views::MenuItemView* menu = bb_view_->GetMenu(); | 975     views::MenuItemView* menu = bb_view_->GetMenu(); | 
| 908     ASSERT_TRUE(!menu || !menu->GetSubmenu() || | 976     ASSERT_TRUE(!menu || !menu->GetSubmenu() || | 
| 909                 !menu->GetSubmenu()->IsShowing()); | 977                 !menu->GetSubmenu()->IsShowing()); | 
| 910     Done(); | 978     Done(); | 
| 911   } | 979   } | 
|  | 980 | 
|  | 981   ContextMenuNotificationObserver observer_; | 
| 912 }; | 982 }; | 
| 913 | 983 | 
| 914 VIEW_TEST(BookmarkBarViewTest11, CloseMenuAfterClosingContextMenu) | 984 VIEW_TEST(BookmarkBarViewTest11, CloseMenuAfterClosingContextMenu) | 
| 915 | 985 | 
| 916 // Tests showing a modal dialog from a context menu. | 986 // Tests showing a modal dialog from a context menu. | 
| 917 class BookmarkBarViewTest12 : public BookmarkBarViewEventTestBase { | 987 class BookmarkBarViewTest12 : public BookmarkBarViewEventTestBase { | 
| 918  protected: | 988  protected: | 
| 919   virtual void DoTestOnMessageLoop() { | 989   virtual void DoTestOnMessageLoop() { | 
| 920     // Open up the other folder. | 990     // Open up the other folder. | 
| 921     views::TextButton* button = bb_view_->other_bookmarked_button(); | 991     views::TextButton* button = bb_view_->other_bookmarked_button(); | 
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 989   void Step7() { | 1059   void Step7() { | 
| 990     Done(); | 1060     Done(); | 
| 991   } | 1061   } | 
| 992 }; | 1062 }; | 
| 993 | 1063 | 
| 994 VIEW_TEST(BookmarkBarViewTest12, CloseWithModalDialog) | 1064 VIEW_TEST(BookmarkBarViewTest12, CloseWithModalDialog) | 
| 995 | 1065 | 
| 996 // Tests clicking on the separator of a context menu (this is for coverage of | 1066 // Tests clicking on the separator of a context menu (this is for coverage of | 
| 997 // bug 17862). | 1067 // bug 17862). | 
| 998 class BookmarkBarViewTest13 : public BookmarkBarViewEventTestBase { | 1068 class BookmarkBarViewTest13 : public BookmarkBarViewEventTestBase { | 
|  | 1069  public: | 
|  | 1070   BookmarkBarViewTest13() | 
|  | 1071       : ALLOW_THIS_IN_INITIALIZER_LIST( | 
|  | 1072           observer_(CreateEventTask(this, &BookmarkBarViewTest13::Step3))) { | 
|  | 1073   } | 
|  | 1074 | 
| 999  protected: | 1075  protected: | 
| 1000   virtual void DoTestOnMessageLoop() { | 1076   virtual void DoTestOnMessageLoop() { | 
| 1001     // Move the mouse to the first folder on the bookmark bar and press the | 1077     // Move the mouse to the first folder on the bookmark bar and press the | 
| 1002     // mouse. | 1078     // mouse. | 
| 1003     views::TextButton* button = bb_view_->other_bookmarked_button(); | 1079     views::TextButton* button = bb_view_->other_bookmarked_button(); | 
| 1004     ui_controls::MoveMouseToCenterAndPress(button, ui_controls::LEFT, | 1080     ui_controls::MoveMouseToCenterAndPress(button, ui_controls::LEFT, | 
| 1005         ui_controls::DOWN | ui_controls::UP, | 1081         ui_controls::DOWN | ui_controls::UP, | 
| 1006         CreateEventTask(this, &BookmarkBarViewTest13::Step2)); | 1082         CreateEventTask(this, &BookmarkBarViewTest13::Step2)); | 
| 1007   } | 1083   } | 
| 1008 | 1084 | 
| 1009  private: | 1085  private: | 
| 1010   void Step2() { | 1086   void Step2() { | 
| 1011     // Menu should be showing. | 1087     // Menu should be showing. | 
| 1012     views::MenuItemView* menu = bb_view_->GetMenu(); | 1088     views::MenuItemView* menu = bb_view_->GetMenu(); | 
| 1013     ASSERT_TRUE(menu != NULL); | 1089     ASSERT_TRUE(menu != NULL); | 
| 1014     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 1090     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 
| 1015 | 1091 | 
| 1016     views::MenuItemView* child_menu = | 1092     views::MenuItemView* child_menu = | 
| 1017         menu->GetSubmenu()->GetMenuItemAt(0); | 1093         menu->GetSubmenu()->GetMenuItemAt(0); | 
| 1018     ASSERT_TRUE(child_menu != NULL); | 1094     ASSERT_TRUE(child_menu != NULL); | 
| 1019 | 1095 | 
| 1020     // Right click on the first child to get its context menu. | 1096     // Right click on the first child to get its context menu. | 
| 1021     ui_controls::MoveMouseToCenterAndPress(child_menu, ui_controls::RIGHT, | 1097     ui_controls::MoveMouseToCenterAndPress(child_menu, ui_controls::RIGHT, | 
| 1022         ui_controls::DOWN | ui_controls::UP, | 1098         ui_controls::DOWN | ui_controls::UP, NULL); | 
| 1023         CreateEventTask(this, &BookmarkBarViewTest13::Step3)); | 1099     // Step3 will be invoked by ContextMenuNotificationObserver. | 
| 1024   } | 1100   } | 
| 1025 | 1101 | 
| 1026   void Step3() { | 1102   void Step3() { | 
| 1027     // Make sure the context menu is showing. | 1103     // Make sure the context menu is showing. | 
| 1028     views::MenuItemView* menu = bb_view_->GetContextMenu(); | 1104     views::MenuItemView* menu = bb_view_->GetContextMenu(); | 
| 1029     ASSERT_TRUE(menu != NULL); | 1105     ASSERT_TRUE(menu != NULL); | 
| 1030     ASSERT_TRUE(menu->GetSubmenu()); | 1106     ASSERT_TRUE(menu->GetSubmenu()); | 
| 1031     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 1107     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 
| 1032 | 1108 | 
| 1033     // Find the first separator. | 1109     // Find the first separator. | 
| (...skipping 22 matching lines...) Expand all  Loading... | 
| 1056     ASSERT_TRUE(menu->GetSubmenu()); | 1132     ASSERT_TRUE(menu->GetSubmenu()); | 
| 1057     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 1133     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 
| 1058 | 1134 | 
| 1059     // Select the first context menu item. | 1135     // Select the first context menu item. | 
| 1060     ui_controls::MoveMouseToCenterAndPress(menu->GetSubmenu()->GetMenuItemAt(0), | 1136     ui_controls::MoveMouseToCenterAndPress(menu->GetSubmenu()->GetMenuItemAt(0), | 
| 1061         ui_controls::LEFT, ui_controls::DOWN | ui_controls::UP, | 1137         ui_controls::LEFT, ui_controls::DOWN | ui_controls::UP, | 
| 1062         CreateEventTask(this, &BookmarkBarViewTest13::Step5)); | 1138         CreateEventTask(this, &BookmarkBarViewTest13::Step5)); | 
| 1063   } | 1139   } | 
| 1064 | 1140 | 
| 1065   void Step5() { | 1141   void Step5() { | 
| 1066     DLOG(WARNING) << " DONE"; |  | 
| 1067     Done(); | 1142     Done(); | 
| 1068   } | 1143   } | 
|  | 1144 | 
|  | 1145   ContextMenuNotificationObserver observer_; | 
| 1069 }; | 1146 }; | 
| 1070 | 1147 | 
| 1071 VIEW_TEST(BookmarkBarViewTest13, ClickOnContextMenuSeparator) | 1148 VIEW_TEST(BookmarkBarViewTest13, ClickOnContextMenuSeparator) | 
| 1072 | 1149 | 
| 1073 // Makes sure right cliking on a folder on the bookmark bar doesn't result in | 1150 // Makes sure right cliking on a folder on the bookmark bar doesn't result in | 
| 1074 // both a context menu and showing the menu. | 1151 // both a context menu and showing the menu. | 
| 1075 class BookmarkBarViewTest14 : public BookmarkBarViewEventTestBase { | 1152 class BookmarkBarViewTest14 : public BookmarkBarViewEventTestBase { | 
|  | 1153  public: | 
|  | 1154   BookmarkBarViewTest14() | 
|  | 1155       : ALLOW_THIS_IN_INITIALIZER_LIST( | 
|  | 1156           observer_(CreateEventTask(this, &BookmarkBarViewTest14::Step2))) { | 
|  | 1157   } | 
|  | 1158 | 
| 1076  protected: | 1159  protected: | 
| 1077   virtual void DoTestOnMessageLoop() { | 1160   virtual void DoTestOnMessageLoop() { | 
| 1078     // Move the mouse to the first folder on the bookmark bar and press the | 1161     // Move the mouse to the first folder on the bookmark bar and press the | 
| 1079     // right mouse button. | 1162     // right mouse button. | 
| 1080     views::TextButton* button = bb_view_->GetBookmarkButton(0); | 1163     views::TextButton* button = bb_view_->GetBookmarkButton(0); | 
| 1081     ui_controls::MoveMouseToCenterAndPress(button, ui_controls::RIGHT, | 1164     ui_controls::MoveMouseToCenterAndPress(button, ui_controls::RIGHT, | 
| 1082         ui_controls::DOWN | ui_controls::UP, | 1165         ui_controls::DOWN | ui_controls::UP, NULL); | 
| 1083         CreateEventTask(this, &BookmarkBarViewTest14::Step2)); | 1166     // Step2 will be invoked by ContextMenuNotificationObserver. | 
| 1084   } | 1167   } | 
| 1085 | 1168 | 
| 1086  private: | 1169  private: | 
|  | 1170 | 
| 1087   void Step2() { | 1171   void Step2() { | 
| 1088     // Menu should NOT be showing. | 1172     // Menu should NOT be showing. | 
| 1089     views::MenuItemView* menu = bb_view_->GetMenu(); | 1173     views::MenuItemView* menu = bb_view_->GetMenu(); | 
| 1090     ASSERT_TRUE(menu == NULL); | 1174     ASSERT_TRUE(menu == NULL); | 
| 1091 | 1175 | 
| 1092     // Send escape so that the context menu hides. | 1176     // Send escape so that the context menu hides. | 
| 1093     ui_controls::SendKeyPressNotifyWhenDone( | 1177     ui_controls::SendKeyPressNotifyWhenDone( | 
| 1094         NULL, base::VKEY_ESCAPE, false, false, false, | 1178         NULL, base::VKEY_ESCAPE, false, false, false, | 
| 1095         CreateEventTask(this, &BookmarkBarViewTest14::Step3)); | 1179         CreateEventTask(this, &BookmarkBarViewTest14::Step3)); | 
| 1096   } | 1180   } | 
| 1097 | 1181 | 
| 1098   void Step3() { | 1182   void Step3() { | 
| 1099     Done(); | 1183     Done(); | 
| 1100   } | 1184   } | 
|  | 1185 | 
|  | 1186   ContextMenuNotificationObserver observer_; | 
| 1101 }; | 1187 }; | 
| 1102 | 1188 | 
| 1103 VIEW_TEST(BookmarkBarViewTest14, ContextMenus2) | 1189 VIEW_TEST(BookmarkBarViewTest14, ContextMenus2) | 
| 1104 | 1190 | 
| 1105 // Makes sure deleting from the context menu keeps the bookmark menu showing. | 1191 // Makes sure deleting from the context menu keeps the bookmark menu showing. | 
| 1106 class BookmarkBarViewTest15 : public BookmarkBarViewEventTestBase { | 1192 class BookmarkBarViewTest15 : public BookmarkBarViewEventTestBase { | 
| 1107  public: | 1193  public: | 
| 1108   BookmarkBarViewTest15() : deleted_menu_id_(0) {} | 1194   BookmarkBarViewTest15() | 
|  | 1195       : deleted_menu_id_(0), | 
|  | 1196         ALLOW_THIS_IN_INITIALIZER_LIST( | 
|  | 1197             observer_(CreateEventTask(this, &BookmarkBarViewTest15::Step3))) { | 
|  | 1198   } | 
| 1109 | 1199 | 
| 1110  protected: | 1200  protected: | 
| 1111   virtual void DoTestOnMessageLoop() { | 1201   virtual void DoTestOnMessageLoop() { | 
| 1112     // Show the other bookmarks. | 1202     // Show the other bookmarks. | 
| 1113     views::TextButton* button = bb_view_->other_bookmarked_button(); | 1203     views::TextButton* button = bb_view_->other_bookmarked_button(); | 
| 1114     ui_controls::MoveMouseToCenterAndPress(button, ui_controls::LEFT, | 1204     ui_controls::MoveMouseToCenterAndPress(button, ui_controls::LEFT, | 
| 1115         ui_controls::DOWN | ui_controls::UP, | 1205         ui_controls::DOWN | ui_controls::UP, | 
| 1116         CreateEventTask(this, &BookmarkBarViewTest15::Step2)); | 1206         CreateEventTask(this, &BookmarkBarViewTest15::Step2)); | 
| 1117   } | 1207   } | 
| 1118 | 1208 | 
| 1119  private: | 1209  private: | 
| 1120   void Step2() { | 1210   void Step2() { | 
| 1121     // Menu should be showing. | 1211     // Menu should be showing. | 
| 1122     views::MenuItemView* menu = bb_view_->GetMenu(); | 1212     views::MenuItemView* menu = bb_view_->GetMenu(); | 
| 1123     ASSERT_TRUE(menu != NULL); | 1213     ASSERT_TRUE(menu != NULL); | 
| 1124     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 1214     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 
| 1125 | 1215 | 
| 1126     views::MenuItemView* child_menu = | 1216     views::MenuItemView* child_menu = | 
| 1127         menu->GetSubmenu()->GetMenuItemAt(1); | 1217         menu->GetSubmenu()->GetMenuItemAt(1); | 
| 1128     ASSERT_TRUE(child_menu != NULL); | 1218     ASSERT_TRUE(child_menu != NULL); | 
| 1129 | 1219 | 
| 1130     deleted_menu_id_ = child_menu->GetCommand(); | 1220     deleted_menu_id_ = child_menu->GetCommand(); | 
| 1131 | 1221 | 
| 1132     // Right click on the second child to get its context menu. | 1222     // Right click on the second child to get its context menu. | 
| 1133     ui_controls::MoveMouseToCenterAndPress(child_menu, ui_controls::RIGHT, | 1223     ui_controls::MoveMouseToCenterAndPress(child_menu, ui_controls::RIGHT, | 
| 1134         ui_controls::DOWN | ui_controls::UP, | 1224         ui_controls::DOWN | ui_controls::UP, NULL); | 
| 1135         CreateEventTask(this, &BookmarkBarViewTest15::Step3)); | 1225     // Step3 will be invoked by ContextMenuNotificationObserver. | 
| 1136   } | 1226   } | 
| 1137 | 1227 | 
| 1138   void Step3() { | 1228   void Step3() { | 
| 1139     // Make sure the context menu is showing. | 1229     // Make sure the context menu is showing. | 
| 1140     views::MenuItemView* menu = bb_view_->GetContextMenu(); | 1230     views::MenuItemView* menu = bb_view_->GetContextMenu(); | 
| 1141     ASSERT_TRUE(menu != NULL); | 1231     ASSERT_TRUE(menu != NULL); | 
| 1142     ASSERT_TRUE(menu->GetSubmenu()); | 1232     ASSERT_TRUE(menu->GetSubmenu()); | 
| 1143     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 1233     ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); | 
| 1144 | 1234 | 
| 1145     views::MenuItemView* delete_menu = | 1235     views::MenuItemView* delete_menu = | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
| 1164 | 1254 | 
| 1165     // And the deleted_menu_id_ should have been removed. | 1255     // And the deleted_menu_id_ should have been removed. | 
| 1166     ASSERT_TRUE(menu->GetMenuItemByID(deleted_menu_id_) == NULL); | 1256     ASSERT_TRUE(menu->GetMenuItemByID(deleted_menu_id_) == NULL); | 
| 1167 | 1257 | 
| 1168     bb_view_->GetMenu()->GetMenuController()->Cancel(true); | 1258     bb_view_->GetMenu()->GetMenuController()->Cancel(true); | 
| 1169 | 1259 | 
| 1170     Done(); | 1260     Done(); | 
| 1171   } | 1261   } | 
| 1172 | 1262 | 
| 1173   int deleted_menu_id_; | 1263   int deleted_menu_id_; | 
|  | 1264   ContextMenuNotificationObserver observer_; | 
| 1174 }; | 1265 }; | 
| 1175 | 1266 | 
| 1176 VIEW_TEST(BookmarkBarViewTest15, MenuStaysVisibleAfterDelete) | 1267 VIEW_TEST(BookmarkBarViewTest15, MenuStaysVisibleAfterDelete) | 
| OLD | NEW | 
|---|