| 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 "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 26 matching lines...) Expand all Loading... |
| 37 #include "chrome/browser/extensions/default_apps.h" | 37 #include "chrome/browser/extensions/default_apps.h" |
| 38 #include "chrome/browser/extensions/extension_creator.h" | 38 #include "chrome/browser/extensions/extension_creator.h" |
| 39 #include "chrome/browser/extensions/extension_error_reporter.h" | 39 #include "chrome/browser/extensions/extension_error_reporter.h" |
| 40 #include "chrome/browser/extensions/extension_error_ui.h" | 40 #include "chrome/browser/extensions/extension_error_ui.h" |
| 41 #include "chrome/browser/extensions/extension_notification_observer.h" | 41 #include "chrome/browser/extensions/extension_notification_observer.h" |
| 42 #include "chrome/browser/extensions/extension_service.h" | 42 #include "chrome/browser/extensions/extension_service.h" |
| 43 #include "chrome/browser/extensions/extension_sorting.h" | 43 #include "chrome/browser/extensions/extension_sorting.h" |
| 44 #include "chrome/browser/extensions/extension_special_storage_policy.h" | 44 #include "chrome/browser/extensions/extension_special_storage_policy.h" |
| 45 #include "chrome/browser/extensions/extension_sync_data.h" | 45 #include "chrome/browser/extensions/extension_sync_data.h" |
| 46 #include "chrome/browser/extensions/extension_system.h" | 46 #include "chrome/browser/extensions/extension_system.h" |
| 47 #include "chrome/browser/extensions/extension_util.h" |
| 47 #include "chrome/browser/extensions/external_install_ui.h" | 48 #include "chrome/browser/extensions/external_install_ui.h" |
| 48 #include "chrome/browser/extensions/external_policy_loader.h" | 49 #include "chrome/browser/extensions/external_policy_loader.h" |
| 49 #include "chrome/browser/extensions/external_pref_loader.h" | 50 #include "chrome/browser/extensions/external_pref_loader.h" |
| 50 #include "chrome/browser/extensions/external_provider_impl.h" | 51 #include "chrome/browser/extensions/external_provider_impl.h" |
| 51 #include "chrome/browser/extensions/external_provider_interface.h" | 52 #include "chrome/browser/extensions/external_provider_interface.h" |
| 52 #include "chrome/browser/extensions/fake_safe_browsing_database_manager.h" | 53 #include "chrome/browser/extensions/fake_safe_browsing_database_manager.h" |
| 53 #include "chrome/browser/extensions/install_observer.h" | 54 #include "chrome/browser/extensions/install_observer.h" |
| 54 #include "chrome/browser/extensions/install_tracker.h" | 55 #include "chrome/browser/extensions/install_tracker.h" |
| 55 #include "chrome/browser/extensions/install_tracker_factory.h" | 56 #include "chrome/browser/extensions/install_tracker_factory.h" |
| 56 #include "chrome/browser/extensions/installed_loader.h" | 57 #include "chrome/browser/extensions/installed_loader.h" |
| (...skipping 2857 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2914 | 2915 |
| 2915 base::FilePath path = data_dir_.AppendASCII("good.crx"); | 2916 base::FilePath path = data_dir_.AppendASCII("good.crx"); |
| 2916 | 2917 |
| 2917 const Extension* good = InstallCRX(path, INSTALL_NEW); | 2918 const Extension* good = InstallCRX(path, INSTALL_NEW); |
| 2918 ASSERT_EQ("1.0.0.0", good->VersionString()); | 2919 ASSERT_EQ("1.0.0.0", good->VersionString()); |
| 2919 ASSERT_EQ(good_crx, good->id()); | 2920 ASSERT_EQ(good_crx, good->id()); |
| 2920 | 2921 |
| 2921 // Disable it and allow it to run in incognito. These settings should carry | 2922 // Disable it and allow it to run in incognito. These settings should carry |
| 2922 // over to the updated version. | 2923 // over to the updated version. |
| 2923 service_->DisableExtension(good->id(), Extension::DISABLE_USER_ACTION); | 2924 service_->DisableExtension(good->id(), Extension::DISABLE_USER_ACTION); |
| 2924 service_->SetIsIncognitoEnabled(good->id(), true); | 2925 extension_util::SetIsIncognitoEnabled(good->id(), service_, true); |
| 2925 service_->extension_prefs()->SetDidExtensionEscalatePermissions(good, true); | 2926 service_->extension_prefs()->SetDidExtensionEscalatePermissions(good, true); |
| 2926 | 2927 |
| 2927 path = data_dir_.AppendASCII("good2.crx"); | 2928 path = data_dir_.AppendASCII("good2.crx"); |
| 2928 UpdateExtension(good_crx, path, INSTALLED); | 2929 UpdateExtension(good_crx, path, INSTALLED); |
| 2929 ASSERT_EQ(1u, service_->disabled_extensions()->size());\ | 2930 ASSERT_EQ(1u, service_->disabled_extensions()->size());\ |
| 2930 const Extension* good2 = service_->GetExtensionById(good_crx, true); | 2931 const Extension* good2 = service_->GetExtensionById(good_crx, true); |
| 2931 ASSERT_EQ("1.0.0.1", good2->version()->GetString()); | 2932 ASSERT_EQ("1.0.0.1", good2->version()->GetString()); |
| 2932 EXPECT_TRUE(service_->IsIncognitoEnabled(good2->id())); | 2933 EXPECT_TRUE(extension_util::IsIncognitoEnabled(good2->id(), service_)); |
| 2933 EXPECT_TRUE(service_->extension_prefs()->DidExtensionEscalatePermissions( | 2934 EXPECT_TRUE(service_->extension_prefs()->DidExtensionEscalatePermissions( |
| 2934 good2->id())); | 2935 good2->id())); |
| 2935 } | 2936 } |
| 2936 | 2937 |
| 2937 // Tests that updating preserves extension location. | 2938 // Tests that updating preserves extension location. |
| 2938 TEST_F(ExtensionServiceTest, UpdateExtensionPreservesLocation) { | 2939 TEST_F(ExtensionServiceTest, UpdateExtensionPreservesLocation) { |
| 2939 InitializeEmptyExtensionService(); | 2940 InitializeEmptyExtensionService(); |
| 2940 | 2941 |
| 2941 base::FilePath path = data_dir_.AppendASCII("good.crx"); | 2942 base::FilePath path = data_dir_.AppendASCII("good.crx"); |
| 2942 | 2943 |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3175 UpdateExtension(theme_crx, path, ENABLED); | 3176 UpdateExtension(theme_crx, path, ENABLED); |
| 3176 | 3177 |
| 3177 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(theme_crx)); | 3178 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(theme_crx)); |
| 3178 | 3179 |
| 3179 const Extension* extension = service_->GetExtensionById(theme_crx, true); | 3180 const Extension* extension = service_->GetExtensionById(theme_crx, true); |
| 3180 ASSERT_TRUE(extension); | 3181 ASSERT_TRUE(extension); |
| 3181 | 3182 |
| 3182 EXPECT_FALSE( | 3183 EXPECT_FALSE( |
| 3183 service_->extension_prefs()->IsExtensionDisabled(extension->id())); | 3184 service_->extension_prefs()->IsExtensionDisabled(extension->id())); |
| 3184 EXPECT_TRUE(service_->IsExtensionEnabled(extension->id())); | 3185 EXPECT_TRUE(service_->IsExtensionEnabled(extension->id())); |
| 3185 EXPECT_FALSE(service_->IsIncognitoEnabled(extension->id())); | 3186 EXPECT_FALSE(extension_util::IsIncognitoEnabled(extension->id(), service_)); |
| 3186 } | 3187 } |
| 3187 | 3188 |
| 3188 // Test updating a pending CRX as if the source is an external extension | 3189 // Test updating a pending CRX as if the source is an external extension |
| 3189 // with an update URL. The external update should overwrite a sync update, | 3190 // with an update URL. The external update should overwrite a sync update, |
| 3190 // but a sync update should not overwrite a non-sync update. | 3191 // but a sync update should not overwrite a non-sync update. |
| 3191 TEST_F(ExtensionServiceTest, UpdatePendingExternalCrxWinsOverSync) { | 3192 TEST_F(ExtensionServiceTest, UpdatePendingExternalCrxWinsOverSync) { |
| 3192 InitializeEmptyExtensionService(); | 3193 InitializeEmptyExtensionService(); |
| 3193 | 3194 |
| 3194 // Add a crx to be installed from the update mechanism. | 3195 // Add a crx to be installed from the update mechanism. |
| 3195 EXPECT_TRUE(service_->pending_extension_manager()->AddFromSync( | 3196 EXPECT_TRUE(service_->pending_extension_manager()->AddFromSync( |
| (...skipping 2156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5352 syncer::EXTENSIONS, syncer::SyncDataList(), | 5353 syncer::EXTENSIONS, syncer::SyncDataList(), |
| 5353 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), | 5354 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 5354 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5355 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 5355 | 5356 |
| 5356 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); | 5357 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); |
| 5357 ASSERT_EQ(list.size(), 1U); | 5358 ASSERT_EQ(list.size(), 1U); |
| 5358 extensions::ExtensionSyncData data(list[0]); | 5359 extensions::ExtensionSyncData data(list[0]); |
| 5359 EXPECT_EQ(extension->id(), data.id()); | 5360 EXPECT_EQ(extension->id(), data.id()); |
| 5360 EXPECT_FALSE(data.uninstalled()); | 5361 EXPECT_FALSE(data.uninstalled()); |
| 5361 EXPECT_EQ(service_->IsExtensionEnabled(good_crx), data.enabled()); | 5362 EXPECT_EQ(service_->IsExtensionEnabled(good_crx), data.enabled()); |
| 5362 EXPECT_EQ(service_->IsIncognitoEnabled(good_crx), data.incognito_enabled()); | 5363 EXPECT_EQ(extension_util::IsIncognitoEnabled(good_crx, service_), |
| 5364 data.incognito_enabled()); |
| 5363 EXPECT_TRUE(data.version().Equals(*extension->version())); | 5365 EXPECT_TRUE(data.version().Equals(*extension->version())); |
| 5364 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), | 5366 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), |
| 5365 data.update_url()); | 5367 data.update_url()); |
| 5366 EXPECT_EQ(extension->name(), data.name()); | 5368 EXPECT_EQ(extension->name(), data.name()); |
| 5367 } | 5369 } |
| 5368 | 5370 |
| 5369 TEST_F(ExtensionServiceTest, GetSyncDataTerminated) { | 5371 TEST_F(ExtensionServiceTest, GetSyncDataTerminated) { |
| 5370 InitializeEmptyExtensionService(); | 5372 InitializeEmptyExtensionService(); |
| 5371 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 5373 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 5372 TerminateExtension(good_crx); | 5374 TerminateExtension(good_crx); |
| 5373 const Extension* extension = service_->GetInstalledExtension(good_crx); | 5375 const Extension* extension = service_->GetInstalledExtension(good_crx); |
| 5374 ASSERT_TRUE(extension); | 5376 ASSERT_TRUE(extension); |
| 5375 | 5377 |
| 5376 TestSyncProcessorStub processor; | 5378 TestSyncProcessorStub processor; |
| 5377 service_->MergeDataAndStartSyncing( | 5379 service_->MergeDataAndStartSyncing( |
| 5378 syncer::EXTENSIONS, syncer::SyncDataList(), | 5380 syncer::EXTENSIONS, syncer::SyncDataList(), |
| 5379 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), | 5381 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 5380 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5382 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 5381 | 5383 |
| 5382 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); | 5384 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); |
| 5383 ASSERT_EQ(list.size(), 1U); | 5385 ASSERT_EQ(list.size(), 1U); |
| 5384 extensions::ExtensionSyncData data(list[0]); | 5386 extensions::ExtensionSyncData data(list[0]); |
| 5385 EXPECT_EQ(extension->id(), data.id()); | 5387 EXPECT_EQ(extension->id(), data.id()); |
| 5386 EXPECT_FALSE(data.uninstalled()); | 5388 EXPECT_FALSE(data.uninstalled()); |
| 5387 EXPECT_EQ(service_->IsExtensionEnabled(good_crx), data.enabled()); | 5389 EXPECT_EQ(service_->IsExtensionEnabled(good_crx), data.enabled()); |
| 5388 EXPECT_EQ(service_->IsIncognitoEnabled(good_crx), data.incognito_enabled()); | 5390 EXPECT_EQ(extension_util::IsIncognitoEnabled(good_crx, service_), |
| 5391 data.incognito_enabled()); |
| 5389 EXPECT_TRUE(data.version().Equals(*extension->version())); | 5392 EXPECT_TRUE(data.version().Equals(*extension->version())); |
| 5390 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), | 5393 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), |
| 5391 data.update_url()); | 5394 data.update_url()); |
| 5392 EXPECT_EQ(extension->name(), data.name()); | 5395 EXPECT_EQ(extension->name(), data.name()); |
| 5393 } | 5396 } |
| 5394 | 5397 |
| 5395 TEST_F(ExtensionServiceTest, GetSyncDataFilter) { | 5398 TEST_F(ExtensionServiceTest, GetSyncDataFilter) { |
| 5396 InitializeEmptyExtensionService(); | 5399 InitializeEmptyExtensionService(); |
| 5397 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 5400 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 5398 const Extension* extension = service_->GetInstalledExtension(good_crx); | 5401 const Extension* extension = service_->GetInstalledExtension(good_crx); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 5429 | 5432 |
| 5430 service_->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); | 5433 service_->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); |
| 5431 { | 5434 { |
| 5432 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); | 5435 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); |
| 5433 ASSERT_EQ(list.size(), 1U); | 5436 ASSERT_EQ(list.size(), 1U); |
| 5434 extensions::ExtensionSyncData data(list[0]); | 5437 extensions::ExtensionSyncData data(list[0]); |
| 5435 EXPECT_FALSE(data.enabled()); | 5438 EXPECT_FALSE(data.enabled()); |
| 5436 EXPECT_FALSE(data.incognito_enabled()); | 5439 EXPECT_FALSE(data.incognito_enabled()); |
| 5437 } | 5440 } |
| 5438 | 5441 |
| 5439 service_->SetIsIncognitoEnabled(good_crx, true); | 5442 extension_util::SetIsIncognitoEnabled(good_crx, service_, true); |
| 5440 { | 5443 { |
| 5441 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); | 5444 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); |
| 5442 ASSERT_EQ(list.size(), 1U); | 5445 ASSERT_EQ(list.size(), 1U); |
| 5443 extensions::ExtensionSyncData data(list[0]); | 5446 extensions::ExtensionSyncData data(list[0]); |
| 5444 EXPECT_FALSE(data.enabled()); | 5447 EXPECT_FALSE(data.enabled()); |
| 5445 EXPECT_TRUE(data.incognito_enabled()); | 5448 EXPECT_TRUE(data.incognito_enabled()); |
| 5446 } | 5449 } |
| 5447 | 5450 |
| 5448 service_->EnableExtension(good_crx); | 5451 service_->EnableExtension(good_crx); |
| 5449 { | 5452 { |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5691 InitializeEmptyExtensionService(); | 5694 InitializeEmptyExtensionService(); |
| 5692 InitializeExtensionProcessManager(); | 5695 InitializeExtensionProcessManager(); |
| 5693 TestSyncProcessorStub processor; | 5696 TestSyncProcessorStub processor; |
| 5694 service_->MergeDataAndStartSyncing( | 5697 service_->MergeDataAndStartSyncing( |
| 5695 syncer::EXTENSIONS, syncer::SyncDataList(), | 5698 syncer::EXTENSIONS, syncer::SyncDataList(), |
| 5696 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), | 5699 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 5697 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5700 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 5698 | 5701 |
| 5699 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 5702 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 5700 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 5703 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 5701 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 5704 EXPECT_FALSE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5702 | 5705 |
| 5703 sync_pb::EntitySpecifics specifics; | 5706 sync_pb::EntitySpecifics specifics; |
| 5704 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 5707 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 5705 ext_specifics->set_id(good_crx); | 5708 ext_specifics->set_id(good_crx); |
| 5706 ext_specifics->set_version( | 5709 ext_specifics->set_version( |
| 5707 service_->GetInstalledExtension(good_crx)->version()->GetString()); | 5710 service_->GetInstalledExtension(good_crx)->version()->GetString()); |
| 5708 ext_specifics->set_enabled(false); | 5711 ext_specifics->set_enabled(false); |
| 5709 | 5712 |
| 5710 { | 5713 { |
| 5711 syncer::SyncData sync_data = | 5714 syncer::SyncData sync_data = |
| 5712 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); | 5715 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 5713 syncer::SyncChange sync_change(FROM_HERE, | 5716 syncer::SyncChange sync_change(FROM_HERE, |
| 5714 syncer::SyncChange::ACTION_UPDATE, | 5717 syncer::SyncChange::ACTION_UPDATE, |
| 5715 sync_data); | 5718 sync_data); |
| 5716 syncer::SyncChangeList list(1); | 5719 syncer::SyncChangeList list(1); |
| 5717 list[0] = sync_change; | 5720 list[0] = sync_change; |
| 5718 service_->ProcessSyncChanges(FROM_HERE, list); | 5721 service_->ProcessSyncChanges(FROM_HERE, list); |
| 5719 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); | 5722 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); |
| 5720 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 5723 EXPECT_FALSE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5721 } | 5724 } |
| 5722 | 5725 |
| 5723 { | 5726 { |
| 5724 ext_specifics->set_enabled(true); | 5727 ext_specifics->set_enabled(true); |
| 5725 ext_specifics->set_incognito_enabled(true); | 5728 ext_specifics->set_incognito_enabled(true); |
| 5726 syncer::SyncData sync_data = | 5729 syncer::SyncData sync_data = |
| 5727 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); | 5730 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 5728 syncer::SyncChange sync_change(FROM_HERE, | 5731 syncer::SyncChange sync_change(FROM_HERE, |
| 5729 syncer::SyncChange::ACTION_UPDATE, | 5732 syncer::SyncChange::ACTION_UPDATE, |
| 5730 sync_data); | 5733 sync_data); |
| 5731 syncer::SyncChangeList list(1); | 5734 syncer::SyncChangeList list(1); |
| 5732 list[0] = sync_change; | 5735 list[0] = sync_change; |
| 5733 service_->ProcessSyncChanges(FROM_HERE, list); | 5736 service_->ProcessSyncChanges(FROM_HERE, list); |
| 5734 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 5737 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 5735 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); | 5738 EXPECT_TRUE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5736 } | 5739 } |
| 5737 | 5740 |
| 5738 { | 5741 { |
| 5739 ext_specifics->set_enabled(false); | 5742 ext_specifics->set_enabled(false); |
| 5740 ext_specifics->set_incognito_enabled(true); | 5743 ext_specifics->set_incognito_enabled(true); |
| 5741 syncer::SyncData sync_data = | 5744 syncer::SyncData sync_data = |
| 5742 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); | 5745 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 5743 syncer::SyncChange sync_change(FROM_HERE, | 5746 syncer::SyncChange sync_change(FROM_HERE, |
| 5744 syncer::SyncChange::ACTION_UPDATE, | 5747 syncer::SyncChange::ACTION_UPDATE, |
| 5745 sync_data); | 5748 sync_data); |
| 5746 syncer::SyncChangeList list(1); | 5749 syncer::SyncChangeList list(1); |
| 5747 list[0] = sync_change; | 5750 list[0] = sync_change; |
| 5748 service_->ProcessSyncChanges(FROM_HERE, list); | 5751 service_->ProcessSyncChanges(FROM_HERE, list); |
| 5749 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); | 5752 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); |
| 5750 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); | 5753 EXPECT_TRUE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5751 } | 5754 } |
| 5752 | 5755 |
| 5753 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); | 5756 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); |
| 5754 } | 5757 } |
| 5755 | 5758 |
| 5756 TEST_F(ExtensionServiceTest, ProcessSyncDataTerminatedExtension) { | 5759 TEST_F(ExtensionServiceTest, ProcessSyncDataTerminatedExtension) { |
| 5757 InitializeExtensionServiceWithUpdater(); | 5760 InitializeExtensionServiceWithUpdater(); |
| 5758 TestSyncProcessorStub processor; | 5761 TestSyncProcessorStub processor; |
| 5759 service_->MergeDataAndStartSyncing( | 5762 service_->MergeDataAndStartSyncing( |
| 5760 syncer::EXTENSIONS, syncer::SyncDataList(), | 5763 syncer::EXTENSIONS, syncer::SyncDataList(), |
| 5761 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), | 5764 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 5762 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5765 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 5763 | 5766 |
| 5764 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 5767 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 5765 TerminateExtension(good_crx); | 5768 TerminateExtension(good_crx); |
| 5766 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 5769 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 5767 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 5770 EXPECT_FALSE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5768 | 5771 |
| 5769 sync_pb::EntitySpecifics specifics; | 5772 sync_pb::EntitySpecifics specifics; |
| 5770 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 5773 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 5771 ext_specifics->set_id(good_crx); | 5774 ext_specifics->set_id(good_crx); |
| 5772 ext_specifics->set_version( | 5775 ext_specifics->set_version( |
| 5773 service_->GetInstalledExtension(good_crx)->version()->GetString()); | 5776 service_->GetInstalledExtension(good_crx)->version()->GetString()); |
| 5774 ext_specifics->set_enabled(false); | 5777 ext_specifics->set_enabled(false); |
| 5775 ext_specifics->set_incognito_enabled(true); | 5778 ext_specifics->set_incognito_enabled(true); |
| 5776 syncer::SyncData sync_data = | 5779 syncer::SyncData sync_data = |
| 5777 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); | 5780 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 5778 syncer::SyncChange sync_change(FROM_HERE, | 5781 syncer::SyncChange sync_change(FROM_HERE, |
| 5779 syncer::SyncChange::ACTION_UPDATE, | 5782 syncer::SyncChange::ACTION_UPDATE, |
| 5780 sync_data); | 5783 sync_data); |
| 5781 syncer::SyncChangeList list(1); | 5784 syncer::SyncChangeList list(1); |
| 5782 list[0] = sync_change; | 5785 list[0] = sync_change; |
| 5783 | 5786 |
| 5784 service_->ProcessSyncChanges(FROM_HERE, list); | 5787 service_->ProcessSyncChanges(FROM_HERE, list); |
| 5785 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); | 5788 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); |
| 5786 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); | 5789 EXPECT_TRUE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5787 | 5790 |
| 5788 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); | 5791 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); |
| 5789 } | 5792 } |
| 5790 | 5793 |
| 5791 TEST_F(ExtensionServiceTest, ProcessSyncDataVersionCheck) { | 5794 TEST_F(ExtensionServiceTest, ProcessSyncDataVersionCheck) { |
| 5792 InitializeExtensionServiceWithUpdater(); | 5795 InitializeExtensionServiceWithUpdater(); |
| 5793 TestSyncProcessorStub processor; | 5796 TestSyncProcessorStub processor; |
| 5794 service_->MergeDataAndStartSyncing( | 5797 service_->MergeDataAndStartSyncing( |
| 5795 syncer::EXTENSIONS, syncer::SyncDataList(), | 5798 syncer::EXTENSIONS, syncer::SyncDataList(), |
| 5796 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), | 5799 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 5797 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5800 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 5798 | 5801 |
| 5799 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 5802 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 5800 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 5803 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 5801 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 5804 EXPECT_FALSE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5802 | 5805 |
| 5803 sync_pb::EntitySpecifics specifics; | 5806 sync_pb::EntitySpecifics specifics; |
| 5804 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 5807 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 5805 ext_specifics->set_id(good_crx); | 5808 ext_specifics->set_id(good_crx); |
| 5806 ext_specifics->set_enabled(true); | 5809 ext_specifics->set_enabled(true); |
| 5807 | 5810 |
| 5808 { | 5811 { |
| 5809 ext_specifics->set_version( | 5812 ext_specifics->set_version( |
| 5810 service_->GetInstalledExtension(good_crx)->version()->GetString()); | 5813 service_->GetInstalledExtension(good_crx)->version()->GetString()); |
| 5811 syncer::SyncData sync_data = | 5814 syncer::SyncData sync_data = |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5873 syncer::SyncData sync_data = | 5876 syncer::SyncData sync_data = |
| 5874 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); | 5877 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 5875 syncer::SyncChange sync_change(FROM_HERE, | 5878 syncer::SyncChange sync_change(FROM_HERE, |
| 5876 syncer::SyncChange::ACTION_UPDATE, | 5879 syncer::SyncChange::ACTION_UPDATE, |
| 5877 sync_data); | 5880 sync_data); |
| 5878 syncer::SyncChangeList list(1); | 5881 syncer::SyncChangeList list(1); |
| 5879 list[0] = sync_change; | 5882 list[0] = sync_change; |
| 5880 | 5883 |
| 5881 | 5884 |
| 5882 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 5885 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 5883 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 5886 EXPECT_FALSE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5884 service_->ProcessSyncChanges(FROM_HERE, list); | 5887 service_->ProcessSyncChanges(FROM_HERE, list); |
| 5885 EXPECT_TRUE(service_->updater()->WillCheckSoon()); | 5888 EXPECT_TRUE(service_->updater()->WillCheckSoon()); |
| 5886 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); | 5889 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); |
| 5887 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); | 5890 EXPECT_TRUE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5888 | 5891 |
| 5889 const extensions::PendingExtensionInfo* info; | 5892 const extensions::PendingExtensionInfo* info; |
| 5890 EXPECT_TRUE((info = service_->pending_extension_manager()-> | 5893 EXPECT_TRUE((info = service_->pending_extension_manager()-> |
| 5891 GetById(good_crx))); | 5894 GetById(good_crx))); |
| 5892 EXPECT_EQ(ext_specifics->update_url(), info->update_url().spec()); | 5895 EXPECT_EQ(ext_specifics->update_url(), info->update_url().spec()); |
| 5893 EXPECT_TRUE(info->is_from_sync()); | 5896 EXPECT_TRUE(info->is_from_sync()); |
| 5894 EXPECT_TRUE(info->install_silently()); | 5897 EXPECT_TRUE(info->install_silently()); |
| 5895 EXPECT_EQ(Manifest::INTERNAL, info->install_source()); | 5898 EXPECT_EQ(Manifest::INTERNAL, info->install_source()); |
| 5896 // TODO(akalin): Figure out a way to test |info.ShouldAllowInstall()|. | 5899 // TODO(akalin): Figure out a way to test |info.ShouldAllowInstall()|. |
| 5897 } | 5900 } |
| (...skipping 704 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6602 // ReconcileKnownDisabled(). | 6605 // ReconcileKnownDisabled(). |
| 6603 service_->EnableExtension(good2); | 6606 service_->EnableExtension(good2); |
| 6604 service_->ReconcileKnownDisabled(); | 6607 service_->ReconcileKnownDisabled(); |
| 6605 expected_extensions.insert(good2); | 6608 expected_extensions.insert(good2); |
| 6606 expected_disabled_extensions.erase(good2); | 6609 expected_disabled_extensions.erase(good2); |
| 6607 | 6610 |
| 6608 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); | 6611 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); |
| 6609 EXPECT_EQ(expected_disabled_extensions, | 6612 EXPECT_EQ(expected_disabled_extensions, |
| 6610 service_->disabled_extensions()->GetIDs()); | 6613 service_->disabled_extensions()->GetIDs()); |
| 6611 } | 6614 } |
| OLD | NEW |