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 |