| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/extensions/extension_service_unittest.h" | 5 #include "chrome/browser/extensions/extension_service_unittest.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 #include "chrome/browser/extensions/pack_extension_job.cc" | 44 #include "chrome/browser/extensions/pack_extension_job.cc" |
| 45 #include "chrome/browser/extensions/pending_extension_info.h" | 45 #include "chrome/browser/extensions/pending_extension_info.h" |
| 46 #include "chrome/browser/extensions/pending_extension_manager.h" | 46 #include "chrome/browser/extensions/pending_extension_manager.h" |
| 47 #include "chrome/browser/extensions/unpacked_installer.h" | 47 #include "chrome/browser/extensions/unpacked_installer.h" |
| 48 #include "chrome/browser/plugin_prefs_factory.h" | 48 #include "chrome/browser/plugin_prefs_factory.h" |
| 49 #include "chrome/browser/prefs/browser_prefs.h" | 49 #include "chrome/browser/prefs/browser_prefs.h" |
| 50 #include "chrome/browser/prefs/pref_service_mock_builder.h" | 50 #include "chrome/browser/prefs/pref_service_mock_builder.h" |
| 51 #include "chrome/browser/prefs/scoped_user_pref_update.h" | 51 #include "chrome/browser/prefs/scoped_user_pref_update.h" |
| 52 #include "chrome/browser/sync/protocol/app_specifics.pb.h" | 52 #include "chrome/browser/sync/protocol/app_specifics.pb.h" |
| 53 #include "chrome/browser/sync/protocol/extension_specifics.pb.h" | 53 #include "chrome/browser/sync/protocol/extension_specifics.pb.h" |
| 54 #include "chrome/browser/sync/protocol/sync.pb.h" |
| 54 #include "chrome/common/chrome_notification_types.h" | 55 #include "chrome/common/chrome_notification_types.h" |
| 55 #include "chrome/common/chrome_paths.h" | 56 #include "chrome/common/chrome_paths.h" |
| 56 #include "chrome/common/chrome_switches.h" | 57 #include "chrome/common/chrome_switches.h" |
| 57 #include "chrome/common/extensions/extension.h" | 58 #include "chrome/common/extensions/extension.h" |
| 58 #include "chrome/common/extensions/extension_constants.h" | 59 #include "chrome/common/extensions/extension_constants.h" |
| 59 #include "chrome/common/extensions/extension_resource.h" | 60 #include "chrome/common/extensions/extension_resource.h" |
| 60 #include "chrome/common/extensions/url_pattern.h" | 61 #include "chrome/common/extensions/url_pattern.h" |
| 61 #include "chrome/common/pref_names.h" | 62 #include "chrome/common/pref_names.h" |
| 62 #include "chrome/common/string_ordinal.h" | 63 #include "chrome/common/string_ordinal.h" |
| 63 #include "chrome/common/url_constants.h" | 64 #include "chrome/common/url_constants.h" |
| (...skipping 4131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4195 EXPECT_EQ(2u, service_->GetAllSyncData(syncable::EXTENSIONS).size()); | 4196 EXPECT_EQ(2u, service_->GetAllSyncData(syncable::EXTENSIONS).size()); |
| 4196 } | 4197 } |
| 4197 | 4198 |
| 4198 TEST_F(ExtensionServiceTest, ProcessSyncDataUninstall) { | 4199 TEST_F(ExtensionServiceTest, ProcessSyncDataUninstall) { |
| 4199 InitializeEmptyExtensionService(); | 4200 InitializeEmptyExtensionService(); |
| 4200 TestSyncProcessorStub processor; | 4201 TestSyncProcessorStub processor; |
| 4201 service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), | 4202 service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), |
| 4202 &processor); | 4203 &processor); |
| 4203 | 4204 |
| 4204 sync_pb::EntitySpecifics specifics; | 4205 sync_pb::EntitySpecifics specifics; |
| 4205 sync_pb::ExtensionSpecifics* ext_specifics = | 4206 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 4206 specifics.MutableExtension(sync_pb::extension); | |
| 4207 ext_specifics->set_id(good_crx); | 4207 ext_specifics->set_id(good_crx); |
| 4208 ext_specifics->set_version("1.0"); | 4208 ext_specifics->set_version("1.0"); |
| 4209 SyncData sync_data = SyncData::CreateLocalData(good_crx, "Name", specifics); | 4209 SyncData sync_data = SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4210 SyncChange sync_change(SyncChange::ACTION_DELETE, sync_data); | 4210 SyncChange sync_change(SyncChange::ACTION_DELETE, sync_data); |
| 4211 SyncChangeList list(1); | 4211 SyncChangeList list(1); |
| 4212 list[0] = sync_change; | 4212 list[0] = sync_change; |
| 4213 | 4213 |
| 4214 // Should do nothing. | 4214 // Should do nothing. |
| 4215 service_->ProcessSyncChanges(FROM_HERE, list); | 4215 service_->ProcessSyncChanges(FROM_HERE, list); |
| 4216 EXPECT_FALSE(service_->GetExtensionById(good_crx, true)); | 4216 EXPECT_FALSE(service_->GetExtensionById(good_crx, true)); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 4231 | 4231 |
| 4232 TEST_F(ExtensionServiceTest, ProcessSyncDataWrongType) { | 4232 TEST_F(ExtensionServiceTest, ProcessSyncDataWrongType) { |
| 4233 InitializeEmptyExtensionService(); | 4233 InitializeEmptyExtensionService(); |
| 4234 | 4234 |
| 4235 // Install the extension. | 4235 // Install the extension. |
| 4236 FilePath extension_path = data_dir_.AppendASCII("good.crx"); | 4236 FilePath extension_path = data_dir_.AppendASCII("good.crx"); |
| 4237 InstallCRX(extension_path, INSTALL_NEW); | 4237 InstallCRX(extension_path, INSTALL_NEW); |
| 4238 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); | 4238 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); |
| 4239 | 4239 |
| 4240 sync_pb::EntitySpecifics specifics; | 4240 sync_pb::EntitySpecifics specifics; |
| 4241 sync_pb::AppSpecifics* app_specifics = | 4241 sync_pb::AppSpecifics* app_specifics = specifics.mutable_app(); |
| 4242 specifics.MutableExtension(sync_pb::app); | |
| 4243 sync_pb::ExtensionSpecifics* extension_specifics = | 4242 sync_pb::ExtensionSpecifics* extension_specifics = |
| 4244 app_specifics->mutable_extension(); | 4243 app_specifics->mutable_extension(); |
| 4245 extension_specifics->set_id(good_crx); | 4244 extension_specifics->set_id(good_crx); |
| 4246 extension_specifics->set_version( | 4245 extension_specifics->set_version( |
| 4247 service_->GetInstalledExtension(good_crx)->version()->GetString()); | 4246 service_->GetInstalledExtension(good_crx)->version()->GetString()); |
| 4248 | 4247 |
| 4249 { | 4248 { |
| 4250 extension_specifics->set_enabled(true); | 4249 extension_specifics->set_enabled(true); |
| 4251 SyncData sync_data = SyncData::CreateLocalData(good_crx, "Name", specifics); | 4250 SyncData sync_data = SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4252 SyncChange sync_change(SyncChange::ACTION_DELETE, sync_data); | 4251 SyncChange sync_change(SyncChange::ACTION_DELETE, sync_data); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 4276 InitializeExtensionProcessManager(); | 4275 InitializeExtensionProcessManager(); |
| 4277 TestSyncProcessorStub processor; | 4276 TestSyncProcessorStub processor; |
| 4278 service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), | 4277 service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), |
| 4279 &processor); | 4278 &processor); |
| 4280 | 4279 |
| 4281 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 4280 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 4282 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 4281 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 4283 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 4282 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); |
| 4284 | 4283 |
| 4285 sync_pb::EntitySpecifics specifics; | 4284 sync_pb::EntitySpecifics specifics; |
| 4286 sync_pb::ExtensionSpecifics* ext_specifics = | 4285 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 4287 specifics.MutableExtension(sync_pb::extension); | |
| 4288 ext_specifics->set_id(good_crx); | 4286 ext_specifics->set_id(good_crx); |
| 4289 ext_specifics->set_version( | 4287 ext_specifics->set_version( |
| 4290 service_->GetInstalledExtension(good_crx)->version()->GetString()); | 4288 service_->GetInstalledExtension(good_crx)->version()->GetString()); |
| 4291 ext_specifics->set_enabled(false); | 4289 ext_specifics->set_enabled(false); |
| 4292 | 4290 |
| 4293 { | 4291 { |
| 4294 SyncData sync_data = SyncData::CreateLocalData(good_crx, "Name", specifics); | 4292 SyncData sync_data = SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4295 SyncChange sync_change(SyncChange::ACTION_UPDATE, sync_data); | 4293 SyncChange sync_change(SyncChange::ACTION_UPDATE, sync_data); |
| 4296 SyncChangeList list(1); | 4294 SyncChangeList list(1); |
| 4297 list[0] = sync_change; | 4295 list[0] = sync_change; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4332 TestSyncProcessorStub processor; | 4330 TestSyncProcessorStub processor; |
| 4333 service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), | 4331 service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), |
| 4334 &processor); | 4332 &processor); |
| 4335 | 4333 |
| 4336 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 4334 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 4337 TerminateExtension(good_crx); | 4335 TerminateExtension(good_crx); |
| 4338 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 4336 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 4339 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 4337 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); |
| 4340 | 4338 |
| 4341 sync_pb::EntitySpecifics specifics; | 4339 sync_pb::EntitySpecifics specifics; |
| 4342 sync_pb::ExtensionSpecifics* ext_specifics = | 4340 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 4343 specifics.MutableExtension(sync_pb::extension); | |
| 4344 ext_specifics->set_id(good_crx); | 4341 ext_specifics->set_id(good_crx); |
| 4345 ext_specifics->set_version( | 4342 ext_specifics->set_version( |
| 4346 service_->GetInstalledExtension(good_crx)->version()->GetString()); | 4343 service_->GetInstalledExtension(good_crx)->version()->GetString()); |
| 4347 ext_specifics->set_enabled(false); | 4344 ext_specifics->set_enabled(false); |
| 4348 ext_specifics->set_incognito_enabled(true); | 4345 ext_specifics->set_incognito_enabled(true); |
| 4349 SyncData sync_data = SyncData::CreateLocalData(good_crx, "Name", specifics); | 4346 SyncData sync_data = SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4350 SyncChange sync_change(SyncChange::ACTION_UPDATE, sync_data); | 4347 SyncChange sync_change(SyncChange::ACTION_UPDATE, sync_data); |
| 4351 SyncChangeList list(1); | 4348 SyncChangeList list(1); |
| 4352 list[0] = sync_change; | 4349 list[0] = sync_change; |
| 4353 | 4350 |
| 4354 service_->ProcessSyncChanges(FROM_HERE, list); | 4351 service_->ProcessSyncChanges(FROM_HERE, list); |
| 4355 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); | 4352 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); |
| 4356 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); | 4353 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); |
| 4357 | 4354 |
| 4358 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); | 4355 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); |
| 4359 } | 4356 } |
| 4360 | 4357 |
| 4361 TEST_F(ExtensionServiceTest, ProcessSyncDataVersionCheck) { | 4358 TEST_F(ExtensionServiceTest, ProcessSyncDataVersionCheck) { |
| 4362 InitializeExtensionServiceWithUpdater(); | 4359 InitializeExtensionServiceWithUpdater(); |
| 4363 InitializeRequestContext(); | 4360 InitializeRequestContext(); |
| 4364 TestSyncProcessorStub processor; | 4361 TestSyncProcessorStub processor; |
| 4365 service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), | 4362 service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), |
| 4366 &processor); | 4363 &processor); |
| 4367 | 4364 |
| 4368 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 4365 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 4369 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 4366 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 4370 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 4367 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); |
| 4371 | 4368 |
| 4372 sync_pb::EntitySpecifics specifics; | 4369 sync_pb::EntitySpecifics specifics; |
| 4373 sync_pb::ExtensionSpecifics* ext_specifics = | 4370 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 4374 specifics.MutableExtension(sync_pb::extension); | |
| 4375 ext_specifics->set_id(good_crx); | 4371 ext_specifics->set_id(good_crx); |
| 4376 ext_specifics->set_enabled(true); | 4372 ext_specifics->set_enabled(true); |
| 4377 | 4373 |
| 4378 { | 4374 { |
| 4379 ext_specifics->set_version( | 4375 ext_specifics->set_version( |
| 4380 service_->GetInstalledExtension(good_crx)->version()->GetString()); | 4376 service_->GetInstalledExtension(good_crx)->version()->GetString()); |
| 4381 SyncData sync_data = SyncData::CreateLocalData(good_crx, "Name", specifics); | 4377 SyncData sync_data = SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4382 SyncChange sync_change(SyncChange::ACTION_UPDATE, sync_data); | 4378 SyncChange sync_change(SyncChange::ACTION_UPDATE, sync_data); |
| 4383 SyncChangeList list(1); | 4379 SyncChangeList list(1); |
| 4384 list[0] = sync_change; | 4380 list[0] = sync_change; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4417 } | 4413 } |
| 4418 | 4414 |
| 4419 TEST_F(ExtensionServiceTest, ProcessSyncDataNotInstalled) { | 4415 TEST_F(ExtensionServiceTest, ProcessSyncDataNotInstalled) { |
| 4420 InitializeExtensionServiceWithUpdater(); | 4416 InitializeExtensionServiceWithUpdater(); |
| 4421 InitializeRequestContext(); | 4417 InitializeRequestContext(); |
| 4422 TestSyncProcessorStub processor; | 4418 TestSyncProcessorStub processor; |
| 4423 service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), | 4419 service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), |
| 4424 &processor); | 4420 &processor); |
| 4425 | 4421 |
| 4426 sync_pb::EntitySpecifics specifics; | 4422 sync_pb::EntitySpecifics specifics; |
| 4427 sync_pb::ExtensionSpecifics* ext_specifics = | 4423 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 4428 specifics.MutableExtension(sync_pb::extension); | |
| 4429 ext_specifics->set_id(good_crx); | 4424 ext_specifics->set_id(good_crx); |
| 4430 ext_specifics->set_enabled(false); | 4425 ext_specifics->set_enabled(false); |
| 4431 ext_specifics->set_incognito_enabled(true); | 4426 ext_specifics->set_incognito_enabled(true); |
| 4432 ext_specifics->set_update_url("http://www.google.com/"); | 4427 ext_specifics->set_update_url("http://www.google.com/"); |
| 4433 ext_specifics->set_version("1.2.3.4"); | 4428 ext_specifics->set_version("1.2.3.4"); |
| 4434 SyncData sync_data = SyncData::CreateLocalData(good_crx, "Name", specifics); | 4429 SyncData sync_data = SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4435 SyncChange sync_change(SyncChange::ACTION_UPDATE, sync_data); | 4430 SyncChange sync_change(SyncChange::ACTION_UPDATE, sync_data); |
| 4436 SyncChangeList list(1); | 4431 SyncChangeList list(1); |
| 4437 list[0] = sync_change; | 4432 list[0] = sync_change; |
| 4438 | 4433 |
| (...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4860 provider->UpdateOrAddExtension(hosted_app, "1.0.0.0", | 4855 provider->UpdateOrAddExtension(hosted_app, "1.0.0.0", |
| 4861 data_dir_.AppendASCII("hosted_app.crx")); | 4856 data_dir_.AppendASCII("hosted_app.crx")); |
| 4862 | 4857 |
| 4863 service_->CheckForExternalUpdates(); | 4858 service_->CheckForExternalUpdates(); |
| 4864 loop_.RunAllPending(); | 4859 loop_.RunAllPending(); |
| 4865 | 4860 |
| 4866 ASSERT_TRUE(service_->PopulateExtensionGlobalError( | 4861 ASSERT_TRUE(service_->PopulateExtensionGlobalError( |
| 4867 extension_global_error.get())); | 4862 extension_global_error.get())); |
| 4868 ASSERT_EQ(1u, extension_global_error->get_external_extension_ids()->size()); | 4863 ASSERT_EQ(1u, extension_global_error->get_external_extension_ids()->size()); |
| 4869 } | 4864 } |
| OLD | NEW |