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

Side by Side Diff: content/browser/download/base_file_unittest.cc

Issue 18286004: Move PathExists to base namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 5 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
« no previous file with comments | « content/browser/download/base_file_posix.cc ('k') | content/browser/download/base_file_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "content/browser/download/base_file.h" 5 #include "content/browser/download/base_file.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/files/scoped_temp_dir.h" 8 #include "base/files/scoped_temp_dir.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 // Make sure the data has been properly written to disk. 72 // Make sure the data has been properly written to disk.
73 std::string disk_data; 73 std::string disk_data;
74 EXPECT_TRUE(file_util::ReadFileToString(full_path, &disk_data)); 74 EXPECT_TRUE(file_util::ReadFileToString(full_path, &disk_data));
75 EXPECT_EQ(expected_data_, disk_data); 75 EXPECT_EQ(expected_data_, disk_data);
76 } 76 }
77 77
78 // Make sure the mock BrowserThread outlives the BaseFile to satisfy 78 // Make sure the mock BrowserThread outlives the BaseFile to satisfy
79 // thread checks inside it. 79 // thread checks inside it.
80 base_file_.reset(); 80 base_file_.reset();
81 81
82 EXPECT_EQ(expect_file_survives_, file_util::PathExists(full_path)); 82 EXPECT_EQ(expect_file_survives_, base::PathExists(full_path));
83 } 83 }
84 84
85 void ResetHash() { 85 void ResetHash() {
86 secure_hash_.reset(crypto::SecureHash::Create(crypto::SecureHash::SHA256)); 86 secure_hash_.reset(crypto::SecureHash::Create(crypto::SecureHash::SHA256));
87 memcpy(sha256_hash_, kEmptySha256Hash, kSha256HashLen); 87 memcpy(sha256_hash_, kEmptySha256Hash, kSha256HashLen);
88 } 88 }
89 89
90 void UpdateHash(const char* data, size_t length) { 90 void UpdateHash(const char* data, size_t length) {
91 secure_hash_->Update(data, length); 91 secure_hash_->Update(data, length);
92 } 92 }
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 // Test the most basic scenario: just create the object and do a sanity check 232 // Test the most basic scenario: just create the object and do a sanity check
233 // on all its accessors. This is actually a case that rarely happens 233 // on all its accessors. This is actually a case that rarely happens
234 // in production, where we would at least Initialize it. 234 // in production, where we would at least Initialize it.
235 TEST_F(BaseFileTest, CreateDestroy) { 235 TEST_F(BaseFileTest, CreateDestroy) {
236 EXPECT_EQ(base::FilePath().value(), base_file_->full_path().value()); 236 EXPECT_EQ(base::FilePath().value(), base_file_->full_path().value());
237 } 237 }
238 238
239 // Cancel the download explicitly. 239 // Cancel the download explicitly.
240 TEST_F(BaseFileTest, Cancel) { 240 TEST_F(BaseFileTest, Cancel) {
241 ASSERT_TRUE(InitializeFile()); 241 ASSERT_TRUE(InitializeFile());
242 EXPECT_TRUE(file_util::PathExists(base_file_->full_path())); 242 EXPECT_TRUE(base::PathExists(base_file_->full_path()));
243 base_file_->Cancel(); 243 base_file_->Cancel();
244 EXPECT_FALSE(file_util::PathExists(base_file_->full_path())); 244 EXPECT_FALSE(base::PathExists(base_file_->full_path()));
245 EXPECT_NE(base::FilePath().value(), base_file_->full_path().value()); 245 EXPECT_NE(base::FilePath().value(), base_file_->full_path().value());
246 } 246 }
247 247
248 // Write data to the file and detach it, so it doesn't get deleted 248 // Write data to the file and detach it, so it doesn't get deleted
249 // automatically when base_file_ is destructed. 249 // automatically when base_file_ is destructed.
250 TEST_F(BaseFileTest, WriteAndDetach) { 250 TEST_F(BaseFileTest, WriteAndDetach) {
251 ASSERT_TRUE(InitializeFile()); 251 ASSERT_TRUE(InitializeFile());
252 ASSERT_TRUE(AppendDataToFile(kTestData1)); 252 ASSERT_TRUE(AppendDataToFile(kTestData1));
253 base_file_->Finish(); 253 base_file_->Finish();
254 base_file_->Detach(); 254 base_file_->Detach();
(...skipping 22 matching lines...) Expand all
277 277
278 base_file_->Detach(); 278 base_file_->Detach();
279 expect_file_survives_ = true; 279 expect_file_survives_ = true;
280 } 280 }
281 281
282 // Rename the file after writing to it, then detach. 282 // Rename the file after writing to it, then detach.
283 TEST_F(BaseFileTest, WriteThenRenameAndDetach) { 283 TEST_F(BaseFileTest, WriteThenRenameAndDetach) {
284 ASSERT_TRUE(InitializeFile()); 284 ASSERT_TRUE(InitializeFile());
285 285
286 base::FilePath initial_path(base_file_->full_path()); 286 base::FilePath initial_path(base_file_->full_path());
287 EXPECT_TRUE(file_util::PathExists(initial_path)); 287 EXPECT_TRUE(base::PathExists(initial_path));
288 base::FilePath new_path(temp_dir_.path().AppendASCII("NewFile")); 288 base::FilePath new_path(temp_dir_.path().AppendASCII("NewFile"));
289 EXPECT_FALSE(file_util::PathExists(new_path)); 289 EXPECT_FALSE(base::PathExists(new_path));
290 290
291 ASSERT_TRUE(AppendDataToFile(kTestData1)); 291 ASSERT_TRUE(AppendDataToFile(kTestData1));
292 292
293 EXPECT_EQ(DOWNLOAD_INTERRUPT_REASON_NONE, base_file_->Rename(new_path)); 293 EXPECT_EQ(DOWNLOAD_INTERRUPT_REASON_NONE, base_file_->Rename(new_path));
294 EXPECT_FALSE(file_util::PathExists(initial_path)); 294 EXPECT_FALSE(base::PathExists(initial_path));
295 EXPECT_TRUE(file_util::PathExists(new_path)); 295 EXPECT_TRUE(base::PathExists(new_path));
296 296
297 base_file_->Finish(); 297 base_file_->Finish();
298 base_file_->Detach(); 298 base_file_->Detach();
299 expect_file_survives_ = true; 299 expect_file_survives_ = true;
300 } 300 }
301 301
302 // Write data to the file once. 302 // Write data to the file once.
303 TEST_F(BaseFileTest, SingleWrite) { 303 TEST_F(BaseFileTest, SingleWrite) {
304 ASSERT_TRUE(InitializeFile()); 304 ASSERT_TRUE(InitializeFile());
305 ASSERT_TRUE(AppendDataToFile(kTestData1)); 305 ASSERT_TRUE(AppendDataToFile(kTestData1));
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 // This will fail until getting the hash state is supported in SecureHash. 415 // This will fail until getting the hash state is supported in SecureHash.
416 EXPECT_STREQ(expected_hash_hex.c_str(), 416 EXPECT_STREQ(expected_hash_hex.c_str(),
417 base::HexEncode(hash.data(), hash.size()).c_str()); 417 base::HexEncode(hash.data(), hash.size()).c_str());
418 } 418 }
419 419
420 // Rename the file after all writes to it. 420 // Rename the file after all writes to it.
421 TEST_F(BaseFileTest, WriteThenRename) { 421 TEST_F(BaseFileTest, WriteThenRename) {
422 ASSERT_TRUE(InitializeFile()); 422 ASSERT_TRUE(InitializeFile());
423 423
424 base::FilePath initial_path(base_file_->full_path()); 424 base::FilePath initial_path(base_file_->full_path());
425 EXPECT_TRUE(file_util::PathExists(initial_path)); 425 EXPECT_TRUE(base::PathExists(initial_path));
426 base::FilePath new_path(temp_dir_.path().AppendASCII("NewFile")); 426 base::FilePath new_path(temp_dir_.path().AppendASCII("NewFile"));
427 EXPECT_FALSE(file_util::PathExists(new_path)); 427 EXPECT_FALSE(base::PathExists(new_path));
428 428
429 ASSERT_TRUE(AppendDataToFile(kTestData1)); 429 ASSERT_TRUE(AppendDataToFile(kTestData1));
430 430
431 EXPECT_EQ(DOWNLOAD_INTERRUPT_REASON_NONE, 431 EXPECT_EQ(DOWNLOAD_INTERRUPT_REASON_NONE,
432 base_file_->Rename(new_path)); 432 base_file_->Rename(new_path));
433 EXPECT_FALSE(file_util::PathExists(initial_path)); 433 EXPECT_FALSE(base::PathExists(initial_path));
434 EXPECT_TRUE(file_util::PathExists(new_path)); 434 EXPECT_TRUE(base::PathExists(new_path));
435 435
436 base_file_->Finish(); 436 base_file_->Finish();
437 } 437 }
438 438
439 // Rename the file while the download is still in progress. 439 // Rename the file while the download is still in progress.
440 TEST_F(BaseFileTest, RenameWhileInProgress) { 440 TEST_F(BaseFileTest, RenameWhileInProgress) {
441 ASSERT_TRUE(InitializeFile()); 441 ASSERT_TRUE(InitializeFile());
442 442
443 base::FilePath initial_path(base_file_->full_path()); 443 base::FilePath initial_path(base_file_->full_path());
444 EXPECT_TRUE(file_util::PathExists(initial_path)); 444 EXPECT_TRUE(base::PathExists(initial_path));
445 base::FilePath new_path(temp_dir_.path().AppendASCII("NewFile")); 445 base::FilePath new_path(temp_dir_.path().AppendASCII("NewFile"));
446 EXPECT_FALSE(file_util::PathExists(new_path)); 446 EXPECT_FALSE(base::PathExists(new_path));
447 447
448 ASSERT_TRUE(AppendDataToFile(kTestData1)); 448 ASSERT_TRUE(AppendDataToFile(kTestData1));
449 449
450 EXPECT_TRUE(base_file_->in_progress()); 450 EXPECT_TRUE(base_file_->in_progress());
451 EXPECT_EQ(DOWNLOAD_INTERRUPT_REASON_NONE, base_file_->Rename(new_path)); 451 EXPECT_EQ(DOWNLOAD_INTERRUPT_REASON_NONE, base_file_->Rename(new_path));
452 EXPECT_FALSE(file_util::PathExists(initial_path)); 452 EXPECT_FALSE(base::PathExists(initial_path));
453 EXPECT_TRUE(file_util::PathExists(new_path)); 453 EXPECT_TRUE(base::PathExists(new_path));
454 454
455 ASSERT_TRUE(AppendDataToFile(kTestData2)); 455 ASSERT_TRUE(AppendDataToFile(kTestData2));
456 456
457 base_file_->Finish(); 457 base_file_->Finish();
458 } 458 }
459 459
460 // Test that a failed rename reports the correct error. 460 // Test that a failed rename reports the correct error.
461 TEST_F(BaseFileTest, RenameWithError) { 461 TEST_F(BaseFileTest, RenameWithError) {
462 ASSERT_TRUE(InitializeFile()); 462 ASSERT_TRUE(InitializeFile());
463 463
464 // TestDir is a subdirectory in |temp_dir_| that we will make read-only so 464 // TestDir is a subdirectory in |temp_dir_| that we will make read-only so
465 // that the rename will fail. 465 // that the rename will fail.
466 base::FilePath test_dir(temp_dir_.path().AppendASCII("TestDir")); 466 base::FilePath test_dir(temp_dir_.path().AppendASCII("TestDir"));
467 ASSERT_TRUE(file_util::CreateDirectory(test_dir)); 467 ASSERT_TRUE(file_util::CreateDirectory(test_dir));
468 468
469 base::FilePath new_path(test_dir.AppendASCII("TestFile")); 469 base::FilePath new_path(test_dir.AppendASCII("TestFile"));
470 EXPECT_FALSE(file_util::PathExists(new_path)); 470 EXPECT_FALSE(base::PathExists(new_path));
471 471
472 { 472 {
473 file_util::PermissionRestorer restore_permissions_for(test_dir); 473 file_util::PermissionRestorer restore_permissions_for(test_dir);
474 ASSERT_TRUE(file_util::MakeFileUnwritable(test_dir)); 474 ASSERT_TRUE(file_util::MakeFileUnwritable(test_dir));
475 EXPECT_EQ(DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED, 475 EXPECT_EQ(DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED,
476 base_file_->Rename(new_path)); 476 base_file_->Rename(new_path));
477 } 477 }
478 478
479 base_file_->Finish(); 479 base_file_->Finish();
480 } 480 }
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 base::FilePath temp_file; 625 base::FilePath temp_file;
626 ASSERT_TRUE(file_util::CreateTemporaryFileInDir(temp_dir_.path(), 626 ASSERT_TRUE(file_util::CreateTemporaryFileInDir(temp_dir_.path(),
627 &temp_file)); 627 &temp_file));
628 ASSERT_FALSE(temp_file.empty()); 628 ASSERT_FALSE(temp_file.empty());
629 EXPECT_STREQ(temp_file.DirName().value().c_str(), 629 EXPECT_STREQ(temp_file.DirName().value().c_str(),
630 base_file_->full_path().DirName().value().c_str()); 630 base_file_->full_path().DirName().value().c_str());
631 base_file_->Finish(); 631 base_file_->Finish();
632 } 632 }
633 633
634 } // namespace content 634 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/download/base_file_posix.cc ('k') | content/browser/download/base_file_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698