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

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: Windows compile 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 2857 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698