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

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

Issue 10581038: chromeos: Stop returning scoped_ptr from GDataCache::GetCacheEntry (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: _ 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 "chrome/browser/chromeos/gdata/gdata_cache_metadata.h" 5 #include "chrome/browser/chromeos/gdata/gdata_cache_metadata.h"
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 namespace gdata { 9 namespace gdata {
10 10
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 // Save an initial entry. 45 // Save an initial entry.
46 std::string test_resource_id("test_resource_id"); 46 std::string test_resource_id("test_resource_id");
47 std::string test_file_md5("test_file_md5"); 47 std::string test_file_md5("test_file_md5");
48 GDataCache::CacheSubDirectoryType test_sub_dir_type( 48 GDataCache::CacheSubDirectoryType test_sub_dir_type(
49 GDataCache::CACHE_TYPE_PERSISTENT); 49 GDataCache::CACHE_TYPE_PERSISTENT);
50 int test_cache_state(GDataCache::CACHE_STATE_PRESENT); 50 int test_cache_state(GDataCache::CACHE_STATE_PRESENT);
51 metadata_->UpdateCache(test_resource_id, test_file_md5, 51 metadata_->UpdateCache(test_resource_id, test_file_md5,
52 test_sub_dir_type, test_cache_state); 52 test_sub_dir_type, test_cache_state);
53 53
54 // Test that the entry can be retrieved. 54 // Test that the entry can be retrieved.
55 scoped_ptr<GDataCache::CacheEntry> cache_entry = 55 GDataCache::CacheEntry cache_entry;
56 metadata_->GetCacheEntry(test_resource_id, test_file_md5); 56 ASSERT_TRUE(metadata_->GetCacheEntry(
57 ASSERT_TRUE(cache_entry.get()); 57 test_resource_id, test_file_md5, &cache_entry));
58 EXPECT_EQ(test_file_md5, cache_entry->md5); 58 EXPECT_EQ(test_file_md5, cache_entry.md5);
59 EXPECT_EQ(test_sub_dir_type, cache_entry->sub_dir_type); 59 EXPECT_EQ(test_sub_dir_type, cache_entry.sub_dir_type);
60 EXPECT_EQ(test_cache_state, cache_entry->cache_state); 60 EXPECT_EQ(test_cache_state, cache_entry.cache_state);
61 61
62 // Empty md5 should also work. 62 // Empty md5 should also work.
63 cache_entry = 63 ASSERT_TRUE(metadata_->GetCacheEntry(
64 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); 64 test_resource_id, std::string(), &cache_entry));
65 ASSERT_TRUE(cache_entry.get()); 65 EXPECT_EQ(test_file_md5, cache_entry.md5);
66 EXPECT_EQ(test_file_md5, cache_entry->md5);
67 66
68 // resource_id doesn't exist. 67 // resource_id doesn't exist.
69 cache_entry = metadata_->GetCacheEntry("not_found_resource_id", 68 EXPECT_FALSE(metadata_->GetCacheEntry(
70 std::string()).Pass(); 69 "not_found_resource_id", std::string(), &cache_entry));
71 EXPECT_FALSE(cache_entry.get());
72 70
73 // md5 doesn't match. 71 // md5 doesn't match.
74 cache_entry = 72 EXPECT_FALSE(metadata_->GetCacheEntry(
75 metadata_->GetCacheEntry(test_resource_id, "mismatch_md5").Pass(); 73 test_resource_id, "mismatch_md5", &cache_entry));
76 EXPECT_FALSE(cache_entry.get());
77 74
78 // Update all attributes. 75 // Update all attributes.
79 test_file_md5 = "test_file_md5_2"; 76 test_file_md5 = "test_file_md5_2";
80 test_sub_dir_type = GDataCache::CACHE_TYPE_PINNED; 77 test_sub_dir_type = GDataCache::CACHE_TYPE_PINNED;
81 test_cache_state = GDataCache::CACHE_STATE_PINNED; 78 test_cache_state = GDataCache::CACHE_STATE_PINNED;
82 metadata_->UpdateCache(test_resource_id, test_file_md5, test_sub_dir_type, 79 metadata_->UpdateCache(test_resource_id, test_file_md5, test_sub_dir_type,
83 test_cache_state); 80 test_cache_state);
84 81
85 // Make sure the values took. 82 // Make sure the values took.
86 cache_entry = 83 ASSERT_TRUE(metadata_->GetCacheEntry(
87 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass(); 84 test_resource_id, test_file_md5, &cache_entry));
88 ASSERT_TRUE(cache_entry.get()); 85 EXPECT_EQ(test_file_md5, cache_entry.md5);
89 EXPECT_EQ(test_file_md5, cache_entry->md5); 86 EXPECT_EQ(test_sub_dir_type, cache_entry.sub_dir_type);
90 EXPECT_EQ(test_sub_dir_type, cache_entry->sub_dir_type); 87 EXPECT_EQ(test_cache_state, cache_entry.cache_state);
91 EXPECT_EQ(test_cache_state, cache_entry->cache_state);
92 88
93 // Empty m5 should work. 89 // Empty m5 should work.
94 cache_entry = 90 ASSERT_TRUE(metadata_->GetCacheEntry(
95 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); 91 test_resource_id, std::string(), &cache_entry));
96 ASSERT_TRUE(cache_entry.get()); 92 EXPECT_EQ(test_file_md5, cache_entry.md5);
97 EXPECT_EQ(test_file_md5, cache_entry->md5);
98 93
99 // Test dirty cache. 94 // Test dirty cache.
100 test_file_md5 = "test_file_md5_3"; 95 test_file_md5 = "test_file_md5_3";
101 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP; 96 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP;
102 test_cache_state = GDataCache::CACHE_STATE_DIRTY; 97 test_cache_state = GDataCache::CACHE_STATE_DIRTY;
103 metadata_->UpdateCache(test_resource_id, test_file_md5, test_sub_dir_type, 98 metadata_->UpdateCache(test_resource_id, test_file_md5, test_sub_dir_type,
104 test_cache_state); 99 test_cache_state);
105 100
106 // Make sure the values took. 101 // Make sure the values took.
107 cache_entry = 102 ASSERT_TRUE(metadata_->GetCacheEntry(
108 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass(); 103 test_resource_id, test_file_md5, &cache_entry));
109 ASSERT_TRUE(cache_entry.get()); 104 EXPECT_EQ(test_file_md5, cache_entry.md5);
110 EXPECT_EQ(test_file_md5, cache_entry->md5); 105 EXPECT_EQ(test_sub_dir_type, cache_entry.sub_dir_type);
111 EXPECT_EQ(test_sub_dir_type, cache_entry->sub_dir_type); 106 EXPECT_EQ(test_cache_state, cache_entry.cache_state);
112 EXPECT_EQ(test_cache_state, cache_entry->cache_state);
113 107
114 // Empty md5 should work. 108 // Empty md5 should work.
115 cache_entry = 109 ASSERT_TRUE(metadata_->GetCacheEntry(
116 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); 110 test_resource_id, std::string(), &cache_entry));
117 ASSERT_TRUE(cache_entry.get()); 111 EXPECT_EQ(test_file_md5, cache_entry.md5);
118 EXPECT_EQ(test_file_md5, cache_entry->md5);
119 112
120 // Mismatched md5 should also work for dirty entries. 113 // Mismatched md5 should also work for dirty entries.
121 cache_entry = 114 ASSERT_TRUE(metadata_->GetCacheEntry(
122 metadata_->GetCacheEntry(test_resource_id, "mismatch_md5").Pass(); 115 test_resource_id, "mismatch_md5", &cache_entry));
123 ASSERT_TRUE(cache_entry.get()); 116 EXPECT_EQ(test_file_md5, cache_entry.md5);
124 EXPECT_EQ(test_file_md5, cache_entry->md5);
125 117
126 // Remove the entry. 118 // Remove the entry.
127 metadata_->RemoveFromCache(test_resource_id); 119 metadata_->RemoveFromCache(test_resource_id);
128 cache_entry = 120 EXPECT_FALSE(metadata_->GetCacheEntry(
129 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); 121 test_resource_id, std::string(), &cache_entry));
130 EXPECT_FALSE(cache_entry.get());
131 122
132 // Add another one. 123 // Add another one.
133 test_resource_id = "test_resource_id_2"; 124 test_resource_id = "test_resource_id_2";
134 test_file_md5 = "test_file_md5_4"; 125 test_file_md5 = "test_file_md5_4";
135 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP_DOWNLOADS; 126 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP_DOWNLOADS;
136 test_cache_state = GDataCache::CACHE_STATE_PRESENT; 127 test_cache_state = GDataCache::CACHE_STATE_PRESENT;
137 metadata_->UpdateCache(test_resource_id, test_file_md5, test_sub_dir_type, 128 metadata_->UpdateCache(test_resource_id, test_file_md5, test_sub_dir_type,
138 test_cache_state); 129 test_cache_state);
139 130
140 // Make sure the values took. 131 // Make sure the values took.
141 cache_entry = 132 ASSERT_TRUE(metadata_->GetCacheEntry(
142 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass(); 133 test_resource_id, test_file_md5, &cache_entry));
143 ASSERT_TRUE(cache_entry.get()); 134 EXPECT_EQ(test_file_md5, cache_entry.md5);
144 EXPECT_EQ(test_file_md5, cache_entry->md5); 135 EXPECT_EQ(test_sub_dir_type, cache_entry.sub_dir_type);
145 EXPECT_EQ(test_sub_dir_type, cache_entry->sub_dir_type); 136 EXPECT_EQ(test_cache_state, cache_entry.cache_state);
146 EXPECT_EQ(test_cache_state, cache_entry->cache_state);
147 137
148 // Update with CACHE_STATE_NONE should evict the entry. 138 // Update with CACHE_STATE_NONE should evict the entry.
149 test_file_md5 = "test_file_md5_5"; 139 test_file_md5 = "test_file_md5_5";
150 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP_DOCUMENTS; 140 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP_DOCUMENTS;
151 test_cache_state = GDataCache::CACHE_STATE_NONE; 141 test_cache_state = GDataCache::CACHE_STATE_NONE;
152 metadata_->UpdateCache(test_resource_id, test_file_md5, test_sub_dir_type, 142 metadata_->UpdateCache(test_resource_id, test_file_md5, test_sub_dir_type,
153 test_cache_state); 143 test_cache_state);
154 144
155 cache_entry = 145 EXPECT_FALSE(metadata_->GetCacheEntry(
156 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); 146 test_resource_id, std::string(), &cache_entry));
157 EXPECT_FALSE(cache_entry.get());
158 } 147 }
159 148
160 // Test GDataCacheMetadataMap::RemoveTemporaryFiles. 149 // Test GDataCacheMetadataMap::RemoveTemporaryFiles.
161 TEST_F(GDataCacheMetadataMapTest, RemoveTemporaryFilesTest) { 150 TEST_F(GDataCacheMetadataMapTest, RemoveTemporaryFilesTest) {
162 GDataCacheMetadataMap::CacheMap cache_map; 151 GDataCacheMetadataMap::CacheMap cache_map;
163 InsertIntoMap(&cache_map, 152 InsertIntoMap(&cache_map,
164 "<resource_id_1>", 153 "<resource_id_1>",
165 "<md5>", 154 "<md5>",
166 GDataCache::CACHE_TYPE_TMP, 155 GDataCache::CACHE_TYPE_TMP,
167 GDataCache::CACHE_STATE_PRESENT); 156 GDataCache::CACHE_STATE_PRESENT);
168 InsertIntoMap(&cache_map, 157 InsertIntoMap(&cache_map,
169 "<resource_id_2>", 158 "<resource_id_2>",
170 "<md5>", 159 "<md5>",
171 GDataCache::CACHE_TYPE_PINNED, 160 GDataCache::CACHE_TYPE_PINNED,
172 GDataCache::CACHE_STATE_PRESENT); 161 GDataCache::CACHE_STATE_PRESENT);
173 InsertIntoMap(&cache_map, 162 InsertIntoMap(&cache_map,
174 "<resource_id_3>", 163 "<resource_id_3>",
175 "<md5>", 164 "<md5>",
176 GDataCache::CACHE_TYPE_OUTGOING, 165 GDataCache::CACHE_TYPE_OUTGOING,
177 GDataCache::CACHE_STATE_PRESENT); 166 GDataCache::CACHE_STATE_PRESENT);
178 InsertIntoMap(&cache_map, 167 InsertIntoMap(&cache_map,
179 "<resource_id_4>", 168 "<resource_id_4>",
180 "<md5>", 169 "<md5>",
181 GDataCache::CACHE_TYPE_TMP, 170 GDataCache::CACHE_TYPE_TMP,
182 GDataCache::CACHE_STATE_PRESENT); 171 GDataCache::CACHE_STATE_PRESENT);
183 172
184 metadata_->cache_map_ = cache_map; 173 metadata_->cache_map_ = cache_map;
185 metadata_->RemoveTemporaryFiles(); 174 metadata_->RemoveTemporaryFiles();
186 // resource 1 and 4 should be gone, as these are CACHE_TYPE_TMP. 175 // resource 1 and 4 should be gone, as these are CACHE_TYPE_TMP.
187 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_1>", "").get()); 176 GDataCache::CacheEntry cache_entry;
188 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_2>", "").get()); 177 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_1>", "", &cache_entry));
189 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_3>", "").get()); 178 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_2>", "", &cache_entry));
190 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_4>", "").get()); 179 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_3>", "", &cache_entry));
180 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_4>", "", &cache_entry));
191 } 181 }
192 182
193 } // namespace gdata 183 } // namespace gdata
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698