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

Side by Side Diff: chrome/browser/chromeos/gdata/gdata_file_system_unittest.cc

Issue 10535145: chromeos: Stop calling gdata::GDataCache::GetCacheEntry on UI thread (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix test Created 8 years, 6 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 <errno.h> 5 #include <errno.h>
6 #include <string> 6 #include <string>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 } 419 }
420 420
421 FilePath GetCacheFilePath(const std::string& resource_id, 421 FilePath GetCacheFilePath(const std::string& resource_id,
422 const std::string& md5, 422 const std::string& md5,
423 GDataCache::CacheSubDirectoryType sub_dir_type, 423 GDataCache::CacheSubDirectoryType sub_dir_type,
424 GDataCache::CachedFileOrigin file_origin) { 424 GDataCache::CachedFileOrigin file_origin) {
425 return cache_->GetCacheFilePath(resource_id, md5, sub_dir_type, 425 return cache_->GetCacheFilePath(resource_id, md5, sub_dir_type,
426 file_origin); 426 file_origin);
427 } 427 }
428 428
429 // Helper function to call GetCacheEntry from origin thread.
430 // Note: This method calls RunAllPendingForIO.
431 scoped_ptr<GDataCache::CacheEntry> GetCacheEntryFromOriginThread(
432 const std::string& resource_id,
433 const std::string& md5) {
434 scoped_ptr<GDataCache::CacheEntry> cache_entry;
435 content::BrowserThread::GetBlockingPool()
436 ->GetSequencedTaskRunner(sequence_token_)->PostTask(
437 FROM_HERE,
438 base::Bind(
439 &GDataFileSystemTest::GetCacheEntryFromOriginThreadInternal,
440 base::Unretained(this),
441 resource_id,
442 md5,
443 &cache_entry));
444 RunAllPendingForIO();
445 return cache_entry.Pass();
446 }
447
448 // Used to implement GetCacheEntry.
449 void GetCacheEntryFromOriginThreadInternal(
450 const std::string& resource_id,
451 const std::string& md5,
452 scoped_ptr<GDataCache::CacheEntry>* cache_entry) {
453 cache_entry->reset(cache_->GetCacheEntry(resource_id, md5).release());
454 }
455
429 // Returns true if the cache entry exists for the given resource ID and MD5. 456 // Returns true if the cache entry exists for the given resource ID and MD5.
430 bool CacheEntryExists(const std::string& resource_id, 457 bool CacheEntryExists(const std::string& resource_id,
431 const std::string& md5) { 458 const std::string& md5) {
432 return file_system_->cache_->GetCacheEntry(resource_id, md5).get(); 459 return GetCacheEntryFromOriginThread(resource_id, md5).get();
433 } 460 }
434 461
435 // Returns true if the cache file exists for the given resource ID and MD5. 462 // Returns true if the cache file exists for the given resource ID and MD5.
436 bool CacheFileExists(const std::string& resource_id, 463 bool CacheFileExists(const std::string& resource_id,
437 const std::string& md5) { 464 const std::string& md5) {
438 const FilePath file_path = cache_->GetCacheFilePath( 465 const FilePath file_path = cache_->GetCacheFilePath(
439 resource_id, 466 resource_id,
440 md5, 467 md5,
441 GDataCache::CACHE_TYPE_TMP, 468 GDataCache::CACHE_TYPE_TMP,
442 GDataCache::CACHED_FILE_FROM_SERVER); 469 GDataCache::CACHED_FILE_FROM_SERVER);
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 563
537 void VerifyRemoveFromCache(base::PlatformFileError error, 564 void VerifyRemoveFromCache(base::PlatformFileError error,
538 const std::string& resource_id, 565 const std::string& resource_id,
539 const std::string& md5) { 566 const std::string& md5) {
540 ++num_callback_invocations_; 567 ++num_callback_invocations_;
541 568
542 EXPECT_EQ(expected_error_, error); 569 EXPECT_EQ(expected_error_, error);
543 570
544 // Verify cache map. 571 // Verify cache map.
545 scoped_ptr<GDataCache::CacheEntry> cache_entry = 572 scoped_ptr<GDataCache::CacheEntry> cache_entry =
546 file_system_->cache_->GetCacheEntry(resource_id, md5); 573 GetCacheEntryFromOriginThread(resource_id, md5);
547 if (cache_entry.get()) 574 if (cache_entry.get())
548 EXPECT_TRUE(cache_entry->IsDirty()); 575 EXPECT_TRUE(cache_entry->IsDirty());
549 576
550 // If entry doesn't exist, verify that: 577 // If entry doesn't exist, verify that:
551 // - no files with "<resource_id>.* exists in persistent and tmp dirs 578 // - no files with "<resource_id>.* exists in persistent and tmp dirs
552 // - no "<resource_id>" symlink exists in pinned and outgoing dirs. 579 // - no "<resource_id>" symlink exists in pinned and outgoing dirs.
553 std::vector<PathToVerify> paths_to_verify; 580 std::vector<PathToVerify> paths_to_verify;
554 paths_to_verify.push_back( // Index 0: CACHE_TYPE_TMP. 581 paths_to_verify.push_back( // Index 0: CACHE_TYPE_TMP.
555 PathToVerify(cache_->GetCacheFilePath(resource_id, "*", 582 PathToVerify(cache_->GetCacheFilePath(resource_id, "*",
556 GDataCache::CACHE_TYPE_TMP, 583 GDataCache::CACHE_TYPE_TMP,
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 base::PLATFORM_FILE_OK : 937 base::PLATFORM_FILE_OK :
911 base::PLATFORM_FILE_ERROR_NOT_FOUND, 938 base::PLATFORM_FILE_ERROR_NOT_FOUND,
912 resource.expected_file_extension); 939 resource.expected_file_extension);
913 EXPECT_EQ(1, num_callback_invocations_); 940 EXPECT_EQ(1, num_callback_invocations_);
914 941
915 // Verify cache state. 942 // Verify cache state.
916 std::string md5; 943 std::string md5;
917 if (GDataCache::IsCachePresent(resource.cache_state)) 944 if (GDataCache::IsCachePresent(resource.cache_state))
918 md5 = resource.md5; 945 md5 = resource.md5;
919 scoped_ptr<GDataCache::CacheEntry> cache_entry = 946 scoped_ptr<GDataCache::CacheEntry> cache_entry =
920 file_system_->cache_->GetCacheEntry(resource.resource_id, md5); 947 GetCacheEntryFromOriginThread(resource.resource_id, md5);
921 ASSERT_TRUE(cache_entry.get()); 948 ASSERT_TRUE(cache_entry.get());
922 EXPECT_EQ(resource.cache_state, cache_entry->cache_state); 949 EXPECT_EQ(resource.cache_state, cache_entry->cache_state);
923 EXPECT_EQ(resource.expected_sub_dir_type, cache_entry->sub_dir_type); 950 EXPECT_EQ(resource.expected_sub_dir_type, cache_entry->sub_dir_type);
924 } 951 }
925 } 952 }
926 953
927 void VerifyCacheFileState(base::PlatformFileError error, 954 void VerifyCacheFileState(base::PlatformFileError error,
928 const std::string& resource_id, 955 const std::string& resource_id,
929 const std::string& md5) { 956 const std::string& md5) {
930 ++num_callback_invocations_; 957 ++num_callback_invocations_;
931 958
932 EXPECT_EQ(expected_error_, error); 959 EXPECT_EQ(expected_error_, error);
933 960
934 // Verify cache map. 961 // Verify cache map.
935 scoped_ptr<GDataCache::CacheEntry> cache_entry = 962 scoped_ptr<GDataCache::CacheEntry> cache_entry =
936 file_system_->cache_->GetCacheEntry(resource_id, md5); 963 GetCacheEntryFromOriginThread(resource_id, md5);
937 if (GDataCache::IsCachePresent(expected_cache_state_) || 964 if (GDataCache::IsCachePresent(expected_cache_state_) ||
938 GDataCache::IsCachePinned(expected_cache_state_)) { 965 GDataCache::IsCachePinned(expected_cache_state_)) {
939 ASSERT_TRUE(cache_entry.get()); 966 ASSERT_TRUE(cache_entry.get());
940 EXPECT_EQ(expected_cache_state_, cache_entry->cache_state); 967 EXPECT_EQ(expected_cache_state_, cache_entry->cache_state);
941 EXPECT_EQ(expected_sub_dir_type_, cache_entry->sub_dir_type); 968 EXPECT_EQ(expected_sub_dir_type_, cache_entry->sub_dir_type);
942 } else { 969 } else {
943 EXPECT_FALSE(cache_entry.get()); 970 EXPECT_FALSE(cache_entry.get());
944 } 971 }
945 972
946 // Verify actual cache file. 973 // Verify actual cache file.
(...skipping 2875 matching lines...) Expand 10 before | Expand all | Expand 10 after
3822 // Verify that the file was properly closed. 3849 // Verify that the file was properly closed.
3823 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_); 3850 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_);
3824 3851
3825 // Verify that the cache state was changed as expected. 3852 // Verify that the cache state was changed as expected.
3826 VerifyCacheStateAfterCloseFile(callback_helper_->last_error_, 3853 VerifyCacheStateAfterCloseFile(callback_helper_->last_error_,
3827 file_resource_id, 3854 file_resource_id,
3828 file_md5); 3855 file_md5);
3829 } 3856 }
3830 3857
3831 } // namespace gdata 3858 } // namespace gdata
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698