| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "chrome/browser/apps/ephemeral_app_browsertest.h" | 7 #include "chrome/browser/apps/ephemeral_app_browsertest.h" |
| 8 #include "chrome/browser/apps/ephemeral_app_service.h" | 8 #include "chrome/browser/apps/ephemeral_app_service.h" |
| 9 #include "chrome/browser/extensions/extension_service.h" | 9 #include "chrome/browser/extensions/extension_service.h" |
| 10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| 11 #include "content/public/test/test_utils.h" | 11 #include "content/public/test/test_utils.h" |
| 12 #include "extensions/browser/extension_prefs.h" | 12 #include "extensions/browser/extension_prefs.h" |
| 13 #include "extensions/browser/extension_registry.h" |
| 13 #include "extensions/browser/extension_system.h" | 14 #include "extensions/browser/extension_system.h" |
| 14 #include "extensions/common/manifest.h" | 15 #include "extensions/common/manifest.h" |
| 15 | 16 |
| 16 using extensions::Extension; | 17 using extensions::Extension; |
| 17 using extensions::ExtensionPrefs; | 18 using extensions::ExtensionPrefs; |
| 19 using extensions::ExtensionRegistry; |
| 18 using extensions::ExtensionSystem; | 20 using extensions::ExtensionSystem; |
| 19 | 21 |
| 20 namespace { | 22 namespace { |
| 21 | 23 |
| 22 const int kNumTestApps = 2; | 24 const int kNumTestApps = 2; |
| 23 const char* kTestApps[] = { | 25 const char* kTestApps[] = { |
| 24 "app_window/generic", | 26 "app_window/generic", |
| 25 "minimal" | 27 "minimal" |
| 26 }; | 28 }; |
| 27 | 29 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 43 EphemeralAppService* ephemeral_service = EphemeralAppService::Get( | 45 EphemeralAppService* ephemeral_service = EphemeralAppService::Get( |
| 44 browser()->profile()); | 46 browser()->profile()); |
| 45 ASSERT_TRUE(ephemeral_service); | 47 ASSERT_TRUE(ephemeral_service); |
| 46 ephemeral_service->GarbageCollectApps(); | 48 ephemeral_service->GarbageCollectApps(); |
| 47 } | 49 } |
| 48 | 50 |
| 49 void InitEphemeralAppCount(EphemeralAppService* ephemeral_service) { | 51 void InitEphemeralAppCount(EphemeralAppService* ephemeral_service) { |
| 50 ephemeral_service->InitEphemeralAppCount(); | 52 ephemeral_service->InitEphemeralAppCount(); |
| 51 } | 53 } |
| 52 | 54 |
| 55 void UnloadEphemeralAppsOnStartup() { |
| 56 EphemeralAppService* ephemeral_service = |
| 57 EphemeralAppService::Get(browser()->profile()); |
| 58 ASSERT_TRUE(ephemeral_service); |
| 59 ephemeral_service->UnloadEphemeralAppsOnStartup(); |
| 60 } |
| 61 |
| 53 std::vector<std::string> app_ids_; | 62 std::vector<std::string> app_ids_; |
| 54 }; | 63 }; |
| 55 | 64 |
| 56 // Verifies that inactive ephemeral apps are uninstalled and active apps are | 65 // Verifies that inactive ephemeral apps are uninstalled and active apps are |
| 57 // not removed. Extensive testing of the ephemeral app cache's replacement | 66 // not removed. Extensive testing of the ephemeral app cache's replacement |
| 58 // policies is done in the unit tests for EphemeralAppService. This is more | 67 // policies is done in the unit tests for EphemeralAppService. This is more |
| 59 // like an integration test. | 68 // like an integration test. |
| 60 IN_PROC_BROWSER_TEST_F(EphemeralAppServiceBrowserTest, | 69 IN_PROC_BROWSER_TEST_F(EphemeralAppServiceBrowserTest, |
| 61 GarbageCollectInactiveApps) { | 70 GarbageCollectInactiveApps) { |
| 62 EphemeralAppService* ephemeral_service = | 71 EphemeralAppService* ephemeral_service = |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 122 GetTestPath(kMessagingReceiverApp).ReplaceExtension( | 131 GetTestPath(kMessagingReceiverApp).ReplaceExtension( |
| 123 FILE_PATH_LITERAL(".pem"))); | 132 FILE_PATH_LITERAL(".pem"))); |
| 124 ASSERT_TRUE(app); | 133 ASSERT_TRUE(app); |
| 125 EXPECT_EQ(1, ephemeral_service->ephemeral_app_count()); | 134 EXPECT_EQ(1, ephemeral_service->ephemeral_app_count()); |
| 126 | 135 |
| 127 // The count should decrease when an ephemeral app is promoted to a regular | 136 // The count should decrease when an ephemeral app is promoted to a regular |
| 128 // installed app. | 137 // installed app. |
| 129 PromoteEphemeralApp(app); | 138 PromoteEphemeralApp(app); |
| 130 EXPECT_EQ(0, ephemeral_service->ephemeral_app_count()); | 139 EXPECT_EQ(0, ephemeral_service->ephemeral_app_count()); |
| 131 } | 140 } |
| 141 |
| 142 // Verify that the service will unload and disable ephemeral apps on startup. |
| 143 IN_PROC_BROWSER_TEST_F(EphemeralAppServiceBrowserTest, |
| 144 UnloadEphemeralAppsOnStartup) { |
| 145 const Extension* installed_app = InstallPlatformApp(kNotificationsTestApp); |
| 146 const Extension* running_app = |
| 147 InstallAndLaunchEphemeralApp(kMessagingReceiverApp); |
| 148 const Extension* inactive_app = InstallEphemeralApp(kDispatchEventTestApp); |
| 149 ASSERT_TRUE(installed_app); |
| 150 ASSERT_TRUE(running_app); |
| 151 ASSERT_TRUE(inactive_app); |
| 152 |
| 153 ExtensionRegistry* registry = ExtensionRegistry::Get(profile()); |
| 154 DCHECK(registry); |
| 155 EXPECT_TRUE(registry->enabled_extensions().Contains(installed_app->id())); |
| 156 EXPECT_TRUE(registry->enabled_extensions().Contains(running_app->id())); |
| 157 EXPECT_TRUE(registry->enabled_extensions().Contains(inactive_app->id())); |
| 158 |
| 159 UnloadEphemeralAppsOnStartup(); |
| 160 |
| 161 // Verify that the inactive app is disabled. |
| 162 EXPECT_TRUE(registry->enabled_extensions().Contains(installed_app->id())); |
| 163 EXPECT_TRUE(registry->enabled_extensions().Contains(running_app->id())); |
| 164 EXPECT_TRUE(registry->disabled_extensions().Contains(inactive_app->id())); |
| 165 } |
| OLD | NEW |