| Index: chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc
|
| diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc
|
| index 12a113349b87328405bf3aaa663104675e86293b..bd0df8c75f501e9e1ee28f74228ed6cde6621532 100644
|
| --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc
|
| +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc
|
| @@ -631,6 +631,47 @@ IN_PROC_BROWSER_TEST_F(LauncherPlatformAppBrowserTest, WindowActivation) {
|
| EXPECT_EQ(item_count, shelf_model()->item_count());
|
| }
|
|
|
| +// Verify that ChromeLauncherController::CanInstall() returns true for ephemeral
|
| +// apps and false when the app is promoted to a regular installed app.
|
| +IN_PROC_BROWSER_TEST_F(LauncherPlatformAppBrowserTest, InstallEphemeralApp) {
|
| + int item_count = shelf_model()->item_count();
|
| +
|
| + // Sanity check to verify that ChromeLauncherController::CanInstall() returns
|
| + // false for apps that are fully installed.
|
| + const Extension* app = LoadAndLaunchPlatformApp("launch");
|
| + ASSERT_TRUE(app);
|
| + CreateAppWindow(app);
|
| + ++item_count;
|
| + ASSERT_EQ(item_count, shelf_model()->item_count());
|
| + const ash::ShelfItem& app_item = GetLastLauncherItem();
|
| + ash::ShelfID app_id = app_item.id;
|
| + EXPECT_FALSE(controller_->CanInstall(app_id));
|
| +
|
| + // Add an ephemeral app.
|
| + const Extension* ephemeral_app = InstallEphemeralAppWithSourceAndFlags(
|
| + test_data_dir_.AppendASCII("platform_apps").AppendASCII("launch_2"),
|
| + 1,
|
| + extensions::Manifest::INTERNAL,
|
| + Extension::NO_FLAGS);
|
| + ASSERT_TRUE(ephemeral_app);
|
| + CreateAppWindow(ephemeral_app);
|
| + ++item_count;
|
| + ASSERT_EQ(item_count, shelf_model()->item_count());
|
| + const ash::ShelfItem& ephemeral_item = GetLastLauncherItem();
|
| + ash::ShelfID ephemeral_id = ephemeral_item.id;
|
| +
|
| + // Verify that the shelf item for the ephemeral app can be installed.
|
| + EXPECT_TRUE(controller_->CanInstall(ephemeral_id));
|
| +
|
| + // Promote the ephemeral app to a regular installed app.
|
| + ExtensionService* service =
|
| + extensions::ExtensionSystem::Get(profile())->extension_service();
|
| + service->PromoteEphemeralApp(ephemeral_app, false);
|
| +
|
| + // Verify that the shelf item for the app can no longer be installed.
|
| + EXPECT_FALSE(controller_->CanInstall(ephemeral_id));
|
| +}
|
| +
|
| // Confirm that Click behavior for app windows is correnct.
|
| IN_PROC_BROWSER_TEST_F(ShelfAppBrowserNoMinimizeOnClick, AppClickBehavior) {
|
| // Launch a platform app and create a window for it.
|
|
|