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

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

Issue 6992047: Change the web store private install API to accept a localized extension name. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased, removed test files I added in separate CL Created 9 years, 7 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/file_util.h" 5 #include "base/file_util.h"
6 #include "base/memory/ref_counted.h" 6 #include "base/memory/ref_counted.h"
7 #include "base/path_service.h" 7 #include "base/path_service.h"
8 #include "base/scoped_temp_dir.h" 8 #include "base/scoped_temp_dir.h"
9 #include "base/scoped_temp_dir.h" 9 #include "base/scoped_temp_dir.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
11 #include "chrome/browser/extensions/sandboxed_extension_unpacker.h" 11 #include "chrome/browser/extensions/sandboxed_extension_unpacker.h"
12 #include "chrome/common/chrome_paths.h" 12 #include "chrome/common/chrome_paths.h"
13 #include "chrome/common/extensions/extension.h" 13 #include "chrome/common/extensions/extension.h"
14 #include "chrome/common/extensions/extension_constants.h" 14 #include "chrome/common/extensions/extension_constants.h"
15 #include "chrome/common/extensions/extension_unpacker.h" 15 #include "chrome/common/extensions/extension_unpacker.h"
16 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
17 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
18 #include "third_party/skia/include/core/SkBitmap.h" 18 #include "third_party/skia/include/core/SkBitmap.h"
19 19
20 namespace errors = extension_manifest_errors; 20 namespace errors = extension_manifest_errors;
21 namespace keys = extension_manifest_keys; 21 namespace keys = extension_manifest_keys;
22 22
23 using testing::_; 23 using testing::_;
24 using testing::Invoke; 24 using testing::Invoke;
25 25
26 namespace { 26 namespace {
27 27
28 void OnUnpackSuccess(const FilePath& temp_dir, 28 void OnUnpackSuccess(const FilePath& temp_dir,
29 const FilePath& extension_root, 29 const FilePath& extension_root,
30 const DictionaryValue* original_manifest,
30 const Extension* extension) { 31 const Extension* extension) {
31 // Don't delete temp_dir here, we need to do some post op checking. 32 // Don't delete temp_dir here, we need to do some post op checking.
32 } 33 }
33 34
34 } // namespace 35 } // namespace
35 36
36 class MockSandboxedExtensionUnpackerClient 37 class MockSandboxedExtensionUnpackerClient
37 : public SandboxedExtensionUnpackerClient { 38 : public SandboxedExtensionUnpackerClient {
38 public: 39 public:
39 virtual ~MockSandboxedExtensionUnpackerClient() {} 40 virtual ~MockSandboxedExtensionUnpackerClient() {}
40 41
41 MOCK_METHOD3(OnUnpackSuccess, 42 MOCK_METHOD4(OnUnpackSuccess,
42 void(const FilePath& temp_dir, 43 void(const FilePath& temp_dir,
43 const FilePath& extension_root, 44 const FilePath& extension_root,
45 const DictionaryValue* original_manifest,
44 const Extension* extension)); 46 const Extension* extension));
45 47
46 MOCK_METHOD1(OnUnpackFailure, 48 MOCK_METHOD1(OnUnpackFailure,
47 void(const std::string& error)); 49 void(const std::string& error));
48 50
49 void DelegateToFake() { 51 void DelegateToFake() {
50 ON_CALL(*this, OnUnpackSuccess(_, _, _)) 52 ON_CALL(*this, OnUnpackSuccess(_, _, _, _))
51 .WillByDefault(Invoke(::OnUnpackSuccess)); 53 .WillByDefault(Invoke(::OnUnpackSuccess));
52 } 54 }
53 }; 55 };
54 56
55 class SandboxedExtensionUnpackerTest : public testing::Test { 57 class SandboxedExtensionUnpackerTest : public testing::Test {
56 public: 58 public:
57 virtual void SetUp() { 59 virtual void SetUp() {
58 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 60 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
59 file_thread_.reset(new BrowserThread(BrowserThread::FILE, &loop_)); 61 file_thread_.reset(new BrowserThread(BrowserThread::FILE, &loop_));
60 // It will delete itself. 62 // It will delete itself.
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 ScopedTempDir temp_dir_; 152 ScopedTempDir temp_dir_;
151 FilePath temp_path_; 153 FilePath temp_path_;
152 MockSandboxedExtensionUnpackerClient* client_; 154 MockSandboxedExtensionUnpackerClient* client_;
153 scoped_ptr<ExtensionUnpacker> unpacker_; 155 scoped_ptr<ExtensionUnpacker> unpacker_;
154 scoped_refptr<SandboxedExtensionUnpacker> sandboxed_unpacker_; 156 scoped_refptr<SandboxedExtensionUnpacker> sandboxed_unpacker_;
155 MessageLoop loop_; 157 MessageLoop loop_;
156 scoped_ptr<BrowserThread> file_thread_; 158 scoped_ptr<BrowserThread> file_thread_;
157 }; 159 };
158 160
159 TEST_F(SandboxedExtensionUnpackerTest, NoCatalogsSuccess) { 161 TEST_F(SandboxedExtensionUnpackerTest, NoCatalogsSuccess) {
160 EXPECT_CALL(*client_, OnUnpackSuccess(_, _, _)); 162 EXPECT_CALL(*client_, OnUnpackSuccess(_, _, _, _));
161 EXPECT_CALL(*client_, OnUnpackFailure(_)).Times(0); 163 EXPECT_CALL(*client_, OnUnpackFailure(_)).Times(0);
162 164
163 SetupUnpacker("no_l10n.crx"); 165 SetupUnpacker("no_l10n.crx");
164 ASSERT_TRUE(unpacker_->Run()); 166 ASSERT_TRUE(unpacker_->Run());
165 ASSERT_TRUE(unpacker_->DumpImagesToFile()); 167 ASSERT_TRUE(unpacker_->DumpImagesToFile());
166 ASSERT_TRUE(unpacker_->DumpMessageCatalogsToFile()); 168 ASSERT_TRUE(unpacker_->DumpMessageCatalogsToFile());
167 169
168 // Check that there is no _locales folder. 170 // Check that there is no _locales folder.
169 FilePath install_path = 171 FilePath install_path =
170 GetInstallPath().Append(Extension::kLocaleFolder); 172 GetInstallPath().Append(Extension::kLocaleFolder);
171 EXPECT_FALSE(file_util::PathExists(install_path)); 173 EXPECT_FALSE(file_util::PathExists(install_path));
172 174
173 OnUnpackSucceeded(); 175 OnUnpackSucceeded();
174 176
175 // Check that there still is no _locales folder. 177 // Check that there still is no _locales folder.
176 EXPECT_FALSE(file_util::PathExists(install_path)); 178 EXPECT_FALSE(file_util::PathExists(install_path));
177 179
178 ASSERT_TRUE(TempFilesRemoved()); 180 ASSERT_TRUE(TempFilesRemoved());
179 } 181 }
180 182
181 TEST_F(SandboxedExtensionUnpackerTest, WithCatalogsSuccess) { 183 TEST_F(SandboxedExtensionUnpackerTest, WithCatalogsSuccess) {
182 EXPECT_CALL(*client_, OnUnpackSuccess(_, _, _)); 184 EXPECT_CALL(*client_, OnUnpackSuccess(_, _, _, _));
183 EXPECT_CALL(*client_, OnUnpackFailure(_)).Times(0); 185 EXPECT_CALL(*client_, OnUnpackFailure(_)).Times(0);
184 186
185 SetupUnpacker("good_l10n.crx"); 187 SetupUnpacker("good_l10n.crx");
186 ASSERT_TRUE(unpacker_->Run()); 188 ASSERT_TRUE(unpacker_->Run());
187 ASSERT_TRUE(unpacker_->DumpImagesToFile()); 189 ASSERT_TRUE(unpacker_->DumpImagesToFile());
188 ASSERT_TRUE(unpacker_->DumpMessageCatalogsToFile()); 190 ASSERT_TRUE(unpacker_->DumpMessageCatalogsToFile());
189 191
190 // Set timestamp on _locales/en_US/messages.json into the past. 192 // Set timestamp on _locales/en_US/messages.json into the past.
191 FilePath messages_file; 193 FilePath messages_file;
192 messages_file = GetInstallPath().Append(Extension::kLocaleFolder) 194 messages_file = GetInstallPath().Append(Extension::kLocaleFolder)
(...skipping 10 matching lines...) Expand all
203 OnUnpackSucceeded(); 205 OnUnpackSucceeded();
204 206
205 // Check that there is newer _locales/en_US/messages.json file. 207 // Check that there is newer _locales/en_US/messages.json file.
206 base::PlatformFileInfo new_info; 208 base::PlatformFileInfo new_info;
207 EXPECT_TRUE(file_util::GetFileInfo(messages_file, &new_info)); 209 EXPECT_TRUE(file_util::GetFileInfo(messages_file, &new_info));
208 210
209 EXPECT_TRUE(new_info.last_modified > old_info.last_modified); 211 EXPECT_TRUE(new_info.last_modified > old_info.last_modified);
210 212
211 ASSERT_TRUE(TempFilesRemoved()); 213 ASSERT_TRUE(TempFilesRemoved());
212 } 214 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/sandboxed_extension_unpacker.cc ('k') | chrome/common/extensions/api/extension_api.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698