| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 <algorithm> | 5 #include <algorithm> |
| 6 #include <set> | 6 #include <set> |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/at_exit.h" | 9 #include "base/at_exit.h" |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 #include "chrome/browser/extensions/fake_safe_browsing_database_manager.h" | 53 #include "chrome/browser/extensions/fake_safe_browsing_database_manager.h" |
| 54 #include "chrome/browser/extensions/installed_loader.h" | 54 #include "chrome/browser/extensions/installed_loader.h" |
| 55 #include "chrome/browser/extensions/pack_extension_job.h" | 55 #include "chrome/browser/extensions/pack_extension_job.h" |
| 56 #include "chrome/browser/extensions/pending_extension_info.h" | 56 #include "chrome/browser/extensions/pending_extension_info.h" |
| 57 #include "chrome/browser/extensions/pending_extension_manager.h" | 57 #include "chrome/browser/extensions/pending_extension_manager.h" |
| 58 #include "chrome/browser/extensions/test_blacklist.h" | 58 #include "chrome/browser/extensions/test_blacklist.h" |
| 59 #include "chrome/browser/extensions/test_extension_system.h" | 59 #include "chrome/browser/extensions/test_extension_system.h" |
| 60 #include "chrome/browser/extensions/unpacked_installer.h" | 60 #include "chrome/browser/extensions/unpacked_installer.h" |
| 61 #include "chrome/browser/extensions/updater/extension_updater.h" | 61 #include "chrome/browser/extensions/updater/extension_updater.h" |
| 62 #include "chrome/browser/prefs/pref_service_syncable.h" | 62 #include "chrome/browser/prefs/pref_service_syncable.h" |
| 63 #include "chrome/browser/supervised_user/supervised_user_service.h" | |
| 64 #include "chrome/browser/supervised_user/supervised_user_service_factory.h" | |
| 65 #include "chrome/browser/sync/profile_sync_service.h" | 63 #include "chrome/browser/sync/profile_sync_service.h" |
| 66 #include "chrome/browser/sync/profile_sync_service_factory.h" | 64 #include "chrome/browser/sync/profile_sync_service_factory.h" |
| 67 #include "chrome/common/chrome_constants.h" | 65 #include "chrome/common/chrome_constants.h" |
| 68 #include "chrome/common/chrome_switches.h" | 66 #include "chrome/common/chrome_switches.h" |
| 69 #include "chrome/common/extensions/api/plugins/plugins_handler.h" | 67 #include "chrome/common/extensions/api/plugins/plugins_handler.h" |
| 70 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" | 68 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" |
| 71 #include "chrome/common/extensions/manifest_handlers/content_scripts_handler.h" | 69 #include "chrome/common/extensions/manifest_handlers/content_scripts_handler.h" |
| 72 #include "chrome/common/extensions/manifest_url_handler.h" | 70 #include "chrome/common/extensions/manifest_url_handler.h" |
| 73 #include "chrome/common/pref_names.h" | 71 #include "chrome/common/pref_names.h" |
| 74 #include "chrome/common/url_constants.h" | 72 #include "chrome/common/url_constants.h" |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 #include "sync/api/sync_error_factory.h" | 121 #include "sync/api/sync_error_factory.h" |
| 124 #include "sync/api/sync_error_factory_mock.h" | 122 #include "sync/api/sync_error_factory_mock.h" |
| 125 #include "sync/api/syncable_service.h" | 123 #include "sync/api/syncable_service.h" |
| 126 #include "sync/protocol/app_specifics.pb.h" | 124 #include "sync/protocol/app_specifics.pb.h" |
| 127 #include "sync/protocol/extension_specifics.pb.h" | 125 #include "sync/protocol/extension_specifics.pb.h" |
| 128 #include "sync/protocol/sync.pb.h" | 126 #include "sync/protocol/sync.pb.h" |
| 129 #include "testing/gtest/include/gtest/gtest.h" | 127 #include "testing/gtest/include/gtest/gtest.h" |
| 130 #include "testing/platform_test.h" | 128 #include "testing/platform_test.h" |
| 131 #include "url/gurl.h" | 129 #include "url/gurl.h" |
| 132 | 130 |
| 131 #if defined(ENABLE_MANAGED_USERS) |
| 132 #include "chrome/browser/supervised_user/supervised_user_service.h" |
| 133 #include "chrome/browser/supervised_user/supervised_user_service_factory.h" |
| 134 #endif |
| 135 |
| 133 #if defined(OS_CHROMEOS) | 136 #if defined(OS_CHROMEOS) |
| 134 #include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" | 137 #include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" |
| 135 #include "chrome/browser/chromeos/settings/cros_settings.h" | 138 #include "chrome/browser/chromeos/settings/cros_settings.h" |
| 136 #include "chrome/browser/chromeos/settings/device_settings_service.h" | 139 #include "chrome/browser/chromeos/settings/device_settings_service.h" |
| 137 #endif | 140 #endif |
| 138 | 141 |
| 139 // The blacklist tests rely on safe browsing. | 142 // The blacklist tests rely on safe browsing. |
| 140 #if defined(FULL_SAFE_BROWSING) || defined(MOBILE_SAFE_BROWSING) | 143 #if defined(FULL_SAFE_BROWSING) || defined(MOBILE_SAFE_BROWSING) |
| 141 #define ENABLE_BLACKLIST_TESTS | 144 #define ENABLE_BLACKLIST_TESTS |
| 142 #endif | 145 #endif |
| (...skipping 5961 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6104 const extensions::PendingExtensionInfo* info; | 6107 const extensions::PendingExtensionInfo* info; |
| 6105 EXPECT_TRUE( | 6108 EXPECT_TRUE( |
| 6106 (info = service()->pending_extension_manager()->GetById(good_crx))); | 6109 (info = service()->pending_extension_manager()->GetById(good_crx))); |
| 6107 EXPECT_EQ(ext_specifics->update_url(), info->update_url().spec()); | 6110 EXPECT_EQ(ext_specifics->update_url(), info->update_url().spec()); |
| 6108 EXPECT_TRUE(info->is_from_sync()); | 6111 EXPECT_TRUE(info->is_from_sync()); |
| 6109 EXPECT_TRUE(info->install_silently()); | 6112 EXPECT_TRUE(info->install_silently()); |
| 6110 EXPECT_EQ(Manifest::INTERNAL, info->install_source()); | 6113 EXPECT_EQ(Manifest::INTERNAL, info->install_source()); |
| 6111 // TODO(akalin): Figure out a way to test |info.ShouldAllowInstall()|. | 6114 // TODO(akalin): Figure out a way to test |info.ShouldAllowInstall()|. |
| 6112 } | 6115 } |
| 6113 | 6116 |
| 6117 #if defined(ENABLE_MANAGED_USERS) |
| 6114 TEST_F(ExtensionServiceTest, SupervisedUser_InstallOnlyAllowedByCustodian) { | 6118 TEST_F(ExtensionServiceTest, SupervisedUser_InstallOnlyAllowedByCustodian) { |
| 6115 ExtensionServiceInitParams params = CreateDefaultInitParams(); | 6119 ExtensionServiceInitParams params = CreateDefaultInitParams(); |
| 6116 params.profile_is_supervised = true; | 6120 params.profile_is_supervised = true; |
| 6117 InitializeExtensionService(params); | 6121 InitializeExtensionService(params); |
| 6118 | 6122 |
| 6119 SupervisedUserService* supervised_user_service = | 6123 SupervisedUserService* supervised_user_service = |
| 6120 SupervisedUserServiceFactory::GetForProfile(profile()); | 6124 SupervisedUserServiceFactory::GetForProfile(profile()); |
| 6121 GetManagementPolicy()->RegisterProvider(supervised_user_service); | 6125 GetManagementPolicy()->RegisterProvider(supervised_user_service); |
| 6122 | 6126 |
| 6123 base::FilePath path1 = data_dir().AppendASCII("good.crx"); | 6127 base::FilePath path1 = data_dir().AppendASCII("good.crx"); |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6258 extension_sync_service()->ProcessSyncChanges(FROM_HERE, change_list); | 6262 extension_sync_service()->ProcessSyncChanges(FROM_HERE, change_list); |
| 6259 | 6263 |
| 6260 // Uninstalling the extension without installed_by_custodian should have been | 6264 // Uninstalling the extension without installed_by_custodian should have been |
| 6261 // blocked by policy, so it should still be there. | 6265 // blocked by policy, so it should still be there. |
| 6262 EXPECT_TRUE(registry()->enabled_extensions().Contains(extension_ids[0])); | 6266 EXPECT_TRUE(registry()->enabled_extensions().Contains(extension_ids[0])); |
| 6263 | 6267 |
| 6264 // But installed_by_custodian should result in bypassing the policy check. | 6268 // But installed_by_custodian should result in bypassing the policy check. |
| 6265 EXPECT_FALSE( | 6269 EXPECT_FALSE( |
| 6266 registry()->GenerateInstalledExtensionsSet()->Contains(extension_ids[1])); | 6270 registry()->GenerateInstalledExtensionsSet()->Contains(extension_ids[1])); |
| 6267 } | 6271 } |
| 6272 #endif // defined(ENABLE_MANAGED_USERS) |
| 6268 | 6273 |
| 6269 TEST_F(ExtensionServiceTest, InstallPriorityExternalUpdateUrl) { | 6274 TEST_F(ExtensionServiceTest, InstallPriorityExternalUpdateUrl) { |
| 6270 InitializeEmptyExtensionService(); | 6275 InitializeEmptyExtensionService(); |
| 6271 | 6276 |
| 6272 base::FilePath path = data_dir().AppendASCII("good.crx"); | 6277 base::FilePath path = data_dir().AppendASCII("good.crx"); |
| 6273 InstallCRX(path, INSTALL_NEW); | 6278 InstallCRX(path, INSTALL_NEW); |
| 6274 ValidatePrefKeyCount(1u); | 6279 ValidatePrefKeyCount(1u); |
| 6275 ValidateIntegerPref(good_crx, "state", Extension::ENABLED); | 6280 ValidateIntegerPref(good_crx, "state", Extension::ENABLED); |
| 6276 ValidateIntegerPref(good_crx, "location", Manifest::INTERNAL); | 6281 ValidateIntegerPref(good_crx, "location", Manifest::INTERNAL); |
| 6277 | 6282 |
| (...skipping 866 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7144 | 7149 |
| 7145 service()->Observe(chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED, | 7150 service()->Observe(chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED, |
| 7146 content::Source<Profile>(profile()), | 7151 content::Source<Profile>(profile()), |
| 7147 content::NotificationService::NoDetails()); | 7152 content::NotificationService::NoDetails()); |
| 7148 EXPECT_EQ(UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN, unloaded_reason_); | 7153 EXPECT_EQ(UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN, unloaded_reason_); |
| 7149 EXPECT_EQ(0u, registry()->enabled_extensions().size()); | 7154 EXPECT_EQ(0u, registry()->enabled_extensions().size()); |
| 7150 EXPECT_EQ(0u, registry()->disabled_extensions().size()); | 7155 EXPECT_EQ(0u, registry()->disabled_extensions().size()); |
| 7151 EXPECT_EQ(0u, registry()->terminated_extensions().size()); | 7156 EXPECT_EQ(0u, registry()->terminated_extensions().size()); |
| 7152 EXPECT_EQ(0u, registry()->blacklisted_extensions().size()); | 7157 EXPECT_EQ(0u, registry()->blacklisted_extensions().size()); |
| 7153 } | 7158 } |
| OLD | NEW |