Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Side by Side Diff: chrome/browser/extensions/extension_service_unittest.cc

Issue 25366003: Moved some functions off ExtensionService into a new file extension_util. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Compile failures Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service.cc ('k') | chrome/browser/extensions/extension_startup_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698