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 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
65 #include "chrome/browser/policy/profile_policy_connector.h" | 65 #include "chrome/browser/policy/profile_policy_connector.h" |
66 #include "chrome/browser/policy/profile_policy_connector_factory.h" | 66 #include "chrome/browser/policy/profile_policy_connector_factory.h" |
67 #include "chrome/browser/prefs/pref_service_syncable.h" | 67 #include "chrome/browser/prefs/pref_service_syncable.h" |
68 #include "chrome/browser/sync/profile_sync_service.h" | 68 #include "chrome/browser/sync/profile_sync_service.h" |
69 #include "chrome/browser/sync/profile_sync_service_factory.h" | 69 #include "chrome/browser/sync/profile_sync_service_factory.h" |
70 #include "chrome/common/chrome_constants.h" | 70 #include "chrome/common/chrome_constants.h" |
71 #include "chrome/common/chrome_switches.h" | 71 #include "chrome/common/chrome_switches.h" |
72 #include "chrome/common/extensions/api/plugins/plugins_handler.h" | 72 #include "chrome/common/extensions/api/plugins/plugins_handler.h" |
73 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" | 73 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" |
74 #include "chrome/common/extensions/manifest_handlers/content_scripts_handler.h" | 74 #include "chrome/common/extensions/manifest_handlers/content_scripts_handler.h" |
75 #include "chrome/common/extensions/sync_helper.h" | |
75 #include "chrome/common/pref_names.h" | 76 #include "chrome/common/pref_names.h" |
76 #include "chrome/common/url_constants.h" | 77 #include "chrome/common/url_constants.h" |
77 #include "chrome/test/base/scoped_browser_locale.h" | 78 #include "chrome/test/base/scoped_browser_locale.h" |
78 #include "chrome/test/base/testing_pref_service_syncable.h" | 79 #include "chrome/test/base/testing_pref_service_syncable.h" |
79 #include "chrome/test/base/testing_profile.h" | 80 #include "chrome/test/base/testing_profile.h" |
80 #include "components/crx_file/id_util.h" | 81 #include "components/crx_file/id_util.h" |
81 #include "components/pref_registry/pref_registry_syncable.h" | 82 #include "components/pref_registry/pref_registry_syncable.h" |
82 #include "content/public/browser/dom_storage_context.h" | 83 #include "content/public/browser/dom_storage_context.h" |
83 #include "content/public/browser/gpu_data_manager.h" | 84 #include "content/public/browser/gpu_data_manager.h" |
84 #include "content/public/browser/indexed_db_context.h" | 85 #include "content/public/browser/indexed_db_context.h" |
(...skipping 1056 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1141 | 1142 |
1142 SetPref(extension_id, pref_path, list_value, msg); | 1143 SetPref(extension_id, pref_path, list_value, msg); |
1143 } | 1144 } |
1144 | 1145 |
1145 void InitPluginService() { | 1146 void InitPluginService() { |
1146 #if defined(ENABLE_PLUGINS) | 1147 #if defined(ENABLE_PLUGINS) |
1147 PluginService::GetInstance()->Init(); | 1148 PluginService::GetInstance()->Init(); |
1148 #endif | 1149 #endif |
1149 } | 1150 } |
1150 | 1151 |
1151 void InitializeExtensionSyncService() { | |
Marc Treib
2015/07/21 10:54:00
Not necessary anymore, now that the ExtensionSyncS
not at google - send to devlin
2015/07/21 13:43:30
wow...
| |
1152 extension_sync_service_.reset(new ExtensionSyncService( | |
1153 profile(), ExtensionPrefs::Get(browser_context()), service())); | |
1154 } | |
1155 | |
1156 void InitializeEmptyExtensionServiceWithTestingPrefs() { | 1152 void InitializeEmptyExtensionServiceWithTestingPrefs() { |
1157 ExtensionServiceTestBase::ExtensionServiceInitParams params = | 1153 ExtensionServiceTestBase::ExtensionServiceInitParams params = |
1158 CreateDefaultInitParams(); | 1154 CreateDefaultInitParams(); |
1159 params.pref_file = base::FilePath(); | 1155 params.pref_file = base::FilePath(); |
1160 InitializeExtensionService(params); | 1156 InitializeExtensionService(params); |
1161 } | 1157 } |
1162 | 1158 |
1163 extensions::ManagementPolicy* GetManagementPolicy() { | 1159 extensions::ManagementPolicy* GetManagementPolicy() { |
1164 return ExtensionSystem::Get(browser_context())->management_policy(); | 1160 return ExtensionSystem::Get(browser_context())->management_policy(); |
1165 } | 1161 } |
1166 | 1162 |
1167 ExtensionSyncService* extension_sync_service() { | 1163 ExtensionSyncService* extension_sync_service() { |
1168 return extension_sync_service_.get(); | 1164 return ExtensionSyncService::Get(profile()); |
1169 } | 1165 } |
1170 | 1166 |
1171 protected: | 1167 protected: |
1172 typedef extensions::ExtensionManagementPrefUpdater<TestingPrefServiceSyncable> | 1168 typedef extensions::ExtensionManagementPrefUpdater<TestingPrefServiceSyncable> |
1173 ManagementPrefUpdater; | 1169 ManagementPrefUpdater; |
1174 scoped_ptr<ExtensionSyncService> extension_sync_service_; | |
1175 extensions::ExtensionList loaded_; | 1170 extensions::ExtensionList loaded_; |
1176 std::string unloaded_id_; | 1171 std::string unloaded_id_; |
1177 UnloadedExtensionInfo::Reason unloaded_reason_; | 1172 UnloadedExtensionInfo::Reason unloaded_reason_; |
1178 const Extension* installed_; | 1173 const Extension* installed_; |
1179 bool was_update_; | 1174 bool was_update_; |
1180 std::string old_name_; | 1175 std::string old_name_; |
1181 FeatureSwitch::ScopedOverride override_external_install_prompt_; | 1176 FeatureSwitch::ScopedOverride override_external_install_prompt_; |
1182 | 1177 |
1183 private: | 1178 private: |
1184 // Create a CrxInstaller and install the CRX file. | 1179 // Create a CrxInstaller and install the CRX file. |
(...skipping 4604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5789 // Reload all extensions, and make sure it comes back. | 5784 // Reload all extensions, and make sure it comes back. |
5790 std::string extension_id = (*registry()->enabled_extensions().begin())->id(); | 5785 std::string extension_id = (*registry()->enabled_extensions().begin())->id(); |
5791 loaded_.clear(); | 5786 loaded_.clear(); |
5792 service()->ReloadExtensionsForTest(); | 5787 service()->ReloadExtensionsForTest(); |
5793 ASSERT_EQ(1u, registry()->enabled_extensions().size()); | 5788 ASSERT_EQ(1u, registry()->enabled_extensions().size()); |
5794 EXPECT_EQ(extension_id, (*registry()->enabled_extensions().begin())->id()); | 5789 EXPECT_EQ(extension_id, (*registry()->enabled_extensions().begin())->id()); |
5795 } | 5790 } |
5796 | 5791 |
5797 TEST_F(ExtensionServiceTest, DeferredSyncStartupPreInstalledComponent) { | 5792 TEST_F(ExtensionServiceTest, DeferredSyncStartupPreInstalledComponent) { |
5798 InitializeEmptyExtensionService(); | 5793 InitializeEmptyExtensionService(); |
5799 InitializeExtensionSyncService(); | |
5800 | 5794 |
5801 bool flare_was_called = false; | 5795 bool flare_was_called = false; |
5802 syncer::ModelType triggered_type(syncer::UNSPECIFIED); | 5796 syncer::ModelType triggered_type(syncer::UNSPECIFIED); |
5803 base::WeakPtrFactory<ExtensionServiceTest> factory(this); | 5797 base::WeakPtrFactory<ExtensionServiceTest> factory(this); |
5804 extension_sync_service()->SetSyncStartFlare( | 5798 extension_sync_service()->SetSyncStartFlare( |
5805 base::Bind(&ExtensionServiceTest::MockSyncStartFlare, | 5799 base::Bind(&ExtensionServiceTest::MockSyncStartFlare, |
5806 factory.GetWeakPtr(), | 5800 factory.GetWeakPtr(), |
5807 &flare_was_called, // Safe due to WeakPtrFactory scope. | 5801 &flare_was_called, // Safe due to WeakPtrFactory scope. |
5808 &triggered_type)); // Safe due to WeakPtrFactory scope. | 5802 &triggered_type)); // Safe due to WeakPtrFactory scope. |
5809 | 5803 |
5810 // Install a component extension. | 5804 // Install a component extension. |
5811 std::string manifest; | 5805 std::string manifest; |
5812 ASSERT_TRUE(base::ReadFileToString( | 5806 ASSERT_TRUE(base::ReadFileToString( |
5813 good0_path().Append(extensions::kManifestFilename), &manifest)); | 5807 good0_path().Append(extensions::kManifestFilename), &manifest)); |
5814 service()->component_loader()->Add(manifest, good0_path()); | 5808 service()->component_loader()->Add(manifest, good0_path()); |
5815 ASSERT_FALSE(service()->is_ready()); | 5809 ASSERT_FALSE(service()->is_ready()); |
5816 service()->Init(); | 5810 service()->Init(); |
5817 ASSERT_TRUE(service()->is_ready()); | 5811 ASSERT_TRUE(service()->is_ready()); |
5818 | 5812 |
5819 // Extensions added before service is_ready() don't trigger sync startup. | 5813 // Extensions added before service is_ready() don't trigger sync startup. |
5820 EXPECT_FALSE(flare_was_called); | 5814 EXPECT_FALSE(flare_was_called); |
5821 ASSERT_EQ(syncer::UNSPECIFIED, triggered_type); | 5815 ASSERT_EQ(syncer::UNSPECIFIED, triggered_type); |
5822 } | 5816 } |
5823 | 5817 |
5824 TEST_F(ExtensionServiceTest, DeferredSyncStartupPreInstalledNormal) { | 5818 TEST_F(ExtensionServiceTest, DeferredSyncStartupPreInstalledNormal) { |
5825 InitializeGoodInstalledExtensionService(); | 5819 InitializeGoodInstalledExtensionService(); |
5826 InitializeExtensionSyncService(); | |
5827 | 5820 |
5828 bool flare_was_called = false; | 5821 bool flare_was_called = false; |
5829 syncer::ModelType triggered_type(syncer::UNSPECIFIED); | 5822 syncer::ModelType triggered_type(syncer::UNSPECIFIED); |
5830 base::WeakPtrFactory<ExtensionServiceTest> factory(this); | 5823 base::WeakPtrFactory<ExtensionServiceTest> factory(this); |
5831 extension_sync_service()->SetSyncStartFlare( | 5824 extension_sync_service()->SetSyncStartFlare( |
5832 base::Bind(&ExtensionServiceTest::MockSyncStartFlare, | 5825 base::Bind(&ExtensionServiceTest::MockSyncStartFlare, |
5833 factory.GetWeakPtr(), | 5826 factory.GetWeakPtr(), |
5834 &flare_was_called, // Safe due to WeakPtrFactory scope. | 5827 &flare_was_called, // Safe due to WeakPtrFactory scope. |
5835 &triggered_type)); // Safe due to WeakPtrFactory scope. | 5828 &triggered_type)); // Safe due to WeakPtrFactory scope. |
5836 | 5829 |
5837 ASSERT_FALSE(service()->is_ready()); | 5830 ASSERT_FALSE(service()->is_ready()); |
5838 service()->Init(); | 5831 service()->Init(); |
5839 ASSERT_EQ(3u, loaded_.size()); | 5832 ASSERT_EQ(3u, loaded_.size()); |
5840 ASSERT_TRUE(service()->is_ready()); | 5833 ASSERT_TRUE(service()->is_ready()); |
5841 | 5834 |
5842 // Extensions added before service is_ready() don't trigger sync startup. | 5835 // Extensions added before service is_ready() don't trigger sync startup. |
5843 EXPECT_FALSE(flare_was_called); | 5836 EXPECT_FALSE(flare_was_called); |
5844 ASSERT_EQ(syncer::UNSPECIFIED, triggered_type); | 5837 ASSERT_EQ(syncer::UNSPECIFIED, triggered_type); |
5845 } | 5838 } |
5846 | 5839 |
5847 TEST_F(ExtensionServiceTest, DeferredSyncStartupOnInstall) { | 5840 TEST_F(ExtensionServiceTest, DeferredSyncStartupOnInstall) { |
5848 InitializeEmptyExtensionService(); | 5841 InitializeEmptyExtensionService(); |
5849 InitializeExtensionSyncService(); | |
5850 service()->Init(); | 5842 service()->Init(); |
5851 ASSERT_TRUE(service()->is_ready()); | 5843 ASSERT_TRUE(service()->is_ready()); |
5852 | 5844 |
5853 bool flare_was_called = false; | 5845 bool flare_was_called = false; |
5854 syncer::ModelType triggered_type(syncer::UNSPECIFIED); | 5846 syncer::ModelType triggered_type(syncer::UNSPECIFIED); |
5855 base::WeakPtrFactory<ExtensionServiceTest> factory(this); | 5847 base::WeakPtrFactory<ExtensionServiceTest> factory(this); |
5856 extension_sync_service()->SetSyncStartFlare( | 5848 extension_sync_service()->SetSyncStartFlare( |
5857 base::Bind(&ExtensionServiceTest::MockSyncStartFlare, | 5849 base::Bind(&ExtensionServiceTest::MockSyncStartFlare, |
5858 factory.GetWeakPtr(), | 5850 factory.GetWeakPtr(), |
5859 &flare_was_called, // Safe due to WeakPtrFactory scope. | 5851 &flare_was_called, // Safe due to WeakPtrFactory scope. |
(...skipping 23 matching lines...) Expand all Loading... | |
5883 } | 5875 } |
5884 | 5876 |
5885 TEST_F(ExtensionServiceTest, DisableExtensionFromSync) { | 5877 TEST_F(ExtensionServiceTest, DisableExtensionFromSync) { |
5886 // Start the extensions service with one external extension already installed. | 5878 // Start the extensions service with one external extension already installed. |
5887 base::FilePath source_install_dir = | 5879 base::FilePath source_install_dir = |
5888 data_dir().AppendASCII("good").AppendASCII("Extensions"); | 5880 data_dir().AppendASCII("good").AppendASCII("Extensions"); |
5889 base::FilePath pref_path = | 5881 base::FilePath pref_path = |
5890 source_install_dir.DirName().Append(chrome::kPreferencesFilename); | 5882 source_install_dir.DirName().Append(chrome::kPreferencesFilename); |
5891 | 5883 |
5892 InitializeInstalledExtensionService(pref_path, source_install_dir); | 5884 InitializeInstalledExtensionService(pref_path, source_install_dir); |
5893 InitializeExtensionSyncService(); | |
5894 | 5885 |
5895 // The user has enabled sync. | 5886 // The user has enabled sync. |
5896 ProfileSyncService* sync_service = | 5887 ProfileSyncService* sync_service = |
5897 ProfileSyncServiceFactory::GetForProfile(profile()); | 5888 ProfileSyncServiceFactory::GetForProfile(profile()); |
5898 sync_service->SetSyncSetupCompleted(); | 5889 sync_service->SetSyncSetupCompleted(); |
5899 | 5890 |
5900 service()->Init(); | 5891 service()->Init(); |
5901 ASSERT_TRUE(service()->is_ready()); | 5892 ASSERT_TRUE(service()->is_ready()); |
5902 | 5893 |
5903 ASSERT_EQ(3u, loaded_.size()); | 5894 ASSERT_EQ(3u, loaded_.size()); |
5904 | 5895 |
5905 // We start enabled. | 5896 // We start enabled. |
5906 const Extension* extension = service()->GetExtensionById(good0, true); | 5897 const Extension* extension = service()->GetExtensionById(good0, true); |
5907 ASSERT_TRUE(extension); | 5898 ASSERT_TRUE(extension); |
5908 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); | 5899 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); |
5909 | 5900 |
5901 // Sync starts up. | |
5902 extension_sync_service()->MergeDataAndStartSyncing( | |
5903 syncer::EXTENSIONS, | |
5904 syncer::SyncDataList(), | |
5905 make_scoped_ptr(new syncer::FakeSyncChangeProcessor), | |
5906 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | |
5907 | |
5910 // Then sync data arrives telling us to disable |good0|. | 5908 // Then sync data arrives telling us to disable |good0|. |
5911 ExtensionSyncData disable_good_crx(*extension, false, | 5909 ExtensionSyncData disable_good_crx(*extension, false, |
5912 Extension::DISABLE_USER_ACTION, false, | 5910 Extension::DISABLE_USER_ACTION, false, |
5913 false, ExtensionSyncData::BOOLEAN_UNSET); | 5911 false, ExtensionSyncData::BOOLEAN_UNSET); |
5914 syncer::SyncDataList sync_data; | 5912 syncer::SyncChange sync_change(FROM_HERE, |
5915 sync_data.push_back(disable_good_crx.GetSyncData()); | 5913 syncer::SyncChange::ACTION_UPDATE, |
5916 extension_sync_service()->MergeDataAndStartSyncing( | 5914 disable_good_crx.GetSyncData()); |
5917 syncer::EXTENSIONS, | 5915 syncer::SyncChangeList list(1, sync_change); |
5918 sync_data, | 5916 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); |
5919 scoped_ptr<syncer::SyncChangeProcessor>( | 5917 |
5920 new syncer::FakeSyncChangeProcessor), | |
5921 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | |
5922 ASSERT_FALSE(service()->IsExtensionEnabled(good0)); | 5918 ASSERT_FALSE(service()->IsExtensionEnabled(good0)); |
5923 } | 5919 } |
5924 | 5920 |
5925 TEST_F(ExtensionServiceTest, DontDisableExtensionWithPendingEnableFromSync) { | 5921 TEST_F(ExtensionServiceTest, IgnoreSyncChangesWhenLocalStateIsMoreRecent) { |
5926 // Start the extensions service with one external extension already installed. | 5922 // Start the extension service with three extensions already installed. |
5927 base::FilePath source_install_dir = | 5923 base::FilePath source_install_dir = |
5928 data_dir().AppendASCII("good").AppendASCII("Extensions"); | 5924 data_dir().AppendASCII("good").AppendASCII("Extensions"); |
5929 base::FilePath pref_path = | 5925 base::FilePath pref_path = |
5930 source_install_dir.DirName().Append(chrome::kPreferencesFilename); | 5926 source_install_dir.DirName().Append(chrome::kPreferencesFilename); |
5931 | 5927 |
5932 InitializeInstalledExtensionService(pref_path, source_install_dir); | 5928 InitializeInstalledExtensionService(pref_path, source_install_dir); |
5933 InitializeExtensionSyncService(); | |
5934 | 5929 |
5935 // The user has enabled sync. | 5930 // The user has enabled sync. |
5936 ProfileSyncService* sync_service = | 5931 ProfileSyncService* sync_service = |
5937 ProfileSyncServiceFactory::GetForProfile(profile()); | 5932 ProfileSyncServiceFactory::GetForProfile(profile()); |
5938 sync_service->SetSyncSetupCompleted(); | 5933 sync_service->SetSyncSetupCompleted(); |
5939 | 5934 |
5940 service()->Init(); | 5935 service()->Init(); |
5941 ASSERT_TRUE(service()->is_ready()); | 5936 ASSERT_TRUE(service()->is_ready()); |
5942 ASSERT_EQ(3u, loaded_.size()); | 5937 ASSERT_EQ(3u, loaded_.size()); |
5943 | 5938 |
5944 const Extension* extension = service()->GetExtensionById(good0, true); | |
5945 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); | 5939 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); |
5940 ASSERT_TRUE(service()->IsExtensionEnabled(good2)); | |
5946 | 5941 |
5947 // Disable extension before first sync data arrives. | 5942 // Disable and re-enable good0 before first sync data arrives. |
5948 service()->DisableExtension(good0, Extension::DISABLE_USER_ACTION); | 5943 service()->DisableExtension(good0, Extension::DISABLE_USER_ACTION); |
5949 ASSERT_FALSE(service()->IsExtensionEnabled(good0)); | 5944 ASSERT_FALSE(service()->IsExtensionEnabled(good0)); |
5950 | |
5951 // Enable extension - this is now the most recent state. | |
5952 service()->EnableExtension(good0); | 5945 service()->EnableExtension(good0); |
5953 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); | 5946 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); |
5947 // Disable good2 before first sync data arrives (good1 is considered | |
5948 // non-syncable because it has plugin permission). | |
5949 service()->DisableExtension(good2, Extension::DISABLE_USER_ACTION); | |
5950 ASSERT_FALSE(service()->IsExtensionEnabled(good2)); | |
5954 | 5951 |
5955 // Now sync data comes in that says to disable good0. This should be | 5952 const Extension* extension0 = service()->GetExtensionById(good0, true); |
5956 // ignored. | 5953 const Extension* extension2 = service()->GetExtensionById(good2, true); |
5957 ExtensionSyncData disable_good_crx(*extension, false, | 5954 ASSERT_TRUE(extensions::sync_helper::IsSyncable(extension0)); |
5958 Extension::DISABLE_USER_ACTION, false, | 5955 ASSERT_TRUE(extensions::sync_helper::IsSyncable(extension2)); |
5959 false, ExtensionSyncData::BOOLEAN_UNSET); | 5956 |
5957 // Now sync data comes in that says to disable good0 and enable good2. | |
5958 ExtensionSyncData disable_good0(*extension0, false, | |
5959 Extension::DISABLE_USER_ACTION, false, false, | |
5960 ExtensionSyncData::BOOLEAN_UNSET); | |
5961 ExtensionSyncData enable_good2(*extension2, true, Extension::DISABLE_NONE, | |
5962 false, false, | |
5963 ExtensionSyncData::BOOLEAN_UNSET); | |
5960 syncer::SyncDataList sync_data; | 5964 syncer::SyncDataList sync_data; |
5961 sync_data.push_back(disable_good_crx.GetSyncData()); | 5965 sync_data.push_back(disable_good0.GetSyncData()); |
5966 sync_data.push_back(enable_good2.GetSyncData()); | |
5962 extension_sync_service()->MergeDataAndStartSyncing( | 5967 extension_sync_service()->MergeDataAndStartSyncing( |
5963 syncer::EXTENSIONS, | 5968 syncer::EXTENSIONS, |
5964 sync_data, | 5969 sync_data, |
5965 scoped_ptr<syncer::SyncChangeProcessor>( | 5970 make_scoped_ptr(new syncer::FakeSyncChangeProcessor), |
5966 new syncer::FakeSyncChangeProcessor), | 5971 make_scoped_ptr(new syncer::SyncErrorFactoryMock)); |
5967 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | |
5968 | 5972 |
5969 // The extension was enabled locally before the sync data arrived, so it | 5973 // Both sync changes should be ignored, since the local state was changed |
5970 // should still be enabled now. | 5974 // before sync started, and so the local state is considered more recent. |
5971 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); | 5975 EXPECT_TRUE(service()->IsExtensionEnabled(good0)); |
5976 EXPECT_FALSE(service()->IsExtensionEnabled(good2)); | |
5972 } | 5977 } |
5973 | 5978 |
5974 TEST_F(ExtensionServiceTest, GetSyncData) { | 5979 TEST_F(ExtensionServiceTest, GetSyncData) { |
5975 InitializeEmptyExtensionService(); | 5980 InitializeEmptyExtensionService(); |
5976 InitializeExtensionSyncService(); | |
5977 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 5981 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
5978 const Extension* extension = service()->GetInstalledExtension(good_crx); | 5982 const Extension* extension = service()->GetInstalledExtension(good_crx); |
5979 ASSERT_TRUE(extension); | 5983 ASSERT_TRUE(extension); |
5980 | 5984 |
5981 extension_sync_service()->MergeDataAndStartSyncing( | 5985 extension_sync_service()->MergeDataAndStartSyncing( |
5982 syncer::EXTENSIONS, | 5986 syncer::EXTENSIONS, |
5983 syncer::SyncDataList(), | 5987 syncer::SyncDataList(), |
5984 scoped_ptr<syncer::SyncChangeProcessor>( | 5988 scoped_ptr<syncer::SyncChangeProcessor>( |
5985 new syncer::FakeSyncChangeProcessor), | 5989 new syncer::FakeSyncChangeProcessor), |
5986 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5990 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
(...skipping 11 matching lines...) Expand all Loading... | |
5998 data->incognito_enabled()); | 6002 data->incognito_enabled()); |
5999 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled()); | 6003 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled()); |
6000 EXPECT_TRUE(data->version().Equals(*extension->version())); | 6004 EXPECT_TRUE(data->version().Equals(*extension->version())); |
6001 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), | 6005 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), |
6002 data->update_url()); | 6006 data->update_url()); |
6003 EXPECT_EQ(extension->name(), data->name()); | 6007 EXPECT_EQ(extension->name(), data->name()); |
6004 } | 6008 } |
6005 | 6009 |
6006 TEST_F(ExtensionServiceTest, GetSyncDataTerminated) { | 6010 TEST_F(ExtensionServiceTest, GetSyncDataTerminated) { |
6007 InitializeEmptyExtensionService(); | 6011 InitializeEmptyExtensionService(); |
6008 InitializeExtensionSyncService(); | |
6009 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 6012 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
6010 TerminateExtension(good_crx); | 6013 TerminateExtension(good_crx); |
6011 const Extension* extension = service()->GetInstalledExtension(good_crx); | 6014 const Extension* extension = service()->GetInstalledExtension(good_crx); |
6012 ASSERT_TRUE(extension); | 6015 ASSERT_TRUE(extension); |
6013 | 6016 |
6014 syncer::FakeSyncChangeProcessor processor; | 6017 syncer::FakeSyncChangeProcessor processor; |
6015 extension_sync_service()->MergeDataAndStartSyncing( | 6018 extension_sync_service()->MergeDataAndStartSyncing( |
6016 syncer::EXTENSIONS, | 6019 syncer::EXTENSIONS, |
6017 syncer::SyncDataList(), | 6020 syncer::SyncDataList(), |
6018 scoped_ptr<syncer::SyncChangeProcessor>( | 6021 scoped_ptr<syncer::SyncChangeProcessor>( |
(...skipping 13 matching lines...) Expand all Loading... | |
6032 data->incognito_enabled()); | 6035 data->incognito_enabled()); |
6033 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled()); | 6036 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled()); |
6034 EXPECT_TRUE(data->version().Equals(*extension->version())); | 6037 EXPECT_TRUE(data->version().Equals(*extension->version())); |
6035 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), | 6038 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), |
6036 data->update_url()); | 6039 data->update_url()); |
6037 EXPECT_EQ(extension->name(), data->name()); | 6040 EXPECT_EQ(extension->name(), data->name()); |
6038 } | 6041 } |
6039 | 6042 |
6040 TEST_F(ExtensionServiceTest, GetSyncDataFilter) { | 6043 TEST_F(ExtensionServiceTest, GetSyncDataFilter) { |
6041 InitializeEmptyExtensionService(); | 6044 InitializeEmptyExtensionService(); |
6042 InitializeExtensionSyncService(); | |
6043 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 6045 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
6044 const Extension* extension = service()->GetInstalledExtension(good_crx); | 6046 const Extension* extension = service()->GetInstalledExtension(good_crx); |
6045 ASSERT_TRUE(extension); | 6047 ASSERT_TRUE(extension); |
6046 | 6048 |
6047 syncer::FakeSyncChangeProcessor processor; | 6049 syncer::FakeSyncChangeProcessor processor; |
6048 extension_sync_service()->MergeDataAndStartSyncing( | 6050 extension_sync_service()->MergeDataAndStartSyncing( |
6049 syncer::APPS, | 6051 syncer::APPS, |
6050 syncer::SyncDataList(), | 6052 syncer::SyncDataList(), |
6051 scoped_ptr<syncer::SyncChangeProcessor>( | 6053 scoped_ptr<syncer::SyncChangeProcessor>( |
6052 new syncer::FakeSyncChangeProcessor), | 6054 new syncer::FakeSyncChangeProcessor), |
6053 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 6055 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
6054 | 6056 |
6055 syncer::SyncDataList list = | 6057 syncer::SyncDataList list = |
6056 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); | 6058 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); |
6057 ASSERT_EQ(list.size(), 0U); | 6059 ASSERT_EQ(list.size(), 0U); |
6058 } | 6060 } |
6059 | 6061 |
6060 TEST_F(ExtensionServiceTest, GetSyncExtensionDataUserSettings) { | 6062 TEST_F(ExtensionServiceTest, GetSyncExtensionDataUserSettings) { |
6061 InitializeEmptyExtensionService(); | 6063 InitializeEmptyExtensionService(); |
6062 InitializeExtensionSyncService(); | |
6063 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 6064 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
6064 const Extension* extension = service()->GetInstalledExtension(good_crx); | 6065 const Extension* extension = service()->GetInstalledExtension(good_crx); |
6065 ASSERT_TRUE(extension); | 6066 ASSERT_TRUE(extension); |
6066 | 6067 |
6067 syncer::FakeSyncChangeProcessor processor; | 6068 syncer::FakeSyncChangeProcessor processor; |
6068 extension_sync_service()->MergeDataAndStartSyncing( | 6069 extension_sync_service()->MergeDataAndStartSyncing( |
6069 syncer::EXTENSIONS, | 6070 syncer::EXTENSIONS, |
6070 syncer::SyncDataList(), | 6071 syncer::SyncDataList(), |
6071 scoped_ptr<syncer::SyncChangeProcessor>( | 6072 scoped_ptr<syncer::SyncChangeProcessor>( |
6072 new syncer::FakeSyncChangeProcessor), | 6073 new syncer::FakeSyncChangeProcessor), |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6123 ExtensionSyncData::CreateFromSyncData(list[0]); | 6124 ExtensionSyncData::CreateFromSyncData(list[0]); |
6124 ASSERT_TRUE(data.get()); | 6125 ASSERT_TRUE(data.get()); |
6125 EXPECT_TRUE(data->enabled()); | 6126 EXPECT_TRUE(data->enabled()); |
6126 EXPECT_TRUE(data->incognito_enabled()); | 6127 EXPECT_TRUE(data->incognito_enabled()); |
6127 EXPECT_EQ(ExtensionSyncData::BOOLEAN_TRUE, data->all_urls_enabled()); | 6128 EXPECT_EQ(ExtensionSyncData::BOOLEAN_TRUE, data->all_urls_enabled()); |
6128 } | 6129 } |
6129 } | 6130 } |
6130 | 6131 |
6131 TEST_F(ExtensionServiceTest, SyncForUninstalledExternalExtension) { | 6132 TEST_F(ExtensionServiceTest, SyncForUninstalledExternalExtension) { |
6132 InitializeEmptyExtensionService(); | 6133 InitializeEmptyExtensionService(); |
6133 InitializeExtensionSyncService(); | |
6134 InstallCRXWithLocation( | 6134 InstallCRXWithLocation( |
6135 data_dir().AppendASCII("good.crx"), Manifest::EXTERNAL_PREF, INSTALL_NEW); | 6135 data_dir().AppendASCII("good.crx"), Manifest::EXTERNAL_PREF, INSTALL_NEW); |
6136 const Extension* extension = service()->GetInstalledExtension(good_crx); | 6136 const Extension* extension = service()->GetInstalledExtension(good_crx); |
6137 ASSERT_TRUE(extension); | 6137 ASSERT_TRUE(extension); |
6138 | 6138 |
6139 syncer::FakeSyncChangeProcessor processor; | 6139 syncer::FakeSyncChangeProcessor processor; |
6140 extension_sync_service()->MergeDataAndStartSyncing( | 6140 extension_sync_service()->MergeDataAndStartSyncing( |
6141 syncer::EXTENSIONS, | 6141 syncer::EXTENSIONS, |
6142 syncer::SyncDataList(), | 6142 syncer::SyncDataList(), |
6143 scoped_ptr<syncer::SyncChangeProcessor>( | 6143 scoped_ptr<syncer::SyncChangeProcessor>( |
(...skipping 20 matching lines...) Expand all Loading... | |
6164 syncer::SyncChangeList list(1); | 6164 syncer::SyncChangeList list(1); |
6165 list[0] = sync_change; | 6165 list[0] = sync_change; |
6166 | 6166 |
6167 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); | 6167 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); |
6168 EXPECT_TRUE( | 6168 EXPECT_TRUE( |
6169 ExtensionPrefs::Get(profile())->IsExternalExtensionUninstalled(good_crx)); | 6169 ExtensionPrefs::Get(profile())->IsExternalExtensionUninstalled(good_crx)); |
6170 } | 6170 } |
6171 | 6171 |
6172 TEST_F(ExtensionServiceTest, GetSyncAppDataUserSettings) { | 6172 TEST_F(ExtensionServiceTest, GetSyncAppDataUserSettings) { |
6173 InitializeEmptyExtensionService(); | 6173 InitializeEmptyExtensionService(); |
6174 InitializeExtensionSyncService(); | |
6175 const Extension* app = | 6174 const Extension* app = |
6176 PackAndInstallCRX(data_dir().AppendASCII("app"), INSTALL_NEW); | 6175 PackAndInstallCRX(data_dir().AppendASCII("app"), INSTALL_NEW); |
6177 ASSERT_TRUE(app); | 6176 ASSERT_TRUE(app); |
6178 ASSERT_TRUE(app->is_app()); | 6177 ASSERT_TRUE(app->is_app()); |
6179 | 6178 |
6180 syncer::FakeSyncChangeProcessor processor; | 6179 syncer::FakeSyncChangeProcessor processor; |
6181 extension_sync_service()->MergeDataAndStartSyncing( | 6180 extension_sync_service()->MergeDataAndStartSyncing( |
6182 syncer::APPS, | 6181 syncer::APPS, |
6183 syncer::SyncDataList(), | 6182 syncer::SyncDataList(), |
6184 scoped_ptr<syncer::SyncChangeProcessor>( | 6183 scoped_ptr<syncer::SyncChangeProcessor>( |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6225 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data->page_ordinal())); | 6224 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data->page_ordinal())); |
6226 } | 6225 } |
6227 } | 6226 } |
6228 | 6227 |
6229 // TODO (rdevlin.cronin): The OnExtensionMoved() method has been removed from | 6228 // TODO (rdevlin.cronin): The OnExtensionMoved() method has been removed from |
6230 // ExtensionService, so this test probably needs a new home. Unfortunately, it | 6229 // ExtensionService, so this test probably needs a new home. Unfortunately, it |
6231 // relies pretty heavily on things like InitializeExtension[Sync]Service() and | 6230 // relies pretty heavily on things like InitializeExtension[Sync]Service() and |
6232 // PackAndInstallCRX(). When we clean up a bit more, this should move out. | 6231 // PackAndInstallCRX(). When we clean up a bit more, this should move out. |
6233 TEST_F(ExtensionServiceTest, GetSyncAppDataUserSettingsOnExtensionMoved) { | 6232 TEST_F(ExtensionServiceTest, GetSyncAppDataUserSettingsOnExtensionMoved) { |
6234 InitializeEmptyExtensionService(); | 6233 InitializeEmptyExtensionService(); |
6235 InitializeExtensionSyncService(); | |
6236 const size_t kAppCount = 3; | 6234 const size_t kAppCount = 3; |
6237 const Extension* apps[kAppCount]; | 6235 const Extension* apps[kAppCount]; |
6238 apps[0] = PackAndInstallCRX(data_dir().AppendASCII("app1"), INSTALL_NEW); | 6236 apps[0] = PackAndInstallCRX(data_dir().AppendASCII("app1"), INSTALL_NEW); |
6239 apps[1] = PackAndInstallCRX(data_dir().AppendASCII("app2"), INSTALL_NEW); | 6237 apps[1] = PackAndInstallCRX(data_dir().AppendASCII("app2"), INSTALL_NEW); |
6240 apps[2] = PackAndInstallCRX(data_dir().AppendASCII("app4"), INSTALL_NEW); | 6238 apps[2] = PackAndInstallCRX(data_dir().AppendASCII("app4"), INSTALL_NEW); |
6241 for (size_t i = 0; i < kAppCount; ++i) { | 6239 for (size_t i = 0; i < kAppCount; ++i) { |
6242 ASSERT_TRUE(apps[i]); | 6240 ASSERT_TRUE(apps[i]); |
6243 ASSERT_TRUE(apps[i]->is_app()); | 6241 ASSERT_TRUE(apps[i]->is_app()); |
6244 } | 6242 } |
6245 | 6243 |
(...skipping 30 matching lines...) Expand all Loading... | |
6276 } | 6274 } |
6277 } | 6275 } |
6278 | 6276 |
6279 EXPECT_TRUE(app_launch_ordinals[1].LessThan(app_launch_ordinals[0])); | 6277 EXPECT_TRUE(app_launch_ordinals[1].LessThan(app_launch_ordinals[0])); |
6280 EXPECT_TRUE(app_launch_ordinals[0].LessThan(app_launch_ordinals[2])); | 6278 EXPECT_TRUE(app_launch_ordinals[0].LessThan(app_launch_ordinals[2])); |
6281 } | 6279 } |
6282 } | 6280 } |
6283 | 6281 |
6284 TEST_F(ExtensionServiceTest, GetSyncDataList) { | 6282 TEST_F(ExtensionServiceTest, GetSyncDataList) { |
6285 InitializeEmptyExtensionService(); | 6283 InitializeEmptyExtensionService(); |
6286 InitializeExtensionSyncService(); | |
6287 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 6284 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
6288 InstallCRX(data_dir().AppendASCII("page_action.crx"), INSTALL_NEW); | 6285 InstallCRX(data_dir().AppendASCII("page_action.crx"), INSTALL_NEW); |
6289 InstallCRX(data_dir().AppendASCII("theme.crx"), INSTALL_NEW); | 6286 InstallCRX(data_dir().AppendASCII("theme.crx"), INSTALL_NEW); |
6290 InstallCRX(data_dir().AppendASCII("theme2.crx"), INSTALL_NEW); | 6287 InstallCRX(data_dir().AppendASCII("theme2.crx"), INSTALL_NEW); |
6291 | 6288 |
6292 syncer::FakeSyncChangeProcessor processor; | 6289 syncer::FakeSyncChangeProcessor processor; |
6293 extension_sync_service()->MergeDataAndStartSyncing( | 6290 extension_sync_service()->MergeDataAndStartSyncing( |
6294 syncer::APPS, | 6291 syncer::APPS, |
6295 syncer::SyncDataList(), | 6292 syncer::SyncDataList(), |
6296 scoped_ptr<syncer::SyncChangeProcessor>( | 6293 scoped_ptr<syncer::SyncChangeProcessor>( |
6297 new syncer::FakeSyncChangeProcessor), | 6294 new syncer::FakeSyncChangeProcessor), |
6298 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 6295 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
6299 extension_sync_service()->MergeDataAndStartSyncing( | 6296 extension_sync_service()->MergeDataAndStartSyncing( |
6300 syncer::EXTENSIONS, | 6297 syncer::EXTENSIONS, |
6301 syncer::SyncDataList(), | 6298 syncer::SyncDataList(), |
6302 scoped_ptr<syncer::SyncChangeProcessor>( | 6299 scoped_ptr<syncer::SyncChangeProcessor>( |
6303 new syncer::FakeSyncChangeProcessor), | 6300 new syncer::FakeSyncChangeProcessor), |
6304 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 6301 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
6305 | 6302 |
6306 service()->DisableExtension(page_action, Extension::DISABLE_USER_ACTION); | 6303 service()->DisableExtension(page_action, Extension::DISABLE_USER_ACTION); |
6307 TerminateExtension(theme2_crx); | 6304 TerminateExtension(theme2_crx); |
6308 | 6305 |
6309 EXPECT_EQ(0u, extension_sync_service()->GetAllSyncData(syncer::APPS).size()); | 6306 EXPECT_EQ(0u, extension_sync_service()->GetAllSyncData(syncer::APPS).size()); |
6310 EXPECT_EQ( | 6307 EXPECT_EQ( |
6311 2u, extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS).size()); | 6308 2u, extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS).size()); |
6312 } | 6309 } |
6313 | 6310 |
6314 TEST_F(ExtensionServiceTest, ProcessSyncDataUninstall) { | 6311 TEST_F(ExtensionServiceTest, ProcessSyncDataUninstall) { |
6315 InitializeEmptyExtensionService(); | 6312 InitializeEmptyExtensionService(); |
6316 InitializeExtensionSyncService(); | |
6317 syncer::FakeSyncChangeProcessor processor; | 6313 syncer::FakeSyncChangeProcessor processor; |
6318 extension_sync_service()->MergeDataAndStartSyncing( | 6314 extension_sync_service()->MergeDataAndStartSyncing( |
6319 syncer::EXTENSIONS, | 6315 syncer::EXTENSIONS, |
6320 syncer::SyncDataList(), | 6316 syncer::SyncDataList(), |
6321 scoped_ptr<syncer::SyncChangeProcessor>( | 6317 scoped_ptr<syncer::SyncChangeProcessor>( |
6322 new syncer::FakeSyncChangeProcessor), | 6318 new syncer::FakeSyncChangeProcessor), |
6323 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 6319 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
6324 | 6320 |
6325 sync_pb::EntitySpecifics specifics; | 6321 sync_pb::EntitySpecifics specifics; |
6326 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 6322 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
(...skipping 20 matching lines...) Expand all Loading... | |
6347 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); | 6343 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); |
6348 EXPECT_FALSE(service()->GetExtensionById(good_crx, true)); | 6344 EXPECT_FALSE(service()->GetExtensionById(good_crx, true)); |
6349 | 6345 |
6350 // Should again do nothing. | 6346 // Should again do nothing. |
6351 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); | 6347 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); |
6352 EXPECT_FALSE(service()->GetExtensionById(good_crx, true)); | 6348 EXPECT_FALSE(service()->GetExtensionById(good_crx, true)); |
6353 } | 6349 } |
6354 | 6350 |
6355 TEST_F(ExtensionServiceTest, ProcessSyncDataWrongType) { | 6351 TEST_F(ExtensionServiceTest, ProcessSyncDataWrongType) { |
6356 InitializeEmptyExtensionService(); | 6352 InitializeEmptyExtensionService(); |
6357 InitializeExtensionSyncService(); | |
6358 | 6353 |
6359 // Install the extension. | 6354 // Install the extension. |
6360 base::FilePath extension_path = data_dir().AppendASCII("good.crx"); | 6355 base::FilePath extension_path = data_dir().AppendASCII("good.crx"); |
6361 InstallCRX(extension_path, INSTALL_NEW); | 6356 InstallCRX(extension_path, INSTALL_NEW); |
6362 EXPECT_TRUE(service()->GetExtensionById(good_crx, true)); | 6357 EXPECT_TRUE(service()->GetExtensionById(good_crx, true)); |
6363 | 6358 |
6364 sync_pb::EntitySpecifics specifics; | 6359 sync_pb::EntitySpecifics specifics; |
6365 sync_pb::AppSpecifics* app_specifics = specifics.mutable_app(); | 6360 sync_pb::AppSpecifics* app_specifics = specifics.mutable_app(); |
6366 sync_pb::ExtensionSpecifics* extension_specifics = | 6361 sync_pb::ExtensionSpecifics* extension_specifics = |
6367 app_specifics->mutable_extension(); | 6362 app_specifics->mutable_extension(); |
(...skipping 27 matching lines...) Expand all Loading... | |
6395 list[0] = sync_change; | 6390 list[0] = sync_change; |
6396 | 6391 |
6397 // Should again do nothing. | 6392 // Should again do nothing. |
6398 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); | 6393 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); |
6399 EXPECT_TRUE(service()->GetExtensionById(good_crx, false)); | 6394 EXPECT_TRUE(service()->GetExtensionById(good_crx, false)); |
6400 } | 6395 } |
6401 } | 6396 } |
6402 | 6397 |
6403 TEST_F(ExtensionServiceTest, ProcessSyncDataSettings) { | 6398 TEST_F(ExtensionServiceTest, ProcessSyncDataSettings) { |
6404 InitializeEmptyExtensionService(); | 6399 InitializeEmptyExtensionService(); |
6405 InitializeExtensionSyncService(); | |
6406 syncer::FakeSyncChangeProcessor processor; | 6400 syncer::FakeSyncChangeProcessor processor; |
6407 extension_sync_service()->MergeDataAndStartSyncing( | 6401 extension_sync_service()->MergeDataAndStartSyncing( |
6408 syncer::EXTENSIONS, | 6402 syncer::EXTENSIONS, |
6409 syncer::SyncDataList(), | 6403 syncer::SyncDataList(), |
6410 scoped_ptr<syncer::SyncChangeProcessor>( | 6404 scoped_ptr<syncer::SyncChangeProcessor>( |
6411 new syncer::FakeSyncChangeProcessor), | 6405 new syncer::FakeSyncChangeProcessor), |
6412 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 6406 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
6413 | 6407 |
6414 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 6408 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
6415 EXPECT_TRUE(service()->IsExtensionEnabled(good_crx)); | 6409 EXPECT_TRUE(service()->IsExtensionEnabled(good_crx)); |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6508 good_crx, profile())); | 6502 good_crx, profile())); |
6509 EXPECT_EQ(kDefaultAllowedScripting, | 6503 EXPECT_EQ(kDefaultAllowedScripting, |
6510 extensions::util::AllowedScriptingOnAllUrls(good_crx, profile())); | 6504 extensions::util::AllowedScriptingOnAllUrls(good_crx, profile())); |
6511 } | 6505 } |
6512 | 6506 |
6513 EXPECT_FALSE(service()->pending_extension_manager()->IsIdPending(good_crx)); | 6507 EXPECT_FALSE(service()->pending_extension_manager()->IsIdPending(good_crx)); |
6514 } | 6508 } |
6515 | 6509 |
6516 TEST_F(ExtensionServiceTest, ProcessSyncDataNewExtension) { | 6510 TEST_F(ExtensionServiceTest, ProcessSyncDataNewExtension) { |
6517 InitializeEmptyExtensionService(); | 6511 InitializeEmptyExtensionService(); |
6518 InitializeExtensionSyncService(); | |
6519 syncer::FakeSyncChangeProcessor processor; | 6512 syncer::FakeSyncChangeProcessor processor; |
6520 extension_sync_service()->MergeDataAndStartSyncing( | 6513 extension_sync_service()->MergeDataAndStartSyncing( |
6521 syncer::EXTENSIONS, | 6514 syncer::EXTENSIONS, |
6522 syncer::SyncDataList(), | 6515 syncer::SyncDataList(), |
6523 scoped_ptr<syncer::SyncChangeProcessor>( | 6516 scoped_ptr<syncer::SyncChangeProcessor>( |
6524 new syncer::FakeSyncChangeProcessor), | 6517 new syncer::FakeSyncChangeProcessor), |
6525 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 6518 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
6526 | 6519 |
6527 const base::FilePath path = data_dir().AppendASCII("good.crx"); | 6520 const base::FilePath path = data_dir().AppendASCII("good.crx"); |
6528 const ExtensionPrefs* prefs = ExtensionPrefs::Get(profile()); | 6521 const ExtensionPrefs* prefs = ExtensionPrefs::Get(profile()); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6589 | 6582 |
6590 // Remove the extension again, so we can install it again for the next case. | 6583 // Remove the extension again, so we can install it again for the next case. |
6591 UninstallExtension(good_crx, false, | 6584 UninstallExtension(good_crx, false, |
6592 test_case.sync_enabled ? Extension::ENABLED | 6585 test_case.sync_enabled ? Extension::ENABLED |
6593 : Extension::DISABLED); | 6586 : Extension::DISABLED); |
6594 } | 6587 } |
6595 } | 6588 } |
6596 | 6589 |
6597 TEST_F(ExtensionServiceTest, ProcessSyncDataTerminatedExtension) { | 6590 TEST_F(ExtensionServiceTest, ProcessSyncDataTerminatedExtension) { |
6598 InitializeExtensionServiceWithUpdater(); | 6591 InitializeExtensionServiceWithUpdater(); |
6599 InitializeExtensionSyncService(); | |
6600 syncer::FakeSyncChangeProcessor processor; | 6592 syncer::FakeSyncChangeProcessor processor; |
6601 extension_sync_service()->MergeDataAndStartSyncing( | 6593 extension_sync_service()->MergeDataAndStartSyncing( |
6602 syncer::EXTENSIONS, | 6594 syncer::EXTENSIONS, |
6603 syncer::SyncDataList(), | 6595 syncer::SyncDataList(), |
6604 scoped_ptr<syncer::SyncChangeProcessor>( | 6596 scoped_ptr<syncer::SyncChangeProcessor>( |
6605 new syncer::FakeSyncChangeProcessor), | 6597 new syncer::FakeSyncChangeProcessor), |
6606 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 6598 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
6607 | 6599 |
6608 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 6600 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
6609 TerminateExtension(good_crx); | 6601 TerminateExtension(good_crx); |
(...skipping 17 matching lines...) Expand all Loading... | |
6627 | 6619 |
6628 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); | 6620 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); |
6629 EXPECT_FALSE(service()->IsExtensionEnabled(good_crx)); | 6621 EXPECT_FALSE(service()->IsExtensionEnabled(good_crx)); |
6630 EXPECT_TRUE(extensions::util::IsIncognitoEnabled(good_crx, profile())); | 6622 EXPECT_TRUE(extensions::util::IsIncognitoEnabled(good_crx, profile())); |
6631 | 6623 |
6632 EXPECT_FALSE(service()->pending_extension_manager()->IsIdPending(good_crx)); | 6624 EXPECT_FALSE(service()->pending_extension_manager()->IsIdPending(good_crx)); |
6633 } | 6625 } |
6634 | 6626 |
6635 TEST_F(ExtensionServiceTest, ProcessSyncDataVersionCheck) { | 6627 TEST_F(ExtensionServiceTest, ProcessSyncDataVersionCheck) { |
6636 InitializeExtensionServiceWithUpdater(); | 6628 InitializeExtensionServiceWithUpdater(); |
6637 InitializeExtensionSyncService(); | |
6638 syncer::FakeSyncChangeProcessor processor; | 6629 syncer::FakeSyncChangeProcessor processor; |
6639 extension_sync_service()->MergeDataAndStartSyncing( | 6630 extension_sync_service()->MergeDataAndStartSyncing( |
6640 syncer::EXTENSIONS, | 6631 syncer::EXTENSIONS, |
6641 syncer::SyncDataList(), | 6632 syncer::SyncDataList(), |
6642 scoped_ptr<syncer::SyncChangeProcessor>( | 6633 scoped_ptr<syncer::SyncChangeProcessor>( |
6643 new syncer::FakeSyncChangeProcessor), | 6634 new syncer::FakeSyncChangeProcessor), |
6644 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 6635 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
6645 | 6636 |
6646 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 6637 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
6647 EXPECT_TRUE(service()->IsExtensionEnabled(good_crx)); | 6638 EXPECT_TRUE(service()->IsExtensionEnabled(good_crx)); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6697 | 6688 |
6698 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); | 6689 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); |
6699 EXPECT_TRUE(service()->updater()->WillCheckSoon()); | 6690 EXPECT_TRUE(service()->updater()->WillCheckSoon()); |
6700 } | 6691 } |
6701 | 6692 |
6702 EXPECT_FALSE(service()->pending_extension_manager()->IsIdPending(good_crx)); | 6693 EXPECT_FALSE(service()->pending_extension_manager()->IsIdPending(good_crx)); |
6703 } | 6694 } |
6704 | 6695 |
6705 TEST_F(ExtensionServiceTest, ProcessSyncDataNotInstalled) { | 6696 TEST_F(ExtensionServiceTest, ProcessSyncDataNotInstalled) { |
6706 InitializeExtensionServiceWithUpdater(); | 6697 InitializeExtensionServiceWithUpdater(); |
6707 InitializeExtensionSyncService(); | |
6708 syncer::FakeSyncChangeProcessor processor; | 6698 syncer::FakeSyncChangeProcessor processor; |
6709 extension_sync_service()->MergeDataAndStartSyncing( | 6699 extension_sync_service()->MergeDataAndStartSyncing( |
6710 syncer::EXTENSIONS, | 6700 syncer::EXTENSIONS, |
6711 syncer::SyncDataList(), | 6701 syncer::SyncDataList(), |
6712 scoped_ptr<syncer::SyncChangeProcessor>( | 6702 scoped_ptr<syncer::SyncChangeProcessor>( |
6713 new syncer::FakeSyncChangeProcessor), | 6703 new syncer::FakeSyncChangeProcessor), |
6714 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 6704 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
6715 | 6705 |
6716 sync_pb::EntitySpecifics specifics; | 6706 sync_pb::EntitySpecifics specifics; |
6717 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 6707 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
(...skipping 21 matching lines...) Expand all Loading... | |
6739 EXPECT_TRUE( | 6729 EXPECT_TRUE( |
6740 (info = service()->pending_extension_manager()->GetById(good_crx))); | 6730 (info = service()->pending_extension_manager()->GetById(good_crx))); |
6741 EXPECT_EQ(ext_specifics->update_url(), info->update_url().spec()); | 6731 EXPECT_EQ(ext_specifics->update_url(), info->update_url().spec()); |
6742 EXPECT_TRUE(info->is_from_sync()); | 6732 EXPECT_TRUE(info->is_from_sync()); |
6743 EXPECT_EQ(Manifest::INTERNAL, info->install_source()); | 6733 EXPECT_EQ(Manifest::INTERNAL, info->install_source()); |
6744 // TODO(akalin): Figure out a way to test |info.ShouldAllowInstall()|. | 6734 // TODO(akalin): Figure out a way to test |info.ShouldAllowInstall()|. |
6745 } | 6735 } |
6746 | 6736 |
6747 TEST_F(ExtensionServiceTest, ProcessSyncDataEnableDisable) { | 6737 TEST_F(ExtensionServiceTest, ProcessSyncDataEnableDisable) { |
6748 InitializeEmptyExtensionService(); | 6738 InitializeEmptyExtensionService(); |
6749 InitializeExtensionSyncService(); | |
6750 extension_sync_service()->MergeDataAndStartSyncing( | 6739 extension_sync_service()->MergeDataAndStartSyncing( |
6751 syncer::EXTENSIONS, | 6740 syncer::EXTENSIONS, |
6752 syncer::SyncDataList(), | 6741 syncer::SyncDataList(), |
6753 scoped_ptr<syncer::SyncChangeProcessor>( | 6742 scoped_ptr<syncer::SyncChangeProcessor>( |
6754 new syncer::FakeSyncChangeProcessor), | 6743 new syncer::FakeSyncChangeProcessor), |
6755 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 6744 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
6756 | 6745 |
6757 const ExtensionPrefs* prefs = ExtensionPrefs::Get(profile()); | 6746 const ExtensionPrefs* prefs = ExtensionPrefs::Get(profile()); |
6758 | 6747 |
6759 struct TestCase { | 6748 struct TestCase { |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6837 } | 6826 } |
6838 | 6827 |
6839 TEST_F(ExtensionServiceTest, ProcessSyncDataPermissionApproval) { | 6828 TEST_F(ExtensionServiceTest, ProcessSyncDataPermissionApproval) { |
6840 // This is the update URL specified in the test extension. Setting it here is | 6829 // This is the update URL specified in the test extension. Setting it here is |
6841 // necessary to make it considered syncable. | 6830 // necessary to make it considered syncable. |
6842 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 6831 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
6843 switches::kAppsGalleryUpdateURL, | 6832 switches::kAppsGalleryUpdateURL, |
6844 "http://localhost/autoupdate/updates.xml"); | 6833 "http://localhost/autoupdate/updates.xml"); |
6845 | 6834 |
6846 InitializeEmptyExtensionService(); | 6835 InitializeEmptyExtensionService(); |
6847 InitializeExtensionSyncService(); | |
6848 extension_sync_service()->MergeDataAndStartSyncing( | 6836 extension_sync_service()->MergeDataAndStartSyncing( |
6849 syncer::EXTENSIONS, | 6837 syncer::EXTENSIONS, |
6850 syncer::SyncDataList(), | 6838 syncer::SyncDataList(), |
6851 scoped_ptr<syncer::SyncChangeProcessor>( | 6839 scoped_ptr<syncer::SyncChangeProcessor>( |
6852 new syncer::FakeSyncChangeProcessor), | 6840 new syncer::FakeSyncChangeProcessor), |
6853 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 6841 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
6854 | 6842 |
6855 const base::FilePath base_path = | 6843 const base::FilePath base_path = |
6856 data_dir().AppendASCII("permissions_increase"); | 6844 data_dir().AppendASCII("permissions_increase"); |
6857 const base::FilePath pem_path = base_path.AppendASCII("permissions.pem"); | 6845 const base::FilePath pem_path = base_path.AppendASCII("permissions.pem"); |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7125 EXPECT_FALSE(registry()->enabled_extensions().Contains(id)); | 7113 EXPECT_FALSE(registry()->enabled_extensions().Contains(id)); |
7126 extension = registry()->disabled_extensions().GetByID(id); | 7114 extension = registry()->disabled_extensions().GetByID(id); |
7127 ASSERT_TRUE(extension); | 7115 ASSERT_TRUE(extension); |
7128 // The version should have changed. | 7116 // The version should have changed. |
7129 EXPECT_NE(extension->VersionString(), old_version); | 7117 EXPECT_NE(extension->VersionString(), old_version); |
7130 } | 7118 } |
7131 | 7119 |
7132 TEST_F(ExtensionServiceTest, | 7120 TEST_F(ExtensionServiceTest, |
7133 SupervisedUser_SyncUninstallByCustodianSkipsPolicy) { | 7121 SupervisedUser_SyncUninstallByCustodianSkipsPolicy) { |
7134 InitializeEmptyExtensionService(); | 7122 InitializeEmptyExtensionService(); |
7135 InitializeExtensionSyncService(); | |
7136 extension_sync_service()->MergeDataAndStartSyncing( | 7123 extension_sync_service()->MergeDataAndStartSyncing( |
7137 syncer::EXTENSIONS, | 7124 syncer::EXTENSIONS, |
7138 syncer::SyncDataList(), | 7125 syncer::SyncDataList(), |
7139 scoped_ptr<syncer::SyncChangeProcessor>( | 7126 scoped_ptr<syncer::SyncChangeProcessor>( |
7140 new syncer::FakeSyncChangeProcessor), | 7127 new syncer::FakeSyncChangeProcessor), |
7141 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 7128 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
7142 | 7129 |
7143 // Install two extensions. | 7130 // Install two extensions. |
7144 base::FilePath path1 = data_dir().AppendASCII("good.crx"); | 7131 base::FilePath path1 = data_dir().AppendASCII("good.crx"); |
7145 base::FilePath path2 = data_dir().AppendASCII("good2048.crx"); | 7132 base::FilePath path2 = data_dir().AppendASCII("good2048.crx"); |
(...skipping 956 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
8102 | 8089 |
8103 service()->Observe(chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED, | 8090 service()->Observe(chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED, |
8104 content::Source<Profile>(profile()), | 8091 content::Source<Profile>(profile()), |
8105 content::NotificationService::NoDetails()); | 8092 content::NotificationService::NoDetails()); |
8106 EXPECT_EQ(UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN, unloaded_reason_); | 8093 EXPECT_EQ(UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN, unloaded_reason_); |
8107 EXPECT_EQ(0u, registry()->enabled_extensions().size()); | 8094 EXPECT_EQ(0u, registry()->enabled_extensions().size()); |
8108 EXPECT_EQ(0u, registry()->disabled_extensions().size()); | 8095 EXPECT_EQ(0u, registry()->disabled_extensions().size()); |
8109 EXPECT_EQ(0u, registry()->terminated_extensions().size()); | 8096 EXPECT_EQ(0u, registry()->terminated_extensions().size()); |
8110 EXPECT_EQ(0u, registry()->blacklisted_extensions().size()); | 8097 EXPECT_EQ(0u, registry()->blacklisted_extensions().size()); |
8111 } | 8098 } |
OLD | NEW |