| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/extension_service_unittest.h" | 5 #include "chrome/browser/extensions/extension_service_unittest.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 2235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2246 InitializeEmptyExtensionService(); | 2246 InitializeEmptyExtensionService(); |
| 2247 | 2247 |
| 2248 FilePath path = data_dir_.AppendASCII("good.crx"); | 2248 FilePath path = data_dir_.AppendASCII("good.crx"); |
| 2249 | 2249 |
| 2250 const Extension* good = InstallCRX(path, INSTALL_NEW); | 2250 const Extension* good = InstallCRX(path, INSTALL_NEW); |
| 2251 ASSERT_EQ("1.0.0.0", good->VersionString()); | 2251 ASSERT_EQ("1.0.0.0", good->VersionString()); |
| 2252 ASSERT_EQ(good_crx, good->id()); | 2252 ASSERT_EQ(good_crx, good->id()); |
| 2253 | 2253 |
| 2254 // Disable it and allow it to run in incognito. These settings should carry | 2254 // Disable it and allow it to run in incognito. These settings should carry |
| 2255 // over to the updated version. | 2255 // over to the updated version. |
| 2256 service_->DisableExtension(good->id()); | 2256 service_->DisableExtension(good->id(), Extension::DISABLE_USER_ACTION); |
| 2257 service_->SetIsIncognitoEnabled(good->id(), true); | 2257 service_->SetIsIncognitoEnabled(good->id(), true); |
| 2258 service_->extension_prefs()->SetDidExtensionEscalatePermissions(good, true); | 2258 service_->extension_prefs()->SetDidExtensionEscalatePermissions(good, true); |
| 2259 | 2259 |
| 2260 path = data_dir_.AppendASCII("good2.crx"); | 2260 path = data_dir_.AppendASCII("good2.crx"); |
| 2261 UpdateExtension(good_crx, path, INSTALLED); | 2261 UpdateExtension(good_crx, path, INSTALLED); |
| 2262 ASSERT_EQ(1u, service_->disabled_extensions()->size()); | 2262 ASSERT_EQ(1u, service_->disabled_extensions()->size()); |
| 2263 const Extension* good2 = service_->GetExtensionById(good_crx, true); | 2263 const Extension* good2 = service_->GetExtensionById(good_crx, true); |
| 2264 ASSERT_EQ("1.0.0.1", good2->version()->GetString()); | 2264 ASSERT_EQ("1.0.0.1", good2->version()->GetString()); |
| 2265 EXPECT_TRUE(service_->IsIncognitoEnabled(good2->id())); | 2265 EXPECT_TRUE(service_->IsIncognitoEnabled(good2->id())); |
| 2266 EXPECT_TRUE(service_->extension_prefs()->DidExtensionEscalatePermissions( | 2266 EXPECT_TRUE(service_->extension_prefs()->DidExtensionEscalatePermissions( |
| (...skipping 658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2925 TEST_F(ExtensionServiceTest, DisableExtension) { | 2925 TEST_F(ExtensionServiceTest, DisableExtension) { |
| 2926 InitializeEmptyExtensionService(); | 2926 InitializeEmptyExtensionService(); |
| 2927 | 2927 |
| 2928 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 2928 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 2929 EXPECT_FALSE(service_->extensions()->is_empty()); | 2929 EXPECT_FALSE(service_->extensions()->is_empty()); |
| 2930 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); | 2930 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); |
| 2931 EXPECT_TRUE(service_->GetExtensionById(good_crx, false)); | 2931 EXPECT_TRUE(service_->GetExtensionById(good_crx, false)); |
| 2932 EXPECT_TRUE(service_->disabled_extensions()->is_empty()); | 2932 EXPECT_TRUE(service_->disabled_extensions()->is_empty()); |
| 2933 | 2933 |
| 2934 // Disable it. | 2934 // Disable it. |
| 2935 service_->DisableExtension(good_crx); | 2935 service_->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); |
| 2936 | 2936 |
| 2937 EXPECT_TRUE(service_->extensions()->is_empty()); | 2937 EXPECT_TRUE(service_->extensions()->is_empty()); |
| 2938 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); | 2938 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); |
| 2939 EXPECT_FALSE(service_->GetExtensionById(good_crx, false)); | 2939 EXPECT_FALSE(service_->GetExtensionById(good_crx, false)); |
| 2940 EXPECT_FALSE(service_->disabled_extensions()->is_empty()); | 2940 EXPECT_FALSE(service_->disabled_extensions()->is_empty()); |
| 2941 } | 2941 } |
| 2942 | 2942 |
| 2943 TEST_F(ExtensionServiceTest, DisableTerminatedExtension) { | 2943 TEST_F(ExtensionServiceTest, DisableTerminatedExtension) { |
| 2944 InitializeEmptyExtensionService(); | 2944 InitializeEmptyExtensionService(); |
| 2945 | 2945 |
| 2946 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 2946 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 2947 TerminateExtension(good_crx); | 2947 TerminateExtension(good_crx); |
| 2948 EXPECT_TRUE(service_->GetTerminatedExtension(good_crx)); | 2948 EXPECT_TRUE(service_->GetTerminatedExtension(good_crx)); |
| 2949 | 2949 |
| 2950 // Disable it. | 2950 // Disable it. |
| 2951 service_->DisableExtension(good_crx); | 2951 service_->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); |
| 2952 | 2952 |
| 2953 EXPECT_FALSE(service_->GetTerminatedExtension(good_crx)); | 2953 EXPECT_FALSE(service_->GetTerminatedExtension(good_crx)); |
| 2954 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); | 2954 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); |
| 2955 EXPECT_FALSE(service_->disabled_extensions()->is_empty()); | 2955 EXPECT_FALSE(service_->disabled_extensions()->is_empty()); |
| 2956 } | 2956 } |
| 2957 | 2957 |
| 2958 // Tests disabling all extensions (simulating --disable-extensions flag). | 2958 // Tests disabling all extensions (simulating --disable-extensions flag). |
| 2959 TEST_F(ExtensionServiceTest, DisableAllExtensions) { | 2959 TEST_F(ExtensionServiceTest, DisableAllExtensions) { |
| 2960 InitializeEmptyExtensionService(); | 2960 InitializeEmptyExtensionService(); |
| 2961 | 2961 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 2990 } | 2990 } |
| 2991 | 2991 |
| 2992 // Tests reloading extensions. | 2992 // Tests reloading extensions. |
| 2993 TEST_F(ExtensionServiceTest, ReloadExtensions) { | 2993 TEST_F(ExtensionServiceTest, ReloadExtensions) { |
| 2994 InitializeEmptyExtensionService(); | 2994 InitializeEmptyExtensionService(); |
| 2995 | 2995 |
| 2996 // Simple extension that should install without error. | 2996 // Simple extension that should install without error. |
| 2997 FilePath path = data_dir_.AppendASCII("good.crx"); | 2997 FilePath path = data_dir_.AppendASCII("good.crx"); |
| 2998 InstallCRX(path, INSTALL_NEW); | 2998 InstallCRX(path, INSTALL_NEW); |
| 2999 const char* extension_id = good_crx; | 2999 const char* extension_id = good_crx; |
| 3000 service_->DisableExtension(extension_id); | 3000 service_->DisableExtension(extension_id, Extension::DISABLE_USER_ACTION); |
| 3001 | 3001 |
| 3002 EXPECT_EQ(0u, service_->extensions()->size()); | 3002 EXPECT_EQ(0u, service_->extensions()->size()); |
| 3003 EXPECT_EQ(1u, service_->disabled_extensions()->size()); | 3003 EXPECT_EQ(1u, service_->disabled_extensions()->size()); |
| 3004 | 3004 |
| 3005 service_->ReloadExtensions(); | 3005 service_->ReloadExtensions(); |
| 3006 | 3006 |
| 3007 // Extension counts shouldn't change. | 3007 // Extension counts shouldn't change. |
| 3008 EXPECT_EQ(0u, service_->extensions()->size()); | 3008 EXPECT_EQ(0u, service_->extensions()->size()); |
| 3009 EXPECT_EQ(1u, service_->disabled_extensions()->size()); | 3009 EXPECT_EQ(1u, service_->disabled_extensions()->size()); |
| 3010 | 3010 |
| (...skipping 1055 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4066 scoped_ptr<SyncChangeProcessor>(new TestSyncProcessorStub)); | 4066 scoped_ptr<SyncChangeProcessor>(new TestSyncProcessorStub)); |
| 4067 | 4067 |
| 4068 { | 4068 { |
| 4069 SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); | 4069 SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); |
| 4070 ASSERT_EQ(list.size(), 1U); | 4070 ASSERT_EQ(list.size(), 1U); |
| 4071 ExtensionSyncData data(list[0]); | 4071 ExtensionSyncData data(list[0]); |
| 4072 EXPECT_TRUE(data.enabled()); | 4072 EXPECT_TRUE(data.enabled()); |
| 4073 EXPECT_FALSE(data.incognito_enabled()); | 4073 EXPECT_FALSE(data.incognito_enabled()); |
| 4074 } | 4074 } |
| 4075 | 4075 |
| 4076 service_->DisableExtension(good_crx); | 4076 service_->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); |
| 4077 { | 4077 { |
| 4078 SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); | 4078 SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); |
| 4079 ASSERT_EQ(list.size(), 1U); | 4079 ASSERT_EQ(list.size(), 1U); |
| 4080 ExtensionSyncData data(list[0]); | 4080 ExtensionSyncData data(list[0]); |
| 4081 EXPECT_FALSE(data.enabled()); | 4081 EXPECT_FALSE(data.enabled()); |
| 4082 EXPECT_FALSE(data.incognito_enabled()); | 4082 EXPECT_FALSE(data.incognito_enabled()); |
| 4083 } | 4083 } |
| 4084 | 4084 |
| 4085 service_->SetIsIncognitoEnabled(good_crx, true); | 4085 service_->SetIsIncognitoEnabled(good_crx, true); |
| 4086 { | 4086 { |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4187 InstallCRX(data_dir_.AppendASCII("page_action.crx"), INSTALL_NEW); | 4187 InstallCRX(data_dir_.AppendASCII("page_action.crx"), INSTALL_NEW); |
| 4188 InstallCRX(data_dir_.AppendASCII("theme.crx"), INSTALL_NEW); | 4188 InstallCRX(data_dir_.AppendASCII("theme.crx"), INSTALL_NEW); |
| 4189 InstallCRX(data_dir_.AppendASCII("theme2.crx"), INSTALL_NEW); | 4189 InstallCRX(data_dir_.AppendASCII("theme2.crx"), INSTALL_NEW); |
| 4190 | 4190 |
| 4191 TestSyncProcessorStub processor; | 4191 TestSyncProcessorStub processor; |
| 4192 service_->MergeDataAndStartSyncing(syncable::APPS, SyncDataList(), | 4192 service_->MergeDataAndStartSyncing(syncable::APPS, SyncDataList(), |
| 4193 scoped_ptr<SyncChangeProcessor>(new TestSyncProcessorStub)); | 4193 scoped_ptr<SyncChangeProcessor>(new TestSyncProcessorStub)); |
| 4194 service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), | 4194 service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), |
| 4195 scoped_ptr<SyncChangeProcessor>(new TestSyncProcessorStub)); | 4195 scoped_ptr<SyncChangeProcessor>(new TestSyncProcessorStub)); |
| 4196 | 4196 |
| 4197 service_->DisableExtension(page_action); | 4197 service_->DisableExtension(page_action, Extension::DISABLE_USER_ACTION); |
| 4198 TerminateExtension(theme2_crx); | 4198 TerminateExtension(theme2_crx); |
| 4199 | 4199 |
| 4200 EXPECT_EQ(0u, service_->GetAllSyncData(syncable::APPS).size()); | 4200 EXPECT_EQ(0u, service_->GetAllSyncData(syncable::APPS).size()); |
| 4201 EXPECT_EQ(2u, service_->GetAllSyncData(syncable::EXTENSIONS).size()); | 4201 EXPECT_EQ(2u, service_->GetAllSyncData(syncable::EXTENSIONS).size()); |
| 4202 } | 4202 } |
| 4203 | 4203 |
| 4204 TEST_F(ExtensionServiceTest, ProcessSyncDataUninstall) { | 4204 TEST_F(ExtensionServiceTest, ProcessSyncDataUninstall) { |
| 4205 InitializeEmptyExtensionService(); | 4205 InitializeEmptyExtensionService(); |
| 4206 TestSyncProcessorStub processor; | 4206 TestSyncProcessorStub processor; |
| 4207 service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), | 4207 service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), |
| (...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4860 provider->UpdateOrAddExtension(hosted_app, "1.0.0.0", | 4860 provider->UpdateOrAddExtension(hosted_app, "1.0.0.0", |
| 4861 data_dir_.AppendASCII("hosted_app.crx")); | 4861 data_dir_.AppendASCII("hosted_app.crx")); |
| 4862 | 4862 |
| 4863 service_->CheckForExternalUpdates(); | 4863 service_->CheckForExternalUpdates(); |
| 4864 loop_.RunAllPending(); | 4864 loop_.RunAllPending(); |
| 4865 | 4865 |
| 4866 ASSERT_TRUE(service_->PopulateExtensionGlobalError( | 4866 ASSERT_TRUE(service_->PopulateExtensionGlobalError( |
| 4867 extension_global_error.get())); | 4867 extension_global_error.get())); |
| 4868 ASSERT_EQ(1u, extension_global_error->get_external_extension_ids()->size()); | 4868 ASSERT_EQ(1u, extension_global_error->get_external_extension_ids()->size()); |
| 4869 } | 4869 } |
| OLD | NEW |