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

Side by Side Diff: webkit/fileapi/local_file_system_operation_write_unittest.cc

Issue 12163003: Add FilePath to base namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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) 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 <vector> 5 #include <vector>
6 6
7 #include "base/files/scoped_temp_dir.h" 7 #include "base/files/scoped_temp_dir.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/memory/weak_ptr.h" 9 #include "base/memory/weak_ptr.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 25 matching lines...) Expand all
36 36
37 namespace { 37 namespace {
38 38
39 void AssertStatusEq(base::PlatformFileError expected, 39 void AssertStatusEq(base::PlatformFileError expected,
40 base::PlatformFileError actual) { 40 base::PlatformFileError actual) {
41 ASSERT_EQ(expected, actual); 41 ASSERT_EQ(expected, actual);
42 } 42 }
43 43
44 class MockQuotaManager : public QuotaManager { 44 class MockQuotaManager : public QuotaManager {
45 public: 45 public:
46 MockQuotaManager(const FilePath& base_dir, int64 quota) 46 MockQuotaManager(const base::FilePath& base_dir, int64 quota)
47 : QuotaManager(false /* is_incognito */, base_dir, 47 : QuotaManager(false /* is_incognito */, base_dir,
48 base::MessageLoopProxy::current(), 48 base::MessageLoopProxy::current(),
49 base::MessageLoopProxy::current(), 49 base::MessageLoopProxy::current(),
50 NULL /* special_storage_policy */), 50 NULL /* special_storage_policy */),
51 usage_(0), 51 usage_(0),
52 quota_(quota) {} 52 quota_(quota) {}
53 53
54 virtual void GetUsageAndQuota( 54 virtual void GetUsageAndQuota(
55 const GURL& origin, quota::StorageType type, 55 const GURL& origin, quota::StorageType type,
56 const GetUsageAndQuotaCallback& callback) OVERRIDE { 56 const GetUsageAndQuotaCallback& callback) OVERRIDE {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 102
103 protected: 103 protected:
104 const ChangeObserverList& change_observers() const { 104 const ChangeObserverList& change_observers() const {
105 return change_observers_; 105 return change_observers_;
106 } 106 }
107 107
108 MockFileChangeObserver* change_observer() { 108 MockFileChangeObserver* change_observer() {
109 return &change_observer_; 109 return &change_observer_;
110 } 110 }
111 111
112 FileSystemURL URLForPath(const FilePath& path) const { 112 FileSystemURL URLForPath(const base::FilePath& path) const {
113 return test_helper_.CreateURL(path); 113 return test_helper_.CreateURL(path);
114 } 114 }
115 115
116 // Callback function for recording test results. 116 // Callback function for recording test results.
117 FileSystemOperation::WriteCallback RecordWriteCallback() { 117 FileSystemOperation::WriteCallback RecordWriteCallback() {
118 return base::Bind(&LocalFileSystemOperationWriteTest::DidWrite, 118 return base::Bind(&LocalFileSystemOperationWriteTest::DidWrite,
119 AsWeakPtr()); 119 AsWeakPtr());
120 } 120 }
121 121
122 FileSystemOperation::StatusCallback RecordCancelCallback() { 122 FileSystemOperation::StatusCallback RecordCancelCallback() {
(...skipping 23 matching lines...) Expand all
146 FileSystemFileUtil* file_util() { 146 FileSystemFileUtil* file_util() {
147 return test_helper_.file_util(); 147 return test_helper_.file_util();
148 } 148 }
149 149
150 scoped_refptr<MockQuotaManager> quota_manager_; 150 scoped_refptr<MockQuotaManager> quota_manager_;
151 LocalFileSystemTestOriginHelper test_helper_; 151 LocalFileSystemTestOriginHelper test_helper_;
152 152
153 MessageLoop loop_; 153 MessageLoop loop_;
154 154
155 base::ScopedTempDir dir_; 155 base::ScopedTempDir dir_;
156 FilePath virtual_path_; 156 base::FilePath virtual_path_;
157 157
158 // For post-operation status. 158 // For post-operation status.
159 base::PlatformFileError status_; 159 base::PlatformFileError status_;
160 base::PlatformFileError cancel_status_; 160 base::PlatformFileError cancel_status_;
161 int64 bytes_written_; 161 int64 bytes_written_;
162 bool complete_; 162 bool complete_;
163 163
164 MockBlobURLRequestContext url_request_context_; 164 MockBlobURLRequestContext url_request_context_;
165 165
166 private: 166 private:
167 MockFileChangeObserver change_observer_; 167 MockFileChangeObserver change_observer_;
168 ChangeObserverList change_observers_; 168 ChangeObserverList change_observers_;
169 169
170 DISALLOW_COPY_AND_ASSIGN(LocalFileSystemOperationWriteTest); 170 DISALLOW_COPY_AND_ASSIGN(LocalFileSystemOperationWriteTest);
171 }; 171 };
172 172
173 void LocalFileSystemOperationWriteTest::SetUp() { 173 void LocalFileSystemOperationWriteTest::SetUp() {
174 ASSERT_TRUE(dir_.CreateUniqueTempDir()); 174 ASSERT_TRUE(dir_.CreateUniqueTempDir());
175 FilePath base_dir = dir_.path().AppendASCII("filesystem"); 175 base::FilePath base_dir = dir_.path().AppendASCII("filesystem");
176 176
177 quota_manager_ = new MockQuotaManager(base_dir, 1024); 177 quota_manager_ = new MockQuotaManager(base_dir, 1024);
178 test_helper_.SetUp(base_dir, 178 test_helper_.SetUp(base_dir,
179 false /* unlimited quota */, 179 false /* unlimited quota */,
180 quota_manager_->proxy()); 180 quota_manager_->proxy());
181 virtual_path_ = FilePath(FILE_PATH_LITERAL("temporary file")); 181 virtual_path_ = base::FilePath(FILE_PATH_LITERAL("temporary file"));
182 182
183 operation()->CreateFile( 183 operation()->CreateFile(
184 URLForPath(virtual_path_), true /* exclusive */, 184 URLForPath(virtual_path_), true /* exclusive */,
185 base::Bind(&AssertStatusEq, base::PLATFORM_FILE_OK)); 185 base::Bind(&AssertStatusEq, base::PLATFORM_FILE_OK));
186 } 186 }
187 187
188 void LocalFileSystemOperationWriteTest::TearDown() { 188 void LocalFileSystemOperationWriteTest::TearDown() {
189 quota_manager_ = NULL; 189 quota_manager_ = NULL;
190 test_helper_.TearDown(); 190 test_helper_.TearDown();
191 } 191 }
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 EXPECT_TRUE(complete()); 241 EXPECT_TRUE(complete());
242 242
243 EXPECT_EQ(0, change_observer()->get_and_reset_modify_file_count()); 243 EXPECT_EQ(0, change_observer()->get_and_reset_modify_file_count());
244 } 244 }
245 245
246 TEST_F(LocalFileSystemOperationWriteTest, TestWriteInvalidFile) { 246 TEST_F(LocalFileSystemOperationWriteTest, TestWriteInvalidFile) {
247 GURL blob_url("blob:writeinvalidfile"); 247 GURL blob_url("blob:writeinvalidfile");
248 ScopedTextBlob blob(url_request_context_, blob_url, "It\'ll not be written."); 248 ScopedTextBlob blob(url_request_context_, blob_url, "It\'ll not be written.");
249 249
250 operation()->Write(&url_request_context_, 250 operation()->Write(&url_request_context_,
251 URLForPath(FilePath(FILE_PATH_LITERAL("nonexist"))), 251 URLForPath(base::FilePath(FILE_PATH_LITERAL("nonexist"))),
252 blob_url, 0, RecordWriteCallback()); 252 blob_url, 0, RecordWriteCallback());
253 MessageLoop::current()->Run(); 253 MessageLoop::current()->Run();
254 254
255 EXPECT_EQ(0, bytes_written()); 255 EXPECT_EQ(0, bytes_written());
256 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, status()); 256 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, status());
257 EXPECT_TRUE(complete()); 257 EXPECT_TRUE(complete());
258 258
259 EXPECT_EQ(1, change_observer()->get_and_reset_modify_file_count()); 259 EXPECT_EQ(1, change_observer()->get_and_reset_modify_file_count());
260 } 260 }
261 261
262 TEST_F(LocalFileSystemOperationWriteTest, TestWriteDir) { 262 TEST_F(LocalFileSystemOperationWriteTest, TestWriteDir) {
263 FilePath virtual_dir_path(FILE_PATH_LITERAL("d")); 263 base::FilePath virtual_dir_path(FILE_PATH_LITERAL("d"));
264 operation()->CreateDirectory( 264 operation()->CreateDirectory(
265 URLForPath(virtual_dir_path), 265 URLForPath(virtual_dir_path),
266 true /* exclusive */, false /* recursive */, 266 true /* exclusive */, false /* recursive */,
267 base::Bind(&AssertStatusEq, base::PLATFORM_FILE_OK)); 267 base::Bind(&AssertStatusEq, base::PLATFORM_FILE_OK));
268 268
269 GURL blob_url("blob:writedir"); 269 GURL blob_url("blob:writedir");
270 ScopedTextBlob blob(url_request_context_, blob_url, 270 ScopedTextBlob blob(url_request_context_, blob_url,
271 "It\'ll not be written, too."); 271 "It\'ll not be written, too.");
272 272
273 operation()->Write(&url_request_context_, URLForPath(virtual_dir_path), 273 operation()->Write(&url_request_context_, URLForPath(virtual_dir_path),
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 323
324 EXPECT_EQ(0, change_observer()->get_and_reset_modify_file_count()); 324 EXPECT_EQ(0, change_observer()->get_and_reset_modify_file_count());
325 } 325 }
326 326
327 TEST_F(LocalFileSystemOperationWriteTest, TestImmediateCancelFailingWrite) { 327 TEST_F(LocalFileSystemOperationWriteTest, TestImmediateCancelFailingWrite) {
328 GURL blob_url("blob:writeinvalidfile"); 328 GURL blob_url("blob:writeinvalidfile");
329 ScopedTextBlob blob(url_request_context_, blob_url, "It\'ll not be written."); 329 ScopedTextBlob blob(url_request_context_, blob_url, "It\'ll not be written.");
330 330
331 FileSystemOperation* write_operation = operation(); 331 FileSystemOperation* write_operation = operation();
332 write_operation->Write(&url_request_context_, 332 write_operation->Write(&url_request_context_,
333 URLForPath(FilePath(FILE_PATH_LITERAL("nonexist"))), 333 URLForPath(base::FilePath(FILE_PATH_LITERAL("nonexist") )),
334 blob_url, 0, RecordWriteCallback()); 334 blob_url, 0, RecordWriteCallback());
335 write_operation->Cancel(RecordCancelCallback()); 335 write_operation->Cancel(RecordCancelCallback());
336 // We use RunAllPendings() instead of Run() here, because we won't dispatch 336 // We use RunAllPendings() instead of Run() here, because we won't dispatch
337 // callbacks after Cancel() is issued (so no chance to Quit) nor do we need 337 // callbacks after Cancel() is issued (so no chance to Quit) nor do we need
338 // to run another write cycle. 338 // to run another write cycle.
339 MessageLoop::current()->RunUntilIdle(); 339 MessageLoop::current()->RunUntilIdle();
340 340
341 // Issued Cancel() before receiving any response from Write(), 341 // Issued Cancel() before receiving any response from Write(),
342 // so nothing should have happen. 342 // so nothing should have happen.
343 EXPECT_EQ(0, bytes_written()); 343 EXPECT_EQ(0, bytes_written());
344 EXPECT_EQ(base::PLATFORM_FILE_ERROR_ABORT, status()); 344 EXPECT_EQ(base::PLATFORM_FILE_ERROR_ABORT, status());
345 EXPECT_EQ(base::PLATFORM_FILE_OK, cancel_status()); 345 EXPECT_EQ(base::PLATFORM_FILE_OK, cancel_status());
346 EXPECT_TRUE(complete()); 346 EXPECT_TRUE(complete());
347 347
348 EXPECT_EQ(0, change_observer()->get_and_reset_modify_file_count()); 348 EXPECT_EQ(0, change_observer()->get_and_reset_modify_file_count());
349 } 349 }
350 350
351 // TODO(ericu,dmikurube,kinuko): Add more tests for cancel cases. 351 // TODO(ericu,dmikurube,kinuko): Add more tests for cancel cases.
352 352
353 } // namespace fileapi 353 } // namespace fileapi
OLDNEW
« no previous file with comments | « webkit/fileapi/local_file_system_operation_unittest.cc ('k') | webkit/fileapi/local_file_system_quota_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698