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

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

Issue 12578008: Move CrxFile, FileReader, ExtensionResource to src/extensions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 9 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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 #include "chrome/common/chrome_constants.h" 61 #include "chrome/common/chrome_constants.h"
62 #include "chrome/common/chrome_notification_types.h" 62 #include "chrome/common/chrome_notification_types.h"
63 #include "chrome/common/chrome_paths.h" 63 #include "chrome/common/chrome_paths.h"
64 #include "chrome/common/chrome_switches.h" 64 #include "chrome/common/chrome_switches.h"
65 #include "chrome/common/extensions/api/i18n/default_locale_handler.h" 65 #include "chrome/common/extensions/api/i18n/default_locale_handler.h"
66 #include "chrome/common/extensions/api/plugins/plugins_handler.h" 66 #include "chrome/common/extensions/api/plugins/plugins_handler.h"
67 #include "chrome/common/extensions/background_info.h" 67 #include "chrome/common/extensions/background_info.h"
68 #include "chrome/common/extensions/extension.h" 68 #include "chrome/common/extensions/extension.h"
69 #include "chrome/common/extensions/extension_l10n_util.h" 69 #include "chrome/common/extensions/extension_l10n_util.h"
70 #include "chrome/common/extensions/extension_manifest_constants.h" 70 #include "chrome/common/extensions/extension_manifest_constants.h"
71 #include "chrome/common/extensions/extension_resource.h"
72 #include "chrome/common/extensions/manifest_handler.h" 71 #include "chrome/common/extensions/manifest_handler.h"
73 #include "chrome/common/extensions/manifest_url_handler.h" 72 #include "chrome/common/extensions/manifest_url_handler.h"
74 #include "chrome/common/extensions/permissions/permission_set.h" 73 #include "chrome/common/extensions/permissions/permission_set.h"
75 #include "chrome/common/pref_names.h" 74 #include "chrome/common/pref_names.h"
76 #include "chrome/common/url_constants.h" 75 #include "chrome/common/url_constants.h"
77 #include "chrome/test/base/testing_profile.h" 76 #include "chrome/test/base/testing_profile.h"
78 #include "components/user_prefs/pref_registry_syncable.h" 77 #include "components/user_prefs/pref_registry_syncable.h"
79 #include "content/public/browser/dom_storage_context.h" 78 #include "content/public/browser/dom_storage_context.h"
80 #include "content/public/browser/gpu_data_manager.h" 79 #include "content/public/browser/gpu_data_manager.h"
81 #include "content/public/browser/indexed_db_context.h" 80 #include "content/public/browser/indexed_db_context.h"
82 #include "content/public/browser/notification_registrar.h" 81 #include "content/public/browser/notification_registrar.h"
83 #include "content/public/browser/notification_service.h" 82 #include "content/public/browser/notification_service.h"
84 #include "content/public/browser/plugin_service.h" 83 #include "content/public/browser/plugin_service.h"
85 #include "content/public/browser/storage_partition.h" 84 #include "content/public/browser/storage_partition.h"
86 #include "content/public/common/content_constants.h" 85 #include "content/public/common/content_constants.h"
87 #include "content/public/common/gpu_info.h" 86 #include "content/public/common/gpu_info.h"
88 #include "content/public/test/test_browser_thread.h" 87 #include "content/public/test/test_browser_thread.h"
88 #include "extensions/common/constants.h"
89 #include "extensions/common/extension_resource.h"
89 #include "extensions/common/url_pattern.h" 90 #include "extensions/common/url_pattern.h"
90 #include "googleurl/src/gurl.h" 91 #include "googleurl/src/gurl.h"
91 #include "grit/browser_resources.h" 92 #include "grit/browser_resources.h"
92 #include "net/cookies/canonical_cookie.h" 93 #include "net/cookies/canonical_cookie.h"
93 #include "net/cookies/cookie_monster.h" 94 #include "net/cookies/cookie_monster.h"
94 #include "net/cookies/cookie_options.h" 95 #include "net/cookies/cookie_options.h"
95 #include "net/url_request/url_request_context.h" 96 #include "net/url_request/url_request_context.h"
96 #include "net/url_request/url_request_context_getter.h" 97 #include "net/url_request/url_request_context_getter.h"
97 #include "sync/api/string_ordinal.h" 98 #include "sync/api/string_ordinal.h"
98 #include "sync/api/sync_error_factory.h" 99 #include "sync/api/sync_error_factory.h"
(...skipping 16 matching lines...) Expand all
115 using content::BrowserThread; 116 using content::BrowserThread;
116 using content::DOMStorageContext; 117 using content::DOMStorageContext;
117 using content::IndexedDBContext; 118 using content::IndexedDBContext;
118 using content::PluginService; 119 using content::PluginService;
119 using extensions::APIPermission; 120 using extensions::APIPermission;
120 using extensions::APIPermissionSet; 121 using extensions::APIPermissionSet;
121 using extensions::CrxInstaller; 122 using extensions::CrxInstaller;
122 using extensions::Extension; 123 using extensions::Extension;
123 using extensions::ExtensionCreator; 124 using extensions::ExtensionCreator;
124 using extensions::ExtensionPrefs; 125 using extensions::ExtensionPrefs;
126 using extensions::ExtensionResource;
125 using extensions::ExtensionSystem; 127 using extensions::ExtensionSystem;
126 using extensions::FeatureSwitch; 128 using extensions::FeatureSwitch;
127 using extensions::Manifest; 129 using extensions::Manifest;
128 using extensions::PermissionSet; 130 using extensions::PermissionSet;
129 using extensions::URLPatternSet; 131 using extensions::URLPatternSet;
130 132
131 namespace keys = extension_manifest_keys; 133 namespace keys = extension_manifest_keys;
132 134
133 namespace { 135 namespace {
134 136
(...skipping 1787 matching lines...) Expand 10 before | Expand all | Expand 10 after
1922 // not a valid extension. 1924 // not a valid extension.
1923 base::ScopedTempDir temp_dir2; 1925 base::ScopedTempDir temp_dir2;
1924 ASSERT_TRUE(temp_dir2.CreateUniqueTempDir()); 1926 ASSERT_TRUE(temp_dir2.CreateUniqueTempDir());
1925 creator.reset(new ExtensionCreator()); 1927 creator.reset(new ExtensionCreator());
1926 ASSERT_FALSE(creator->Run(temp_dir2.path(), crx_path, privkey_path, 1928 ASSERT_FALSE(creator->Run(temp_dir2.path(), crx_path, privkey_path,
1927 base::FilePath(), ExtensionCreator::kOverwriteCRX)); 1929 base::FilePath(), ExtensionCreator::kOverwriteCRX));
1928 1930
1929 // Try packing with an invalid manifest. 1931 // Try packing with an invalid manifest.
1930 std::string invalid_manifest_content = "I am not a manifest."; 1932 std::string invalid_manifest_content = "I am not a manifest.";
1931 ASSERT_TRUE(file_util::WriteFile( 1933 ASSERT_TRUE(file_util::WriteFile(
1932 temp_dir2.path().Append(Extension::kManifestFilename), 1934 temp_dir2.path().Append(extensions::kManifestFilename),
1933 invalid_manifest_content.c_str(), invalid_manifest_content.size())); 1935 invalid_manifest_content.c_str(), invalid_manifest_content.size()));
1934 creator.reset(new ExtensionCreator()); 1936 creator.reset(new ExtensionCreator());
1935 ASSERT_FALSE(creator->Run(temp_dir2.path(), crx_path, privkey_path, 1937 ASSERT_FALSE(creator->Run(temp_dir2.path(), crx_path, privkey_path,
1936 base::FilePath(), ExtensionCreator::kOverwriteCRX)); 1938 base::FilePath(), ExtensionCreator::kOverwriteCRX));
1937 } 1939 }
1938 1940
1939 // Test Packaging and installing an extension whose name contains punctuation. 1941 // Test Packaging and installing an extension whose name contains punctuation.
1940 TEST_F(ExtensionServiceTest, PackPunctuatedExtension) { 1942 TEST_F(ExtensionServiceTest, PackPunctuatedExtension) {
1941 InitializeEmptyExtensionService(); 1943 InitializeEmptyExtensionService();
1942 base::FilePath input_directory = data_dir_ 1944 base::FilePath input_directory = data_dir_
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
2140 // Tests that we can change the ID of an unpacked extension by adding a key 2142 // Tests that we can change the ID of an unpacked extension by adding a key
2141 // to its manifest. 2143 // to its manifest.
2142 TEST_F(ExtensionServiceTest, UnpackedExtensionCanChangeID) { 2144 TEST_F(ExtensionServiceTest, UnpackedExtensionCanChangeID) {
2143 InitializeEmptyExtensionService(); 2145 InitializeEmptyExtensionService();
2144 2146
2145 base::ScopedTempDir temp; 2147 base::ScopedTempDir temp;
2146 ASSERT_TRUE(temp.CreateUniqueTempDir()); 2148 ASSERT_TRUE(temp.CreateUniqueTempDir());
2147 2149
2148 base::FilePath extension_path = temp.path(); 2150 base::FilePath extension_path = temp.path();
2149 base::FilePath manifest_path = 2151 base::FilePath manifest_path =
2150 extension_path.Append(Extension::kManifestFilename); 2152 extension_path.Append(extensions::kManifestFilename);
2151 base::FilePath manifest_no_key = data_dir_. 2153 base::FilePath manifest_no_key = data_dir_.
2152 AppendASCII("unpacked"). 2154 AppendASCII("unpacked").
2153 AppendASCII("manifest_no_key.json"); 2155 AppendASCII("manifest_no_key.json");
2154 2156
2155 base::FilePath manifest_with_key = data_dir_. 2157 base::FilePath manifest_with_key = data_dir_.
2156 AppendASCII("unpacked"). 2158 AppendASCII("unpacked").
2157 AppendASCII("manifest_with_key.json"); 2159 AppendASCII("manifest_with_key.json");
2158 2160
2159 ASSERT_TRUE(file_util::PathExists(manifest_no_key)); 2161 ASSERT_TRUE(file_util::PathExists(manifest_no_key));
2160 ASSERT_TRUE(file_util::PathExists(manifest_with_key)); 2162 ASSERT_TRUE(file_util::PathExists(manifest_with_key));
(...skipping 30 matching lines...) Expand all
2191 // Paths to test data files. 2193 // Paths to test data files.
2192 base::FilePath source_manifest = source_data_dir.AppendASCII("manifest.json"); 2194 base::FilePath source_manifest = source_data_dir.AppendASCII("manifest.json");
2193 ASSERT_TRUE(file_util::PathExists(source_manifest)); 2195 ASSERT_TRUE(file_util::PathExists(source_manifest));
2194 base::FilePath source_icon = source_data_dir.AppendASCII("icon.png"); 2196 base::FilePath source_icon = source_data_dir.AppendASCII("icon.png");
2195 ASSERT_TRUE(file_util::PathExists(source_icon)); 2197 ASSERT_TRUE(file_util::PathExists(source_icon));
2196 2198
2197 // Set up the temporary extension directory. 2199 // Set up the temporary extension directory.
2198 base::ScopedTempDir temp; 2200 base::ScopedTempDir temp;
2199 ASSERT_TRUE(temp.CreateUniqueTempDir()); 2201 ASSERT_TRUE(temp.CreateUniqueTempDir());
2200 base::FilePath extension_path = temp.path(); 2202 base::FilePath extension_path = temp.path();
2201 base::FilePath manifest = extension_path.Append(Extension::kManifestFilename); 2203 base::FilePath manifest = extension_path.Append(
2204 extensions::kManifestFilename);
2202 base::FilePath icon_symlink = extension_path.AppendASCII("icon.png"); 2205 base::FilePath icon_symlink = extension_path.AppendASCII("icon.png");
2203 file_util::CopyFile(source_manifest, manifest); 2206 file_util::CopyFile(source_manifest, manifest);
2204 file_util::CreateSymbolicLink(source_icon, icon_symlink); 2207 file_util::CreateSymbolicLink(source_icon, icon_symlink);
2205 2208
2206 // Load extension. 2209 // Load extension.
2207 InitializeEmptyExtensionService(); 2210 InitializeEmptyExtensionService();
2208 extensions::UnpackedInstaller::Create(service_)->Load(extension_path); 2211 extensions::UnpackedInstaller::Create(service_)->Load(extension_path);
2209 loop_.RunUntilIdle(); 2212 loop_.RunUntilIdle();
2210 2213
2211 EXPECT_TRUE(GetErrors().empty()); 2214 EXPECT_TRUE(GetErrors().empty());
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after
2630 TEST_F(ExtensionServiceTest, LoadExtensionsCanDowngrade) { 2633 TEST_F(ExtensionServiceTest, LoadExtensionsCanDowngrade) {
2631 InitializeEmptyExtensionService(); 2634 InitializeEmptyExtensionService();
2632 2635
2633 base::ScopedTempDir temp; 2636 base::ScopedTempDir temp;
2634 ASSERT_TRUE(temp.CreateUniqueTempDir()); 2637 ASSERT_TRUE(temp.CreateUniqueTempDir());
2635 2638
2636 // We'll write the extension manifest dynamically to a temporary path 2639 // We'll write the extension manifest dynamically to a temporary path
2637 // to make it easier to change the version number. 2640 // to make it easier to change the version number.
2638 base::FilePath extension_path = temp.path(); 2641 base::FilePath extension_path = temp.path();
2639 base::FilePath manifest_path = 2642 base::FilePath manifest_path =
2640 extension_path.Append(Extension::kManifestFilename); 2643 extension_path.Append(extensions::kManifestFilename);
2641 ASSERT_FALSE(file_util::PathExists(manifest_path)); 2644 ASSERT_FALSE(file_util::PathExists(manifest_path));
2642 2645
2643 // Start with version 2.0. 2646 // Start with version 2.0.
2644 DictionaryValue manifest; 2647 DictionaryValue manifest;
2645 manifest.SetString("version", "2.0"); 2648 manifest.SetString("version", "2.0");
2646 manifest.SetString("name", "LOAD Downgrade Test"); 2649 manifest.SetString("name", "LOAD Downgrade Test");
2647 manifest.SetInteger("manifest_version", 2); 2650 manifest.SetInteger("manifest_version", 2);
2648 2651
2649 JSONFileValueSerializer serializer(manifest_path); 2652 JSONFileValueSerializer serializer(manifest_path);
2650 ASSERT_TRUE(serializer.Serialize(manifest)); 2653 ASSERT_TRUE(serializer.Serialize(manifest));
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after
3198 } 3201 }
3199 3202
3200 // Install a component extension. 3203 // Install a component extension.
3201 base::FilePath path = data_dir_ 3204 base::FilePath path = data_dir_
3202 .AppendASCII("good") 3205 .AppendASCII("good")
3203 .AppendASCII("Extensions") 3206 .AppendASCII("Extensions")
3204 .AppendASCII(good0) 3207 .AppendASCII(good0)
3205 .AppendASCII("1.0.0.0"); 3208 .AppendASCII("1.0.0.0");
3206 std::string manifest; 3209 std::string manifest;
3207 ASSERT_TRUE(file_util::ReadFileToString( 3210 ASSERT_TRUE(file_util::ReadFileToString(
3208 path.Append(Extension::kManifestFilename), &manifest)); 3211 path.Append(extensions::kManifestFilename), &manifest));
3209 service_->component_loader()->Add(manifest, path); 3212 service_->component_loader()->Add(manifest, path);
3210 service_->Init(); 3213 service_->Init();
3211 3214
3212 // Extension should be installed despite blacklist. 3215 // Extension should be installed despite blacklist.
3213 ASSERT_EQ(1u, service_->extensions()->size()); 3216 ASSERT_EQ(1u, service_->extensions()->size());
3214 EXPECT_TRUE(service_->GetExtensionById(good0, false)); 3217 EXPECT_TRUE(service_->GetExtensionById(good0, false));
3215 3218
3216 // Poke external providers and make sure the extension is still present. 3219 // Poke external providers and make sure the extension is still present.
3217 service_->CheckForExternalUpdates(); 3220 service_->CheckForExternalUpdates();
3218 ASSERT_EQ(1u, service_->extensions()->size()); 3221 ASSERT_EQ(1u, service_->extensions()->size());
(...skipping 1515 matching lines...) Expand 10 before | Expand all | Expand 10 after
4734 set_extensions_enabled(false); 4737 set_extensions_enabled(false);
4735 4738
4736 base::FilePath path = data_dir_ 4739 base::FilePath path = data_dir_
4737 .AppendASCII("good") 4740 .AppendASCII("good")
4738 .AppendASCII("Extensions") 4741 .AppendASCII("Extensions")
4739 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") 4742 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
4740 .AppendASCII("1.0.0.0"); 4743 .AppendASCII("1.0.0.0");
4741 4744
4742 std::string manifest; 4745 std::string manifest;
4743 ASSERT_TRUE(file_util::ReadFileToString( 4746 ASSERT_TRUE(file_util::ReadFileToString(
4744 path.Append(Extension::kManifestFilename), &manifest)); 4747 path.Append(extensions::kManifestFilename), &manifest));
4745 4748
4746 service_->component_loader()->Add(manifest, path); 4749 service_->component_loader()->Add(manifest, path);
4747 service_->Init(); 4750 service_->Init();
4748 4751
4749 // Note that we do not pump messages -- the extension should be loaded 4752 // Note that we do not pump messages -- the extension should be loaded
4750 // immediately. 4753 // immediately.
4751 4754
4752 EXPECT_EQ(0u, GetErrors().size()); 4755 EXPECT_EQ(0u, GetErrors().size());
4753 ASSERT_EQ(1u, loaded_.size()); 4756 ASSERT_EQ(1u, loaded_.size());
4754 EXPECT_EQ(Manifest::COMPONENT, loaded_[0]->location()); 4757 EXPECT_EQ(Manifest::COMPONENT, loaded_[0]->location());
(...skipping 1138 matching lines...) Expand 10 before | Expand all | Expand 10 after
5893 EXPECT_FALSE(extensions::HasExternalInstallError(service_)); 5896 EXPECT_FALSE(extensions::HasExternalInstallError(service_));
5894 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); 5897 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx));
5895 EXPECT_TRUE(service_->IsExtensionEnabled(page_action)); 5898 EXPECT_TRUE(service_->IsExtensionEnabled(page_action));
5896 5899
5897 ExtensionPrefs* prefs = service_->extension_prefs(); 5900 ExtensionPrefs* prefs = service_->extension_prefs();
5898 EXPECT_NE(0, prefs->GetDisableReasons(good_crx) & 5901 EXPECT_NE(0, prefs->GetDisableReasons(good_crx) &
5899 Extension::DISABLE_SIDELOAD_WIPEOUT); 5902 Extension::DISABLE_SIDELOAD_WIPEOUT);
5900 EXPECT_EQ(0, prefs->GetDisableReasons(page_action) & 5903 EXPECT_EQ(0, prefs->GetDisableReasons(page_action) &
5901 Extension::DISABLE_SIDELOAD_WIPEOUT); 5904 Extension::DISABLE_SIDELOAD_WIPEOUT);
5902 } 5905 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service.cc ('k') | chrome/browser/extensions/extension_ui_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698