| Index: chrome/browser/apps/ephemeral_app_service_browsertest.cc
|
| diff --git a/chrome/browser/apps/ephemeral_app_service_browsertest.cc b/chrome/browser/apps/ephemeral_app_service_browsertest.cc
|
| index 137e6e116debf724d5a5156d61873a1353c13ace..cf1874309fa61d63c38f6b51173b4a1b1a1883c5 100644
|
| --- a/chrome/browser/apps/ephemeral_app_service_browsertest.cc
|
| +++ b/chrome/browser/apps/ephemeral_app_service_browsertest.cc
|
| @@ -6,137 +6,15 @@
|
|
|
| #include "chrome/browser/apps/ephemeral_app_browsertest.h"
|
| #include "chrome/browser/apps/ephemeral_app_service.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| -#include "content/public/test/test_utils.h"
|
| -#include "extensions/browser/extension_prefs.h"
|
| #include "extensions/browser/extension_registry.h"
|
| -#include "extensions/browser/test_extension_registry_observer.h"
|
|
|
| using extensions::Extension;
|
| -using extensions::ExtensionPrefs;
|
| using extensions::ExtensionRegistry;
|
|
|
| -namespace {
|
| +class EphemeralAppServiceBrowserTest : public EphemeralAppTestBase {};
|
|
|
| -const int kNumTestApps = 2;
|
| -const char* kTestApps[] = {
|
| - "app_window/generic",
|
| - "minimal"
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -class EphemeralAppServiceBrowserTest : public EphemeralAppTestBase {
|
| - protected:
|
| - void LoadApps() {
|
| - for (int i = 0; i < kNumTestApps; ++i) {
|
| - const Extension* extension = InstallEphemeralApp(kTestApps[i]);
|
| - ASSERT_TRUE(extension);
|
| - app_ids_.push_back(extension->id());
|
| - }
|
| -
|
| - ASSERT_EQ(kNumTestApps, (int) app_ids_.size());
|
| - }
|
| -
|
| - void GarbageCollectEphemeralApps() {
|
| - EphemeralAppService* ephemeral_service = EphemeralAppService::Get(
|
| - browser()->profile());
|
| - ASSERT_TRUE(ephemeral_service);
|
| - ephemeral_service->GarbageCollectApps();
|
| - }
|
| -
|
| - void InitEphemeralAppCount(EphemeralAppService* ephemeral_service) {
|
| - ephemeral_service->InitEphemeralAppCount();
|
| - }
|
| -
|
| - void DisableEphemeralAppsOnStartup() {
|
| - EphemeralAppService* ephemeral_service =
|
| - EphemeralAppService::Get(browser()->profile());
|
| - ASSERT_TRUE(ephemeral_service);
|
| - ephemeral_service->DisableEphemeralAppsOnStartup();
|
| - }
|
| -
|
| - std::vector<std::string> app_ids_;
|
| -};
|
| -
|
| -// Verifies that inactive ephemeral apps are uninstalled and active apps are
|
| -// not removed. Extensive testing of the ephemeral app cache's replacement
|
| -// policies is done in the unit tests for EphemeralAppService. This is more
|
| -// like an integration test.
|
| -IN_PROC_BROWSER_TEST_F(EphemeralAppServiceBrowserTest,
|
| - GarbageCollectInactiveApps) {
|
| - EphemeralAppService* ephemeral_service =
|
| - EphemeralAppService::Get(browser()->profile());
|
| - ASSERT_TRUE(ephemeral_service);
|
| - InitEphemeralAppCount(ephemeral_service);
|
| -
|
| - LoadApps();
|
| -
|
| - const base::Time time_now = base::Time::Now();
|
| - ExtensionPrefs* prefs = ExtensionPrefs::Get(browser()->profile());
|
| - ASSERT_TRUE(prefs);
|
| -
|
| - // Set launch time for an inactive app.
|
| - std::string inactive_app_id = app_ids_[0];
|
| - base::Time inactive_launch = time_now -
|
| - base::TimeDelta::FromDays(EphemeralAppService::kAppInactiveThreshold + 1);
|
| - prefs->SetLastLaunchTime(inactive_app_id, inactive_launch);
|
| -
|
| - // Set launch time for an active app.
|
| - std::string active_app_id = app_ids_[1];
|
| - base::Time active_launch = time_now -
|
| - base::TimeDelta::FromDays(EphemeralAppService::kAppKeepThreshold);
|
| - prefs->SetLastLaunchTime(active_app_id, active_launch);
|
| -
|
| - // Perform garbage collection.
|
| - extensions::TestExtensionRegistryObserver observer(
|
| - ExtensionRegistry::Get(browser()->profile()));
|
| - GarbageCollectEphemeralApps();
|
| - observer.WaitForExtensionUninstalled();
|
| -
|
| - ExtensionRegistry* registry = ExtensionRegistry::Get(profile());
|
| - ASSERT_TRUE(registry);
|
| - EXPECT_FALSE(registry->GetExtensionById(inactive_app_id,
|
| - ExtensionRegistry::EVERYTHING));
|
| - EXPECT_TRUE(
|
| - registry->GetExtensionById(active_app_id, ExtensionRegistry::EVERYTHING));
|
| -
|
| - EXPECT_EQ(1, ephemeral_service->ephemeral_app_count());
|
| -}
|
| -
|
| -// Verify that the count of ephemeral apps is maintained correctly.
|
| -IN_PROC_BROWSER_TEST_F(EphemeralAppServiceBrowserTest, EphemeralAppCount) {
|
| - EphemeralAppService* ephemeral_service =
|
| - EphemeralAppService::Get(browser()->profile());
|
| - ASSERT_TRUE(ephemeral_service);
|
| - InitEphemeralAppCount(ephemeral_service);
|
| -
|
| - // The count should not increase for regular installed apps.
|
| - EXPECT_TRUE(InstallPlatformApp("minimal"));
|
| - EXPECT_EQ(0, ephemeral_service->ephemeral_app_count());
|
| -
|
| - // The count should increase when an ephemeral app is added.
|
| - const Extension* app = InstallEphemeralApp(kMessagingReceiverApp);
|
| - ASSERT_TRUE(app);
|
| - EXPECT_EQ(1, ephemeral_service->ephemeral_app_count());
|
| -
|
| - // The count should remain constant if the ephemeral app is updated.
|
| - const std::string app_id = app->id();
|
| - app = UpdateEphemeralApp(
|
| - app_id, GetTestPath(kMessagingReceiverAppV2),
|
| - GetTestPath(kMessagingReceiverApp).ReplaceExtension(
|
| - FILE_PATH_LITERAL(".pem")));
|
| - ASSERT_TRUE(app);
|
| - EXPECT_EQ(1, ephemeral_service->ephemeral_app_count());
|
| -
|
| - // The count should decrease when an ephemeral app is promoted to a regular
|
| - // installed app.
|
| - PromoteEphemeralApp(app);
|
| - EXPECT_EQ(0, ephemeral_service->ephemeral_app_count());
|
| -}
|
| -
|
| -// Verify that the cache of ephemeral apps is correctly cleared. Running apps
|
| -// should not be removed.
|
| +// Verify that the cache of ephemeral apps is correctly cleared. All ephemeral
|
| +// apps should be removed.
|
| IN_PROC_BROWSER_TEST_F(EphemeralAppServiceBrowserTest, ClearCachedApps) {
|
| const Extension* running_app =
|
| InstallAndLaunchEphemeralApp(kMessagingReceiverApp);
|
| @@ -149,59 +27,19 @@ IN_PROC_BROWSER_TEST_F(EphemeralAppServiceBrowserTest, ClearCachedApps) {
|
| EphemeralAppService* ephemeral_service =
|
| EphemeralAppService::Get(browser()->profile());
|
| ASSERT_TRUE(ephemeral_service);
|
| - EXPECT_EQ(2, ephemeral_service->ephemeral_app_count());
|
| -
|
| - ephemeral_service->ClearCachedApps();
|
|
|
| ExtensionRegistry* registry = ExtensionRegistry::Get(profile());
|
| ASSERT_TRUE(registry);
|
| - EXPECT_FALSE(registry->GetExtensionById(inactive_app_id,
|
| - ExtensionRegistry::EVERYTHING));
|
| - EXPECT_TRUE(registry->GetExtensionById(running_app_id,
|
| - ExtensionRegistry::EVERYTHING));
|
| -
|
| - EXPECT_EQ(1, ephemeral_service->ephemeral_app_count());
|
| -}
|
| -
|
| -// Verify that the service will unload and disable ephemeral apps on startup.
|
| -IN_PROC_BROWSER_TEST_F(EphemeralAppServiceBrowserTest,
|
| - DisableEphemeralAppsOnStartup) {
|
| - const Extension* installed_app = InstallPlatformApp(kNotificationsTestApp);
|
| - const Extension* running_app =
|
| - InstallAndLaunchEphemeralApp(kMessagingReceiverApp);
|
| - const Extension* inactive_app = InstallEphemeralApp(kDispatchEventTestApp);
|
| - const Extension* disabled_app = InstallEphemeralApp(kFileSystemTestApp);
|
| - ASSERT_TRUE(installed_app);
|
| - ASSERT_TRUE(running_app);
|
| - ASSERT_TRUE(inactive_app);
|
| - ASSERT_TRUE(disabled_app);
|
| - DisableEphemeralApp(disabled_app, Extension::DISABLE_PERMISSIONS_INCREASE);
|
|
|
| - ExtensionRegistry* registry = ExtensionRegistry::Get(profile());
|
| - ASSERT_TRUE(registry);
|
| - EXPECT_TRUE(registry->enabled_extensions().Contains(installed_app->id()));
|
| - EXPECT_TRUE(registry->enabled_extensions().Contains(running_app->id()));
|
| - EXPECT_TRUE(registry->enabled_extensions().Contains(inactive_app->id()));
|
| - EXPECT_TRUE(registry->disabled_extensions().Contains(disabled_app->id()));
|
| + int extension_count = registry->GenerateInstalledExtensionsSet()->size();
|
|
|
| - DisableEphemeralAppsOnStartup();
|
| + ephemeral_service->ClearCachedApps();
|
|
|
| - // Verify that the inactive app is disabled.
|
| - EXPECT_TRUE(registry->enabled_extensions().Contains(installed_app->id()));
|
| - EXPECT_TRUE(registry->enabled_extensions().Contains(running_app->id()));
|
| - EXPECT_TRUE(registry->disabled_extensions().Contains(inactive_app->id()));
|
| - EXPECT_TRUE(registry->disabled_extensions().Contains(disabled_app->id()));
|
| + EXPECT_FALSE(registry->GetExtensionById(inactive_app_id,
|
| + ExtensionRegistry::EVERYTHING));
|
| + EXPECT_FALSE(registry->GetExtensionById(running_app_id,
|
| + ExtensionRegistry::EVERYTHING));
|
|
|
| - ExtensionPrefs* prefs = ExtensionPrefs::Get(profile());
|
| - ASSERT_TRUE(prefs);
|
| - EXPECT_FALSE(prefs->HasDisableReason(
|
| - installed_app->id(), Extension::DISABLE_INACTIVE_EPHEMERAL_APP));
|
| - EXPECT_FALSE(prefs->HasDisableReason(
|
| - running_app->id(), Extension::DISABLE_INACTIVE_EPHEMERAL_APP));
|
| - EXPECT_TRUE(prefs->HasDisableReason(
|
| - inactive_app->id(), Extension::DISABLE_INACTIVE_EPHEMERAL_APP));
|
| - EXPECT_TRUE(prefs->HasDisableReason(
|
| - disabled_app->id(), Extension::DISABLE_INACTIVE_EPHEMERAL_APP));
|
| - EXPECT_TRUE(prefs->HasDisableReason(
|
| - disabled_app->id(), Extension::DISABLE_PERMISSIONS_INCREASE));
|
| + int new_extension_count = registry->GenerateInstalledExtensionsSet()->size();
|
| + EXPECT_EQ(2, extension_count - new_extension_count);
|
| }
|
|
|