| Index: chrome/browser/ui/ash/launcher/arc_app_launcher_browsertest.cc
|
| diff --git a/chrome/browser/ui/ash/launcher/arc_app_launcher_browsertest.cc b/chrome/browser/ui/ash/launcher/arc_app_launcher_browsertest.cc
|
| index 2f452268a2c63f9db7d2b05567f612742efc1ed5..57c88c0d5d94bdc1f7c46d9b2d50ef97a69a7155 100644
|
| --- a/chrome/browser/ui/ash/launcher/arc_app_launcher_browsertest.cc
|
| +++ b/chrome/browser/ui/ash/launcher/arc_app_launcher_browsertest.cc
|
| @@ -3,7 +3,6 @@
|
| // found in the LICENSE file.
|
|
|
| #include "ash/public/cpp/shelf_item_delegate.h"
|
| -#include "ash/shelf/shelf_delegate.h"
|
| #include "ash/shelf/shelf_model.h"
|
| #include "ash/shell.h"
|
| #include "ash/wm/window_util.h"
|
| @@ -108,10 +107,6 @@ ChromeLauncherController* chrome_controller() {
|
| return ChromeLauncherController::instance();
|
| }
|
|
|
| -ash::ShelfDelegate* shelf_delegate() {
|
| - return ash::Shell::Get()->shelf_delegate();
|
| -}
|
| -
|
| class AppAnimatedWaiter {
|
| public:
|
| explicit AppAnimatedWaiter(const std::string& app_id) : app_id_(app_id) {}
|
| @@ -258,9 +253,9 @@ class ArcAppLauncherBrowserTest : public ExtensionBrowserTest {
|
| app_instance_observer()->OnInstanceClosed();
|
| }
|
|
|
| - ash::ShelfItemDelegate* GetAppItemController(const std::string& id) {
|
| - const ash::ShelfID shelf_id = shelf_delegate()->GetShelfIDForAppID(id);
|
| - return ash::Shell::Get()->shelf_model()->GetShelfItemDelegate(shelf_id);
|
| + ash::ShelfItemDelegate* GetShelfItemDelegate(const std::string& id) {
|
| + ash::ShelfModel* model = ash::Shell::Get()->shelf_model();
|
| + return model->GetShelfItemDelegate(model->GetShelfIDForAppID(id));
|
| }
|
|
|
| ArcAppListPrefs* app_prefs() { return ArcAppListPrefs::Get(profile()); }
|
| @@ -308,14 +303,15 @@ IN_PROC_BROWSER_TEST_P(ArcAppDeferredLauncherBrowserTest, StartAppDeferred) {
|
| SendPackageAdded(kTestAppPackage, false);
|
|
|
| const std::string app_id = GetTestApp1Id(kTestAppPackage);
|
| + ash::ShelfModel* shelf_model = ash::Shell::Get()->shelf_model();
|
| if (is_pinned()) {
|
| - shelf_delegate()->PinAppWithID(app_id);
|
| - const ash::ShelfID shelf_id = shelf_delegate()->GetShelfIDForAppID(app_id);
|
| + shelf_model->PinAppWithID(app_id);
|
| + const ash::ShelfID shelf_id = shelf_model->GetShelfIDForAppID(app_id);
|
| EXPECT_TRUE(shelf_id);
|
| const ash::ShelfItem* item = chrome_controller()->GetItem(shelf_id);
|
| EXPECT_EQ(base::UTF8ToUTF16(kTestAppName), item->title);
|
| } else {
|
| - EXPECT_FALSE(shelf_delegate()->GetShelfIDForAppID(app_id));
|
| + EXPECT_FALSE(shelf_model->GetShelfIDForAppID(app_id));
|
| }
|
|
|
| StopInstance();
|
| @@ -330,13 +326,13 @@ IN_PROC_BROWSER_TEST_P(ArcAppDeferredLauncherBrowserTest, StartAppDeferred) {
|
| ASSERT_TRUE(app_info);
|
| EXPECT_FALSE(app_info->ready);
|
| if (is_pinned())
|
| - EXPECT_TRUE(shelf_delegate()->GetShelfIDForAppID(app_id));
|
| + EXPECT_TRUE(shelf_model->GetShelfIDForAppID(app_id));
|
| else
|
| - EXPECT_FALSE(shelf_delegate()->GetShelfIDForAppID(app_id));
|
| + EXPECT_FALSE(shelf_model->GetShelfIDForAppID(app_id));
|
|
|
| // Launching non-ready ARC app creates item on shelf and spinning animation.
|
| arc::LaunchApp(profile(), app_id, ui::EF_LEFT_MOUSE_BUTTON);
|
| - const ash::ShelfID shelf_id = shelf_delegate()->GetShelfIDForAppID(app_id);
|
| + const ash::ShelfID shelf_id = shelf_model->GetShelfIDForAppID(app_id);
|
| EXPECT_TRUE(shelf_id);
|
| const ash::ShelfItem* item = chrome_controller()->GetItem(shelf_id);
|
| EXPECT_EQ(base::UTF8ToUTF16(kTestAppName), item->title);
|
| @@ -353,9 +349,9 @@ IN_PROC_BROWSER_TEST_P(ArcAppDeferredLauncherBrowserTest, StartAppDeferred) {
|
| ->GetActiveTime(app_id)
|
| .is_zero());
|
| if (is_pinned())
|
| - EXPECT_TRUE(shelf_delegate()->GetShelfIDForAppID(app_id));
|
| + EXPECT_TRUE(shelf_model->GetShelfIDForAppID(app_id));
|
| else
|
| - EXPECT_FALSE(shelf_delegate()->GetShelfIDForAppID(app_id));
|
| + EXPECT_FALSE(shelf_model->GetShelfIDForAppID(app_id));
|
| break;
|
| case TEST_ACTION_EXIT:
|
| // Just exist Chrome.
|
| @@ -363,17 +359,17 @@ IN_PROC_BROWSER_TEST_P(ArcAppDeferredLauncherBrowserTest, StartAppDeferred) {
|
| case TEST_ACTION_CLOSE:
|
| // Close item during animation.
|
| {
|
| - ash::ShelfItemDelegate* controller = GetAppItemController(app_id);
|
| - ASSERT_TRUE(controller);
|
| - controller->Close();
|
| + ash::ShelfItemDelegate* delegate = GetShelfItemDelegate(app_id);
|
| + ASSERT_TRUE(delegate);
|
| + delegate->Close();
|
| EXPECT_TRUE(chrome_controller()
|
| ->GetArcDeferredLauncher()
|
| ->GetActiveTime(app_id)
|
| .is_zero());
|
| if (is_pinned())
|
| - EXPECT_TRUE(shelf_delegate()->GetShelfIDForAppID(app_id));
|
| + EXPECT_TRUE(shelf_model->GetShelfIDForAppID(app_id));
|
| else
|
| - EXPECT_FALSE(shelf_delegate()->GetShelfIDForAppID(app_id));
|
| + EXPECT_FALSE(shelf_model->GetShelfIDForAppID(app_id));
|
| }
|
| break;
|
| }
|
| @@ -396,30 +392,31 @@ IN_PROC_BROWSER_TEST_F(ArcAppLauncherBrowserTest, PinOnPackageUpdateAndRemove) {
|
|
|
| const std::string app_id1 = GetTestApp1Id(kTestAppPackage);
|
| const std::string app_id2 = GetTestApp2Id(kTestAppPackage);
|
| - shelf_delegate()->PinAppWithID(app_id1);
|
| - shelf_delegate()->PinAppWithID(app_id2);
|
| + ash::ShelfModel* shelf_model = ash::Shell::Get()->shelf_model();
|
| + shelf_model->PinAppWithID(app_id1);
|
| + shelf_model->PinAppWithID(app_id2);
|
| const ash::ShelfID shelf_id1_before =
|
| - shelf_delegate()->GetShelfIDForAppID(app_id1);
|
| + shelf_model->GetShelfIDForAppID(app_id1);
|
| EXPECT_TRUE(shelf_id1_before);
|
| - EXPECT_TRUE(shelf_delegate()->GetShelfIDForAppID(app_id2));
|
| + EXPECT_TRUE(shelf_model->GetShelfIDForAppID(app_id2));
|
|
|
| // Package contains only one app. App list is not shown for updated package.
|
| SendPackageUpdated(kTestAppPackage, false);
|
| // Second pin should gone.
|
| - EXPECT_EQ(shelf_id1_before, shelf_delegate()->GetShelfIDForAppID(app_id1));
|
| - EXPECT_FALSE(shelf_delegate()->GetShelfIDForAppID(app_id2));
|
| + EXPECT_EQ(shelf_id1_before, shelf_model->GetShelfIDForAppID(app_id1));
|
| + EXPECT_FALSE(shelf_model->GetShelfIDForAppID(app_id2));
|
|
|
| // Package contains two apps. App list is not shown for updated package.
|
| SendPackageUpdated(kTestAppPackage, true);
|
| // Second pin should not appear.
|
| - EXPECT_EQ(shelf_id1_before, shelf_delegate()->GetShelfIDForAppID(app_id1));
|
| - EXPECT_FALSE(shelf_delegate()->GetShelfIDForAppID(app_id2));
|
| + EXPECT_EQ(shelf_id1_before, shelf_model->GetShelfIDForAppID(app_id1));
|
| + EXPECT_FALSE(shelf_model->GetShelfIDForAppID(app_id2));
|
|
|
| // Package removed.
|
| SendPackageRemoved(kTestAppPackage);
|
| // No pin is expected.
|
| - EXPECT_FALSE(shelf_delegate()->GetShelfIDForAppID(app_id1));
|
| - EXPECT_FALSE(shelf_delegate()->GetShelfIDForAppID(app_id2));
|
| + EXPECT_FALSE(shelf_model->GetShelfIDForAppID(app_id1));
|
| + EXPECT_FALSE(shelf_model->GetShelfIDForAppID(app_id2));
|
| }
|
|
|
| // This test validates that app list is shown on new package and not shown
|
| @@ -507,48 +504,48 @@ IN_PROC_BROWSER_TEST_F(ArcAppLauncherBrowserTest, ShelfGroup) {
|
| app_host()->OnTaskCreated(1, info->package_name, info->activity, info->name,
|
| CreateIntentUriWithShelfGroup(kTestShelfGroup));
|
|
|
| - ash::ShelfItemDelegate* controller1 = GetAppItemController(shelf_id1);
|
| - ASSERT_TRUE(controller1);
|
| + ash::ShelfItemDelegate* delegate1 = GetShelfItemDelegate(shelf_id1);
|
| + ASSERT_TRUE(delegate1);
|
|
|
| // 2 tasks for group 2
|
| app_host()->OnTaskCreated(2, info->package_name, info->activity, info->name,
|
| CreateIntentUriWithShelfGroup(kTestShelfGroup2));
|
|
|
| - ash::ShelfItemDelegate* controller2 = GetAppItemController(shelf_id2);
|
| - ASSERT_TRUE(controller2);
|
| - ASSERT_NE(controller1, controller2);
|
| + ash::ShelfItemDelegate* delegate2 = GetShelfItemDelegate(shelf_id2);
|
| + ASSERT_TRUE(delegate2);
|
| + ASSERT_NE(delegate1, delegate2);
|
|
|
| app_host()->OnTaskCreated(3, info->package_name, info->activity, info->name,
|
| CreateIntentUriWithShelfGroup(kTestShelfGroup2));
|
|
|
| - ASSERT_EQ(controller2, GetAppItemController(shelf_id2));
|
| + ASSERT_EQ(delegate2, GetShelfItemDelegate(shelf_id2));
|
|
|
| // 2 tasks for group 3 which does not have shortcut.
|
| app_host()->OnTaskCreated(4, info->package_name, info->activity, info->name,
|
| CreateIntentUriWithShelfGroup(kTestShelfGroup3));
|
|
|
| - ash::ShelfItemDelegate* controller3 = GetAppItemController(shelf_id3);
|
| - ASSERT_TRUE(controller3);
|
| - ASSERT_NE(controller1, controller3);
|
| - ASSERT_NE(controller2, controller3);
|
| + ash::ShelfItemDelegate* delegate3 = GetShelfItemDelegate(shelf_id3);
|
| + ASSERT_TRUE(delegate3);
|
| + ASSERT_NE(delegate1, delegate3);
|
| + ASSERT_NE(delegate2, delegate3);
|
|
|
| app_host()->OnTaskCreated(5, info->package_name, info->activity, info->name,
|
| CreateIntentUriWithShelfGroup(kTestShelfGroup3));
|
|
|
| - ASSERT_EQ(controller3, GetAppItemController(shelf_id3));
|
| + ASSERT_EQ(delegate3, GetShelfItemDelegate(shelf_id3));
|
|
|
| // Destroy task #0, this kills shelf group 1
|
| app_host()->OnTaskDestroyed(1);
|
| - EXPECT_FALSE(GetAppItemController(shelf_id1));
|
| + EXPECT_FALSE(GetShelfItemDelegate(shelf_id1));
|
|
|
| // Destroy task #1, shelf group 2 is still alive
|
| app_host()->OnTaskDestroyed(2);
|
| - EXPECT_EQ(controller2, GetAppItemController(shelf_id2));
|
| + EXPECT_EQ(delegate2, GetShelfItemDelegate(shelf_id2));
|
| // Destroy task #2, this kills shelf group 2
|
| app_host()->OnTaskDestroyed(3);
|
| - EXPECT_FALSE(GetAppItemController(shelf_id2));
|
| + EXPECT_FALSE(GetShelfItemDelegate(shelf_id2));
|
|
|
| // Disable ARC, this removes app and as result kills shelf group 3.
|
| arc::SetArcPlayStoreEnabledForProfile(profile(), false);
|
| - EXPECT_FALSE(GetAppItemController(shelf_id3));
|
| + EXPECT_FALSE(GetShelfItemDelegate(shelf_id3));
|
| }
|
|
|