| 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 2861 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2918 | 2919 |
| 2919 base::FilePath path = data_dir_.AppendASCII("good.crx"); | 2920 base::FilePath path = data_dir_.AppendASCII("good.crx"); |
| 2920 | 2921 |
| 2921 const Extension* good = InstallCRX(path, INSTALL_NEW); | 2922 const Extension* good = InstallCRX(path, INSTALL_NEW); |
| 2922 ASSERT_EQ("1.0.0.0", good->VersionString()); | 2923 ASSERT_EQ("1.0.0.0", good->VersionString()); |
| 2923 ASSERT_EQ(good_crx, good->id()); | 2924 ASSERT_EQ(good_crx, good->id()); |
| 2924 | 2925 |
| 2925 // Disable it and allow it to run in incognito. These settings should carry | 2926 // Disable it and allow it to run in incognito. These settings should carry |
| 2926 // over to the updated version. | 2927 // over to the updated version. |
| 2927 service_->DisableExtension(good->id(), Extension::DISABLE_USER_ACTION); | 2928 service_->DisableExtension(good->id(), Extension::DISABLE_USER_ACTION); |
| 2928 service_->SetIsIncognitoEnabled(good->id(), true); | 2929 extension_util::SetIsIncognitoEnabled(good->id(), service_, true); |
| 2929 service_->extension_prefs()->SetDidExtensionEscalatePermissions(good, true); | 2930 service_->extension_prefs()->SetDidExtensionEscalatePermissions(good, true); |
| 2930 | 2931 |
| 2931 path = data_dir_.AppendASCII("good2.crx"); | 2932 path = data_dir_.AppendASCII("good2.crx"); |
| 2932 UpdateExtension(good_crx, path, INSTALLED); | 2933 UpdateExtension(good_crx, path, INSTALLED); |
| 2933 ASSERT_EQ(1u, service_->disabled_extensions()->size());\ | 2934 ASSERT_EQ(1u, service_->disabled_extensions()->size());\ |
| 2934 const Extension* good2 = service_->GetExtensionById(good_crx, true); | 2935 const Extension* good2 = service_->GetExtensionById(good_crx, true); |
| 2935 ASSERT_EQ("1.0.0.1", good2->version()->GetString()); | 2936 ASSERT_EQ("1.0.0.1", good2->version()->GetString()); |
| 2936 EXPECT_TRUE(service_->IsIncognitoEnabled(good2->id())); | 2937 EXPECT_TRUE(extension_util::IsIncognitoEnabled(good2->id(), service_)); |
| 2937 EXPECT_TRUE(service_->extension_prefs()->DidExtensionEscalatePermissions( | 2938 EXPECT_TRUE(service_->extension_prefs()->DidExtensionEscalatePermissions( |
| 2938 good2->id())); | 2939 good2->id())); |
| 2939 } | 2940 } |
| 2940 | 2941 |
| 2941 // Tests that updating preserves extension location. | 2942 // Tests that updating preserves extension location. |
| 2942 TEST_F(ExtensionServiceTest, UpdateExtensionPreservesLocation) { | 2943 TEST_F(ExtensionServiceTest, UpdateExtensionPreservesLocation) { |
| 2943 InitializeEmptyExtensionService(); | 2944 InitializeEmptyExtensionService(); |
| 2944 | 2945 |
| 2945 base::FilePath path = data_dir_.AppendASCII("good.crx"); | 2946 base::FilePath path = data_dir_.AppendASCII("good.crx"); |
| 2946 | 2947 |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3180 UpdateExtension(theme_crx, path, ENABLED); | 3181 UpdateExtension(theme_crx, path, ENABLED); |
| 3181 | 3182 |
| 3182 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(theme_crx)); | 3183 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(theme_crx)); |
| 3183 | 3184 |
| 3184 const Extension* extension = service_->GetExtensionById(theme_crx, true); | 3185 const Extension* extension = service_->GetExtensionById(theme_crx, true); |
| 3185 ASSERT_TRUE(extension); | 3186 ASSERT_TRUE(extension); |
| 3186 | 3187 |
| 3187 EXPECT_FALSE( | 3188 EXPECT_FALSE( |
| 3188 service_->extension_prefs()->IsExtensionDisabled(extension->id())); | 3189 service_->extension_prefs()->IsExtensionDisabled(extension->id())); |
| 3189 EXPECT_TRUE(service_->IsExtensionEnabled(extension->id())); | 3190 EXPECT_TRUE(service_->IsExtensionEnabled(extension->id())); |
| 3190 EXPECT_FALSE(service_->IsIncognitoEnabled(extension->id())); | 3191 EXPECT_FALSE(extension_util::IsIncognitoEnabled(extension->id(), service_)); |
| 3191 } | 3192 } |
| 3192 | 3193 |
| 3193 // Test updating a pending CRX as if the source is an external extension | 3194 // Test updating a pending CRX as if the source is an external extension |
| 3194 // with an update URL. The external update should overwrite a sync update, | 3195 // with an update URL. The external update should overwrite a sync update, |
| 3195 // but a sync update should not overwrite a non-sync update. | 3196 // but a sync update should not overwrite a non-sync update. |
| 3196 TEST_F(ExtensionServiceTest, UpdatePendingExternalCrxWinsOverSync) { | 3197 TEST_F(ExtensionServiceTest, UpdatePendingExternalCrxWinsOverSync) { |
| 3197 InitializeEmptyExtensionService(); | 3198 InitializeEmptyExtensionService(); |
| 3198 | 3199 |
| 3199 // Add a crx to be installed from the update mechanism. | 3200 // Add a crx to be installed from the update mechanism. |
| 3200 EXPECT_TRUE(service_->pending_extension_manager()->AddFromSync( | 3201 EXPECT_TRUE(service_->pending_extension_manager()->AddFromSync( |
| (...skipping 2158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5359 syncer::EXTENSIONS, syncer::SyncDataList(), | 5360 syncer::EXTENSIONS, syncer::SyncDataList(), |
| 5360 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), | 5361 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 5361 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5362 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 5362 | 5363 |
| 5363 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); | 5364 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); |
| 5364 ASSERT_EQ(list.size(), 1U); | 5365 ASSERT_EQ(list.size(), 1U); |
| 5365 extensions::ExtensionSyncData data(list[0]); | 5366 extensions::ExtensionSyncData data(list[0]); |
| 5366 EXPECT_EQ(extension->id(), data.id()); | 5367 EXPECT_EQ(extension->id(), data.id()); |
| 5367 EXPECT_FALSE(data.uninstalled()); | 5368 EXPECT_FALSE(data.uninstalled()); |
| 5368 EXPECT_EQ(service_->IsExtensionEnabled(good_crx), data.enabled()); | 5369 EXPECT_EQ(service_->IsExtensionEnabled(good_crx), data.enabled()); |
| 5369 EXPECT_EQ(service_->IsIncognitoEnabled(good_crx), data.incognito_enabled()); | 5370 EXPECT_EQ(extension_util::IsIncognitoEnabled(good_crx, service_), |
| 5371 data.incognito_enabled()); |
| 5370 EXPECT_TRUE(data.version().Equals(*extension->version())); | 5372 EXPECT_TRUE(data.version().Equals(*extension->version())); |
| 5371 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), | 5373 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), |
| 5372 data.update_url()); | 5374 data.update_url()); |
| 5373 EXPECT_EQ(extension->name(), data.name()); | 5375 EXPECT_EQ(extension->name(), data.name()); |
| 5374 } | 5376 } |
| 5375 | 5377 |
| 5376 TEST_F(ExtensionServiceTest, GetSyncDataTerminated) { | 5378 TEST_F(ExtensionServiceTest, GetSyncDataTerminated) { |
| 5377 InitializeEmptyExtensionService(); | 5379 InitializeEmptyExtensionService(); |
| 5378 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 5380 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 5379 TerminateExtension(good_crx); | 5381 TerminateExtension(good_crx); |
| 5380 const Extension* extension = service_->GetInstalledExtension(good_crx); | 5382 const Extension* extension = service_->GetInstalledExtension(good_crx); |
| 5381 ASSERT_TRUE(extension); | 5383 ASSERT_TRUE(extension); |
| 5382 | 5384 |
| 5383 TestSyncProcessorStub processor; | 5385 TestSyncProcessorStub processor; |
| 5384 service_->MergeDataAndStartSyncing( | 5386 service_->MergeDataAndStartSyncing( |
| 5385 syncer::EXTENSIONS, syncer::SyncDataList(), | 5387 syncer::EXTENSIONS, syncer::SyncDataList(), |
| 5386 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), | 5388 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 5387 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5389 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 5388 | 5390 |
| 5389 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); | 5391 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); |
| 5390 ASSERT_EQ(list.size(), 1U); | 5392 ASSERT_EQ(list.size(), 1U); |
| 5391 extensions::ExtensionSyncData data(list[0]); | 5393 extensions::ExtensionSyncData data(list[0]); |
| 5392 EXPECT_EQ(extension->id(), data.id()); | 5394 EXPECT_EQ(extension->id(), data.id()); |
| 5393 EXPECT_FALSE(data.uninstalled()); | 5395 EXPECT_FALSE(data.uninstalled()); |
| 5394 EXPECT_EQ(service_->IsExtensionEnabled(good_crx), data.enabled()); | 5396 EXPECT_EQ(service_->IsExtensionEnabled(good_crx), data.enabled()); |
| 5395 EXPECT_EQ(service_->IsIncognitoEnabled(good_crx), data.incognito_enabled()); | 5397 EXPECT_EQ(extension_util::IsIncognitoEnabled(good_crx, service_), |
| 5398 data.incognito_enabled()); |
| 5396 EXPECT_TRUE(data.version().Equals(*extension->version())); | 5399 EXPECT_TRUE(data.version().Equals(*extension->version())); |
| 5397 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), | 5400 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), |
| 5398 data.update_url()); | 5401 data.update_url()); |
| 5399 EXPECT_EQ(extension->name(), data.name()); | 5402 EXPECT_EQ(extension->name(), data.name()); |
| 5400 } | 5403 } |
| 5401 | 5404 |
| 5402 TEST_F(ExtensionServiceTest, GetSyncDataFilter) { | 5405 TEST_F(ExtensionServiceTest, GetSyncDataFilter) { |
| 5403 InitializeEmptyExtensionService(); | 5406 InitializeEmptyExtensionService(); |
| 5404 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 5407 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 5405 const Extension* extension = service_->GetInstalledExtension(good_crx); | 5408 const Extension* extension = service_->GetInstalledExtension(good_crx); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 5436 | 5439 |
| 5437 service_->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); | 5440 service_->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); |
| 5438 { | 5441 { |
| 5439 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); | 5442 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); |
| 5440 ASSERT_EQ(list.size(), 1U); | 5443 ASSERT_EQ(list.size(), 1U); |
| 5441 extensions::ExtensionSyncData data(list[0]); | 5444 extensions::ExtensionSyncData data(list[0]); |
| 5442 EXPECT_FALSE(data.enabled()); | 5445 EXPECT_FALSE(data.enabled()); |
| 5443 EXPECT_FALSE(data.incognito_enabled()); | 5446 EXPECT_FALSE(data.incognito_enabled()); |
| 5444 } | 5447 } |
| 5445 | 5448 |
| 5446 service_->SetIsIncognitoEnabled(good_crx, true); | 5449 extension_util::SetIsIncognitoEnabled(good_crx, service_, true); |
| 5447 { | 5450 { |
| 5448 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); | 5451 syncer::SyncDataList list = service_->GetAllSyncData(syncer::EXTENSIONS); |
| 5449 ASSERT_EQ(list.size(), 1U); | 5452 ASSERT_EQ(list.size(), 1U); |
| 5450 extensions::ExtensionSyncData data(list[0]); | 5453 extensions::ExtensionSyncData data(list[0]); |
| 5451 EXPECT_FALSE(data.enabled()); | 5454 EXPECT_FALSE(data.enabled()); |
| 5452 EXPECT_TRUE(data.incognito_enabled()); | 5455 EXPECT_TRUE(data.incognito_enabled()); |
| 5453 } | 5456 } |
| 5454 | 5457 |
| 5455 service_->EnableExtension(good_crx); | 5458 service_->EnableExtension(good_crx); |
| 5456 { | 5459 { |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5698 InitializeEmptyExtensionService(); | 5701 InitializeEmptyExtensionService(); |
| 5699 InitializeExtensionProcessManager(); | 5702 InitializeExtensionProcessManager(); |
| 5700 TestSyncProcessorStub processor; | 5703 TestSyncProcessorStub processor; |
| 5701 service_->MergeDataAndStartSyncing( | 5704 service_->MergeDataAndStartSyncing( |
| 5702 syncer::EXTENSIONS, syncer::SyncDataList(), | 5705 syncer::EXTENSIONS, syncer::SyncDataList(), |
| 5703 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), | 5706 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 5704 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5707 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 5705 | 5708 |
| 5706 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 5709 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 5707 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 5710 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 5708 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 5711 EXPECT_FALSE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5709 | 5712 |
| 5710 sync_pb::EntitySpecifics specifics; | 5713 sync_pb::EntitySpecifics specifics; |
| 5711 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 5714 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 5712 ext_specifics->set_id(good_crx); | 5715 ext_specifics->set_id(good_crx); |
| 5713 ext_specifics->set_version( | 5716 ext_specifics->set_version( |
| 5714 service_->GetInstalledExtension(good_crx)->version()->GetString()); | 5717 service_->GetInstalledExtension(good_crx)->version()->GetString()); |
| 5715 ext_specifics->set_enabled(false); | 5718 ext_specifics->set_enabled(false); |
| 5716 | 5719 |
| 5717 { | 5720 { |
| 5718 syncer::SyncData sync_data = | 5721 syncer::SyncData sync_data = |
| 5719 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); | 5722 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 5720 syncer::SyncChange sync_change(FROM_HERE, | 5723 syncer::SyncChange sync_change(FROM_HERE, |
| 5721 syncer::SyncChange::ACTION_UPDATE, | 5724 syncer::SyncChange::ACTION_UPDATE, |
| 5722 sync_data); | 5725 sync_data); |
| 5723 syncer::SyncChangeList list(1); | 5726 syncer::SyncChangeList list(1); |
| 5724 list[0] = sync_change; | 5727 list[0] = sync_change; |
| 5725 service_->ProcessSyncChanges(FROM_HERE, list); | 5728 service_->ProcessSyncChanges(FROM_HERE, list); |
| 5726 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); | 5729 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); |
| 5727 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 5730 EXPECT_FALSE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5728 } | 5731 } |
| 5729 | 5732 |
| 5730 { | 5733 { |
| 5731 ext_specifics->set_enabled(true); | 5734 ext_specifics->set_enabled(true); |
| 5732 ext_specifics->set_incognito_enabled(true); | 5735 ext_specifics->set_incognito_enabled(true); |
| 5733 syncer::SyncData sync_data = | 5736 syncer::SyncData sync_data = |
| 5734 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); | 5737 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 5735 syncer::SyncChange sync_change(FROM_HERE, | 5738 syncer::SyncChange sync_change(FROM_HERE, |
| 5736 syncer::SyncChange::ACTION_UPDATE, | 5739 syncer::SyncChange::ACTION_UPDATE, |
| 5737 sync_data); | 5740 sync_data); |
| 5738 syncer::SyncChangeList list(1); | 5741 syncer::SyncChangeList list(1); |
| 5739 list[0] = sync_change; | 5742 list[0] = sync_change; |
| 5740 service_->ProcessSyncChanges(FROM_HERE, list); | 5743 service_->ProcessSyncChanges(FROM_HERE, list); |
| 5741 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 5744 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 5742 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); | 5745 EXPECT_TRUE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5743 } | 5746 } |
| 5744 | 5747 |
| 5745 { | 5748 { |
| 5746 ext_specifics->set_enabled(false); | 5749 ext_specifics->set_enabled(false); |
| 5747 ext_specifics->set_incognito_enabled(true); | 5750 ext_specifics->set_incognito_enabled(true); |
| 5748 syncer::SyncData sync_data = | 5751 syncer::SyncData sync_data = |
| 5749 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); | 5752 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 5750 syncer::SyncChange sync_change(FROM_HERE, | 5753 syncer::SyncChange sync_change(FROM_HERE, |
| 5751 syncer::SyncChange::ACTION_UPDATE, | 5754 syncer::SyncChange::ACTION_UPDATE, |
| 5752 sync_data); | 5755 sync_data); |
| 5753 syncer::SyncChangeList list(1); | 5756 syncer::SyncChangeList list(1); |
| 5754 list[0] = sync_change; | 5757 list[0] = sync_change; |
| 5755 service_->ProcessSyncChanges(FROM_HERE, list); | 5758 service_->ProcessSyncChanges(FROM_HERE, list); |
| 5756 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); | 5759 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); |
| 5757 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); | 5760 EXPECT_TRUE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5758 } | 5761 } |
| 5759 | 5762 |
| 5760 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); | 5763 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); |
| 5761 } | 5764 } |
| 5762 | 5765 |
| 5763 TEST_F(ExtensionServiceTest, ProcessSyncDataTerminatedExtension) { | 5766 TEST_F(ExtensionServiceTest, ProcessSyncDataTerminatedExtension) { |
| 5764 InitializeExtensionServiceWithUpdater(); | 5767 InitializeExtensionServiceWithUpdater(); |
| 5765 TestSyncProcessorStub processor; | 5768 TestSyncProcessorStub processor; |
| 5766 service_->MergeDataAndStartSyncing( | 5769 service_->MergeDataAndStartSyncing( |
| 5767 syncer::EXTENSIONS, syncer::SyncDataList(), | 5770 syncer::EXTENSIONS, syncer::SyncDataList(), |
| 5768 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), | 5771 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 5769 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5772 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 5770 | 5773 |
| 5771 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 5774 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 5772 TerminateExtension(good_crx); | 5775 TerminateExtension(good_crx); |
| 5773 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 5776 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 5774 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 5777 EXPECT_FALSE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5775 | 5778 |
| 5776 sync_pb::EntitySpecifics specifics; | 5779 sync_pb::EntitySpecifics specifics; |
| 5777 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 5780 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 5778 ext_specifics->set_id(good_crx); | 5781 ext_specifics->set_id(good_crx); |
| 5779 ext_specifics->set_version( | 5782 ext_specifics->set_version( |
| 5780 service_->GetInstalledExtension(good_crx)->version()->GetString()); | 5783 service_->GetInstalledExtension(good_crx)->version()->GetString()); |
| 5781 ext_specifics->set_enabled(false); | 5784 ext_specifics->set_enabled(false); |
| 5782 ext_specifics->set_incognito_enabled(true); | 5785 ext_specifics->set_incognito_enabled(true); |
| 5783 syncer::SyncData sync_data = | 5786 syncer::SyncData sync_data = |
| 5784 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); | 5787 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 5785 syncer::SyncChange sync_change(FROM_HERE, | 5788 syncer::SyncChange sync_change(FROM_HERE, |
| 5786 syncer::SyncChange::ACTION_UPDATE, | 5789 syncer::SyncChange::ACTION_UPDATE, |
| 5787 sync_data); | 5790 sync_data); |
| 5788 syncer::SyncChangeList list(1); | 5791 syncer::SyncChangeList list(1); |
| 5789 list[0] = sync_change; | 5792 list[0] = sync_change; |
| 5790 | 5793 |
| 5791 service_->ProcessSyncChanges(FROM_HERE, list); | 5794 service_->ProcessSyncChanges(FROM_HERE, list); |
| 5792 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); | 5795 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); |
| 5793 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); | 5796 EXPECT_TRUE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5794 | 5797 |
| 5795 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); | 5798 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); |
| 5796 } | 5799 } |
| 5797 | 5800 |
| 5798 TEST_F(ExtensionServiceTest, ProcessSyncDataVersionCheck) { | 5801 TEST_F(ExtensionServiceTest, ProcessSyncDataVersionCheck) { |
| 5799 InitializeExtensionServiceWithUpdater(); | 5802 InitializeExtensionServiceWithUpdater(); |
| 5800 TestSyncProcessorStub processor; | 5803 TestSyncProcessorStub processor; |
| 5801 service_->MergeDataAndStartSyncing( | 5804 service_->MergeDataAndStartSyncing( |
| 5802 syncer::EXTENSIONS, syncer::SyncDataList(), | 5805 syncer::EXTENSIONS, syncer::SyncDataList(), |
| 5803 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), | 5806 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 5804 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5807 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 5805 | 5808 |
| 5806 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 5809 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 5807 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 5810 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 5808 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 5811 EXPECT_FALSE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5809 | 5812 |
| 5810 sync_pb::EntitySpecifics specifics; | 5813 sync_pb::EntitySpecifics specifics; |
| 5811 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 5814 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 5812 ext_specifics->set_id(good_crx); | 5815 ext_specifics->set_id(good_crx); |
| 5813 ext_specifics->set_enabled(true); | 5816 ext_specifics->set_enabled(true); |
| 5814 | 5817 |
| 5815 { | 5818 { |
| 5816 ext_specifics->set_version( | 5819 ext_specifics->set_version( |
| 5817 service_->GetInstalledExtension(good_crx)->version()->GetString()); | 5820 service_->GetInstalledExtension(good_crx)->version()->GetString()); |
| 5818 syncer::SyncData sync_data = | 5821 syncer::SyncData sync_data = |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5880 syncer::SyncData sync_data = | 5883 syncer::SyncData sync_data = |
| 5881 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); | 5884 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 5882 syncer::SyncChange sync_change(FROM_HERE, | 5885 syncer::SyncChange sync_change(FROM_HERE, |
| 5883 syncer::SyncChange::ACTION_UPDATE, | 5886 syncer::SyncChange::ACTION_UPDATE, |
| 5884 sync_data); | 5887 sync_data); |
| 5885 syncer::SyncChangeList list(1); | 5888 syncer::SyncChangeList list(1); |
| 5886 list[0] = sync_change; | 5889 list[0] = sync_change; |
| 5887 | 5890 |
| 5888 | 5891 |
| 5889 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 5892 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 5890 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 5893 EXPECT_FALSE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5891 service_->ProcessSyncChanges(FROM_HERE, list); | 5894 service_->ProcessSyncChanges(FROM_HERE, list); |
| 5892 EXPECT_TRUE(service_->updater()->WillCheckSoon()); | 5895 EXPECT_TRUE(service_->updater()->WillCheckSoon()); |
| 5893 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); | 5896 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); |
| 5894 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); | 5897 EXPECT_TRUE(extension_util::IsIncognitoEnabled(good_crx, service_)); |
| 5895 | 5898 |
| 5896 const extensions::PendingExtensionInfo* info; | 5899 const extensions::PendingExtensionInfo* info; |
| 5897 EXPECT_TRUE((info = service_->pending_extension_manager()-> | 5900 EXPECT_TRUE((info = service_->pending_extension_manager()-> |
| 5898 GetById(good_crx))); | 5901 GetById(good_crx))); |
| 5899 EXPECT_EQ(ext_specifics->update_url(), info->update_url().spec()); | 5902 EXPECT_EQ(ext_specifics->update_url(), info->update_url().spec()); |
| 5900 EXPECT_TRUE(info->is_from_sync()); | 5903 EXPECT_TRUE(info->is_from_sync()); |
| 5901 EXPECT_TRUE(info->install_silently()); | 5904 EXPECT_TRUE(info->install_silently()); |
| 5902 EXPECT_EQ(Manifest::INTERNAL, info->install_source()); | 5905 EXPECT_EQ(Manifest::INTERNAL, info->install_source()); |
| 5903 // TODO(akalin): Figure out a way to test |info.ShouldAllowInstall()|. | 5906 // TODO(akalin): Figure out a way to test |info.ShouldAllowInstall()|. |
| 5904 } | 5907 } |
| (...skipping 711 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6616 // ReconcileKnownDisabled(). | 6619 // ReconcileKnownDisabled(). |
| 6617 service_->EnableExtension(good2); | 6620 service_->EnableExtension(good2); |
| 6618 service_->ReconcileKnownDisabled(); | 6621 service_->ReconcileKnownDisabled(); |
| 6619 expected_extensions.insert(good2); | 6622 expected_extensions.insert(good2); |
| 6620 expected_disabled_extensions.erase(good2); | 6623 expected_disabled_extensions.erase(good2); |
| 6621 | 6624 |
| 6622 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); | 6625 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); |
| 6623 EXPECT_EQ(expected_disabled_extensions, | 6626 EXPECT_EQ(expected_disabled_extensions, |
| 6624 service_->disabled_extensions()->GetIDs()); | 6627 service_->disabled_extensions()->GetIDs()); |
| 6625 } | 6628 } |
| OLD | NEW |