| Index: chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_browsertest.cc
|
| diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_browsertest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_browsertest.cc
|
| index 7a473e041830316b61cb431dbca1fc6668cae753..859453454e1b73551d54b8c48b58bf73944adb8f 100644
|
| --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_browsertest.cc
|
| +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_browsertest.cc
|
| @@ -78,6 +78,7 @@
|
| #include "ui/aura/window.h"
|
| #include "ui/base/window_open_disposition.h"
|
| #include "ui/display/test/display_manager_test_api.h"
|
| +#include "ui/events/base_event_utils.h"
|
| #include "ui/events/event.h"
|
| #include "ui/events/event_constants.h"
|
| #include "ui/events/test/event_generator.h"
|
| @@ -94,12 +95,35 @@ ChromeLauncherControllerImpl* GetChromeLauncherControllerImpl() {
|
| ChromeLauncherController::instance());
|
| }
|
|
|
| +// A callback that records the action taken when a shelf item is selected.
|
| +void SelectItemCallback(ash::ShelfAction* action_taken,
|
| + base::RunLoop* run_loop,
|
| + ash::ShelfAction action,
|
| + base::Optional<MenuItemList>) {
|
| + *action_taken = action;
|
| + run_loop->Quit();
|
| +}
|
| +
|
| // Calls ShelfItemDelegate::SelectItem with an event type and default arguments.
|
| -ash::ShelfAction SelectItem(ash::ShelfItemDelegate* delegate,
|
| +ash::ShelfAction SelectItem(ash::mojom::ShelfItemDelegate* delegate,
|
| ui::EventType event_type) {
|
| - return delegate->ItemSelected(event_type, ui::EF_NONE,
|
| - display::kInvalidDisplayId,
|
| - ash::LAUNCH_FROM_UNKNOWN);
|
| + std::unique_ptr<ui::Event> event;
|
| + if (event_type == ui::ET_MOUSE_PRESSED) {
|
| + event =
|
| + base::MakeUnique<ui::MouseEvent>(event_type, gfx::Point(), gfx::Point(),
|
| + ui::EventTimeForNow(), ui::EF_NONE, 0);
|
| + } else if (event_type == ui::ET_KEY_RELEASED) {
|
| + event = base::MakeUnique<ui::KeyEvent>(event_type, ui::VKEY_UNKNOWN,
|
| + ui::EF_NONE);
|
| + }
|
| +
|
| + base::RunLoop run_loop;
|
| + ash::ShelfAction action = ash::SHELF_ACTION_NONE;
|
| + delegate->ItemSelected(std::move(event), display::kInvalidDisplayId,
|
| + ash::LAUNCH_FROM_UNKNOWN,
|
| + base::Bind(&SelectItemCallback, &action, &run_loop));
|
| + run_loop.Run();
|
| + return action;
|
| }
|
|
|
| class TestEvent : public ui::Event {
|
| @@ -772,7 +796,7 @@ IN_PROC_BROWSER_TEST_F(LauncherPlatformAppBrowserTest, AppPanel) {
|
| EXPECT_EQ(ash::TYPE_APP_PANEL, item1.type);
|
| EXPECT_EQ(ash::STATUS_RUNNING, item1.status);
|
| EXPECT_EQ(nullptr, GetItemController(item1.id));
|
| - ash::ShelfItemDelegate* item1_delegate =
|
| + ash::mojom::ShelfItemDelegate* item1_delegate =
|
| shelf_model()->GetShelfItemDelegate(item1.id);
|
| EXPECT_EQ(ash::TYPE_APP_PANEL,
|
| panel->GetNativeWindow()->GetProperty(ash::kShelfItemTypeKey));
|
| @@ -812,7 +836,7 @@ IN_PROC_BROWSER_TEST_F(LauncherPlatformAppBrowserTest, AppPanelClickBehavior) {
|
| EXPECT_EQ(ash::TYPE_APP_PANEL, item1.type);
|
| EXPECT_EQ(ash::STATUS_RUNNING, item1.status);
|
| EXPECT_EQ(nullptr, GetItemController(item1.id));
|
| - ash::ShelfItemDelegate* item1_delegate =
|
| + ash::mojom::ShelfItemDelegate* item1_delegate =
|
| shelf_model()->GetShelfItemDelegate(item1.id);
|
| EXPECT_EQ(ash::TYPE_APP_PANEL,
|
| panel->GetNativeWindow()->GetProperty(ash::kShelfItemTypeKey));
|
| @@ -1520,7 +1544,7 @@ IN_PROC_BROWSER_TEST_F(LauncherPlatformAppBrowserTest, WindowAttentionStatus) {
|
| const ash::ShelfItem& item = GetLastLauncherPanelItem();
|
| // Panels are handled by ShelfWindowWatcher, not ChromeLauncherController.
|
| EXPECT_EQ(nullptr, GetItemController(item.id));
|
| - ash::ShelfItemDelegate* shelf_item_delegate =
|
| + ash::mojom::ShelfItemDelegate* shelf_item_delegate =
|
| shelf_model()->GetShelfItemDelegate(item.id);
|
| EXPECT_NE(nullptr, shelf_item_delegate);
|
| EXPECT_EQ(ash::TYPE_APP_PANEL, item.type);
|
|
|