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/chromeos/drive/file_cache_unittest.cc

Issue 408153003: Simplify RunTaskOnThread (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix FileCacheTest Created 6 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
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 "chrome/browser/chromeos/drive/file_cache.h" 5 #include "chrome/browser/chromeos/drive/file_cache.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 EXPECT_EQ(FILE_ERROR_OK, metadata_storage_->GetEntry(id, &entry)); 374 EXPECT_EQ(FILE_ERROR_OK, metadata_storage_->GetEntry(id, &entry));
375 EXPECT_TRUE(entry.file_specific_info().cache_state().is_dirty()); 375 EXPECT_TRUE(entry.file_specific_info().cache_state().is_dirty());
376 376
377 // Open (2). 377 // Open (2).
378 scoped_ptr<base::ScopedClosureRunner> file_closer2; 378 scoped_ptr<base::ScopedClosureRunner> file_closer2;
379 EXPECT_EQ(FILE_ERROR_OK, cache_->OpenForWrite(id, &file_closer2)); 379 EXPECT_EQ(FILE_ERROR_OK, cache_->OpenForWrite(id, &file_closer2));
380 EXPECT_TRUE(cache_->IsOpenedForWrite(id)); 380 EXPECT_TRUE(cache_->IsOpenedForWrite(id));
381 381
382 // Close (1). 382 // Close (1).
383 file_closer1.reset(); 383 file_closer1.reset();
384 base::RunLoop().RunUntilIdle();
384 EXPECT_TRUE(cache_->IsOpenedForWrite(id)); 385 EXPECT_TRUE(cache_->IsOpenedForWrite(id));
385 386
386 // last_modified is updated. 387 // last_modified is updated.
387 EXPECT_EQ(FILE_ERROR_OK, metadata_storage_->GetEntry(id, &entry)); 388 EXPECT_EQ(FILE_ERROR_OK, metadata_storage_->GetEntry(id, &entry));
388 EXPECT_NE(0, entry.file_info().last_modified()); 389 EXPECT_NE(0, entry.file_info().last_modified());
389 390
390 // Close (2). 391 // Close (2).
391 file_closer2.reset(); 392 file_closer2.reset();
393 base::RunLoop().RunUntilIdle();
392 EXPECT_FALSE(cache_->IsOpenedForWrite(id)); 394 EXPECT_FALSE(cache_->IsOpenedForWrite(id));
393 395
394 // Try to open non-existent file. 396 // Try to open non-existent file.
395 EXPECT_EQ(FILE_ERROR_NOT_FOUND, 397 EXPECT_EQ(FILE_ERROR_NOT_FOUND,
396 cache_->OpenForWrite("nonexistent_id", &file_closer1)); 398 cache_->OpenForWrite("nonexistent_id", &file_closer1));
397 } 399 }
398 400
399 TEST_F(FileCacheTest, UpdateMd5) { 401 TEST_F(FileCacheTest, UpdateMd5) {
400 // Store test data. 402 // Store test data.
401 const base::FilePath src_file_path = temp_dir_.path().Append("test.dat"); 403 const base::FilePath src_file_path = temp_dir_.path().Append("test.dat");
(...skipping 15 matching lines...) Expand all
417 EXPECT_EQ(FILE_ERROR_OK, cache_->GetFile(id, &cache_file_path)); 419 EXPECT_EQ(FILE_ERROR_OK, cache_->GetFile(id, &cache_file_path));
418 const std::string contents_after = "after"; 420 const std::string contents_after = "after";
419 EXPECT_TRUE(google_apis::test_util::WriteStringToFile(cache_file_path, 421 EXPECT_TRUE(google_apis::test_util::WriteStringToFile(cache_file_path,
420 contents_after)); 422 contents_after));
421 423
422 // Cannot update MD5 of an opend file. 424 // Cannot update MD5 of an opend file.
423 EXPECT_EQ(FILE_ERROR_IN_USE, cache_->UpdateMd5(id)); 425 EXPECT_EQ(FILE_ERROR_IN_USE, cache_->UpdateMd5(id));
424 426
425 // Close file. 427 // Close file.
426 file_closer.reset(); 428 file_closer.reset();
429 base::RunLoop().RunUntilIdle();
427 430
428 // MD5 was cleared by OpenForWrite(). 431 // MD5 was cleared by OpenForWrite().
429 EXPECT_EQ(FILE_ERROR_OK, metadata_storage_->GetEntry(id, &entry)); 432 EXPECT_EQ(FILE_ERROR_OK, metadata_storage_->GetEntry(id, &entry));
430 EXPECT_TRUE(entry.file_specific_info().cache_state().md5().empty()); 433 EXPECT_TRUE(entry.file_specific_info().cache_state().md5().empty());
431 434
432 // Update MD5. 435 // Update MD5.
433 EXPECT_EQ(FILE_ERROR_OK, cache_->UpdateMd5(id)); 436 EXPECT_EQ(FILE_ERROR_OK, cache_->UpdateMd5(id));
434 EXPECT_EQ(FILE_ERROR_OK, metadata_storage_->GetEntry(id, &entry)); 437 EXPECT_EQ(FILE_ERROR_OK, metadata_storage_->GetEntry(id, &entry));
435 EXPECT_EQ(base::MD5String(contents_after), 438 EXPECT_EQ(base::MD5String(contents_after),
436 entry.file_specific_info().cache_state().md5()); 439 entry.file_specific_info().cache_state().md5());
(...skipping 17 matching lines...) Expand all
454 457
455 // Entry is dirty. 458 // Entry is dirty.
456 EXPECT_EQ(FILE_ERROR_OK, metadata_storage_->GetEntry(id, &entry)); 459 EXPECT_EQ(FILE_ERROR_OK, metadata_storage_->GetEntry(id, &entry));
457 EXPECT_TRUE(entry.file_specific_info().cache_state().is_dirty()); 460 EXPECT_TRUE(entry.file_specific_info().cache_state().is_dirty());
458 461
459 // Cannot clear the dirty bit of an opened entry. 462 // Cannot clear the dirty bit of an opened entry.
460 EXPECT_EQ(FILE_ERROR_IN_USE, cache_->ClearDirty(id)); 463 EXPECT_EQ(FILE_ERROR_IN_USE, cache_->ClearDirty(id));
461 464
462 // Close the file and clear the dirty bit. 465 // Close the file and clear the dirty bit.
463 file_closer.reset(); 466 file_closer.reset();
467 base::RunLoop().RunUntilIdle();
464 EXPECT_EQ(FILE_ERROR_OK, cache_->ClearDirty(id)); 468 EXPECT_EQ(FILE_ERROR_OK, cache_->ClearDirty(id));
465 469
466 // Entry is not dirty. 470 // Entry is not dirty.
467 EXPECT_EQ(FILE_ERROR_OK, metadata_storage_->GetEntry(id, &entry)); 471 EXPECT_EQ(FILE_ERROR_OK, metadata_storage_->GetEntry(id, &entry));
468 EXPECT_FALSE(entry.file_specific_info().cache_state().is_dirty()); 472 EXPECT_FALSE(entry.file_specific_info().cache_state().is_dirty());
469 } 473 }
470 474
471 TEST_F(FileCacheTest, Remove) { 475 TEST_F(FileCacheTest, Remove) {
472 const base::FilePath src_file_path = temp_dir_.path().Append("test.dat"); 476 const base::FilePath src_file_path = temp_dir_.path().Append("test.dat");
473 const std::string src_contents = "test"; 477 const std::string src_contents = "test";
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 551
548 // Clear cache. 552 // Clear cache.
549 EXPECT_TRUE(cache_->ClearAll()); 553 EXPECT_TRUE(cache_->ClearAll());
550 554
551 // Verify that the cache is removed. 555 // Verify that the cache is removed.
552 EXPECT_TRUE(base::IsDirectoryEmpty(cache_files_dir_)); 556 EXPECT_TRUE(base::IsDirectoryEmpty(cache_files_dir_));
553 } 557 }
554 558
555 } // namespace internal 559 } // namespace internal
556 } // namespace drive 560 } // namespace drive
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/drive/file_cache.cc ('k') | chrome/browser/chromeos/drive/fileapi/async_file_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698