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

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

Issue 10690154: gdata: Remove a werid behavior from GDataCacheMetadata::UpdateCache() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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/gdata/gdata_cache_metadata.h" 5 #include "chrome/browser/chromeos/gdata/gdata_cache_metadata.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/scoped_temp_dir.h" 8 #include "base/scoped_temp_dir.h"
9 #include "chrome/browser/chromeos/gdata/gdata_util.h" 9 #include "chrome/browser/chromeos/gdata/gdata_util.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 TEST_F(GDataCacheMetadataMapTest, CacheTest) { 135 TEST_F(GDataCacheMetadataMapTest, CacheTest) {
136 SetUpCacheMetadata(); 136 SetUpCacheMetadata();
137 137
138 // Save an initial entry. 138 // Save an initial entry.
139 std::string test_resource_id("test_resource_id"); 139 std::string test_resource_id("test_resource_id");
140 std::string test_file_md5("test_file_md5"); 140 std::string test_file_md5("test_file_md5");
141 GDataCache::CacheSubDirectoryType test_sub_dir_type = 141 GDataCache::CacheSubDirectoryType test_sub_dir_type =
142 GDataCache::CACHE_TYPE_PERSISTENT; 142 GDataCache::CACHE_TYPE_PERSISTENT;
143 int test_cache_state = (CACHE_STATE_PRESENT | 143 int test_cache_state = (CACHE_STATE_PRESENT |
144 CACHE_STATE_PERSISTENT); 144 CACHE_STATE_PERSISTENT);
145 metadata_->UpdateCache( 145 metadata_->AddOrUpdateCacheEntry(
146 test_resource_id, 146 test_resource_id,
147 GDataCacheEntry(test_file_md5, test_cache_state)); 147 GDataCacheEntry(test_file_md5, test_cache_state));
148 148
149 // Test that the entry can be retrieved. 149 // Test that the entry can be retrieved.
150 scoped_ptr<GDataCacheEntry> cache_entry = 150 scoped_ptr<GDataCacheEntry> cache_entry =
151 metadata_->GetCacheEntry(test_resource_id, test_file_md5); 151 metadata_->GetCacheEntry(test_resource_id, test_file_md5);
152 ASSERT_TRUE(cache_entry.get()); 152 ASSERT_TRUE(cache_entry.get());
153 EXPECT_EQ(test_file_md5, cache_entry->md5()); 153 EXPECT_EQ(test_file_md5, cache_entry->md5());
154 EXPECT_EQ(test_sub_dir_type, GDataCache::GetSubDirectoryType(*cache_entry)); 154 EXPECT_EQ(test_sub_dir_type, GDataCache::GetSubDirectoryType(*cache_entry));
155 EXPECT_EQ(test_cache_state, cache_entry->cache_state()); 155 EXPECT_EQ(test_cache_state, cache_entry->cache_state());
(...skipping 11 matching lines...) Expand all
167 167
168 // md5 doesn't match. 168 // md5 doesn't match.
169 cache_entry = 169 cache_entry =
170 metadata_->GetCacheEntry(test_resource_id, "mismatch_md5").Pass(); 170 metadata_->GetCacheEntry(test_resource_id, "mismatch_md5").Pass();
171 EXPECT_FALSE(cache_entry.get()); 171 EXPECT_FALSE(cache_entry.get());
172 172
173 // Update all attributes. 173 // Update all attributes.
174 test_file_md5 = "test_file_md5_2"; 174 test_file_md5 = "test_file_md5_2";
175 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP; 175 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP;
176 test_cache_state = CACHE_STATE_PINNED; 176 test_cache_state = CACHE_STATE_PINNED;
177 metadata_->UpdateCache( 177 metadata_->AddOrUpdateCacheEntry(
178 test_resource_id, 178 test_resource_id,
179 GDataCacheEntry(test_file_md5, test_cache_state)); 179 GDataCacheEntry(test_file_md5, test_cache_state));
180 180
181 // Make sure the values took. 181 // Make sure the values took.
182 cache_entry = 182 cache_entry =
183 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass(); 183 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass();
184 ASSERT_TRUE(cache_entry.get()); 184 ASSERT_TRUE(cache_entry.get());
185 EXPECT_EQ(test_file_md5, cache_entry->md5()); 185 EXPECT_EQ(test_file_md5, cache_entry->md5());
186 EXPECT_EQ(test_sub_dir_type, GDataCache::GetSubDirectoryType(*cache_entry)); 186 EXPECT_EQ(test_sub_dir_type, GDataCache::GetSubDirectoryType(*cache_entry));
187 EXPECT_EQ(test_cache_state, cache_entry->cache_state()); 187 EXPECT_EQ(test_cache_state, cache_entry->cache_state());
188 188
189 // Empty m5 should work. 189 // Empty m5 should work.
190 cache_entry = 190 cache_entry =
191 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); 191 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass();
192 ASSERT_TRUE(cache_entry.get()); 192 ASSERT_TRUE(cache_entry.get());
193 EXPECT_EQ(test_file_md5, cache_entry->md5()); 193 EXPECT_EQ(test_file_md5, cache_entry->md5());
194 194
195 // Test dirty cache. 195 // Test dirty cache.
196 test_file_md5 = "test_file_md5_3"; 196 test_file_md5 = "test_file_md5_3";
197 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP; 197 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP;
198 test_cache_state = CACHE_STATE_DIRTY; 198 test_cache_state = CACHE_STATE_DIRTY;
199 metadata_->UpdateCache( 199 metadata_->AddOrUpdateCacheEntry(
200 test_resource_id, 200 test_resource_id,
201 GDataCacheEntry(test_file_md5, test_cache_state)); 201 GDataCacheEntry(test_file_md5, test_cache_state));
202 202
203 // Make sure the values took. 203 // Make sure the values took.
204 cache_entry = 204 cache_entry =
205 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass(); 205 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass();
206 ASSERT_TRUE(cache_entry.get()); 206 ASSERT_TRUE(cache_entry.get());
207 EXPECT_EQ(test_file_md5, cache_entry->md5()); 207 EXPECT_EQ(test_file_md5, cache_entry->md5());
208 EXPECT_EQ(test_sub_dir_type, GDataCache::GetSubDirectoryType(*cache_entry)); 208 EXPECT_EQ(test_sub_dir_type, GDataCache::GetSubDirectoryType(*cache_entry));
209 EXPECT_EQ(test_cache_state, cache_entry->cache_state()); 209 EXPECT_EQ(test_cache_state, cache_entry->cache_state());
210 210
211 // Empty md5 should work. 211 // Empty md5 should work.
212 cache_entry = 212 cache_entry =
213 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); 213 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass();
214 ASSERT_TRUE(cache_entry.get()); 214 ASSERT_TRUE(cache_entry.get());
215 EXPECT_EQ(test_file_md5, cache_entry->md5()); 215 EXPECT_EQ(test_file_md5, cache_entry->md5());
216 216
217 // Mismatched md5 should also work for dirty entries. 217 // Mismatched md5 should also work for dirty entries.
218 cache_entry = 218 cache_entry =
219 metadata_->GetCacheEntry(test_resource_id, "mismatch_md5").Pass(); 219 metadata_->GetCacheEntry(test_resource_id, "mismatch_md5").Pass();
220 ASSERT_TRUE(cache_entry.get()); 220 ASSERT_TRUE(cache_entry.get());
221 EXPECT_EQ(test_file_md5, cache_entry->md5()); 221 EXPECT_EQ(test_file_md5, cache_entry->md5());
222 222
223 // Remove the entry. 223 // Remove the entry.
224 metadata_->RemoveFromCache(test_resource_id); 224 metadata_->RemoveCacheEntry(test_resource_id);
225 cache_entry = 225 cache_entry =
226 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); 226 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass();
227 EXPECT_FALSE(cache_entry.get()); 227 EXPECT_FALSE(cache_entry.get());
228 228
229 // Add another one. 229 // Add another one.
230 test_resource_id = "test_resource_id_2"; 230 test_resource_id = "test_resource_id_2";
231 test_file_md5 = "test_file_md5_4"; 231 test_file_md5 = "test_file_md5_4";
232 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP; 232 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP;
233 test_cache_state = CACHE_STATE_PRESENT; 233 test_cache_state = CACHE_STATE_PRESENT;
234 metadata_->UpdateCache( 234 metadata_->AddOrUpdateCacheEntry(
235 test_resource_id, 235 test_resource_id,
236 GDataCacheEntry(test_file_md5, test_cache_state)); 236 GDataCacheEntry(test_file_md5, test_cache_state));
237 237
238 // Make sure the values took. 238 // Make sure the values took.
239 cache_entry = 239 cache_entry =
240 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass(); 240 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass();
241 ASSERT_TRUE(cache_entry.get()); 241 ASSERT_TRUE(cache_entry.get());
242 EXPECT_EQ(test_file_md5, cache_entry->md5()); 242 EXPECT_EQ(test_file_md5, cache_entry->md5());
243 EXPECT_EQ(test_sub_dir_type, GDataCache::GetSubDirectoryType(*cache_entry)); 243 EXPECT_EQ(test_sub_dir_type, GDataCache::GetSubDirectoryType(*cache_entry));
244 EXPECT_EQ(test_cache_state, cache_entry->cache_state()); 244 EXPECT_EQ(test_cache_state, cache_entry->cache_state());
245
246 // Update with CACHE_STATE_NONE should evict the entry.
247 test_file_md5 = "test_file_md5_5";
248 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP;
249 test_cache_state = CACHE_STATE_NONE;
250 metadata_->UpdateCache(
251 test_resource_id,
252 GDataCacheEntry(test_file_md5, test_cache_state));
253
254 cache_entry =
255 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass();
256 EXPECT_FALSE(cache_entry.get());
257 } 245 }
258 246
259 TEST_F(GDataCacheMetadataMapTest, Initialization) { 247 TEST_F(GDataCacheMetadataMapTest, Initialization) {
260 using file_util::PathExists; 248 using file_util::PathExists;
261 using file_util::IsLink; 249 using file_util::IsLink;
262 SetUpCacheWithVariousFiles(); 250 SetUpCacheWithVariousFiles();
263 251
264 // Some files are removed during cache initialization. Make sure these 252 // Some files are removed during cache initialization. Make sure these
265 // exist beforehand. 253 // exist beforehand.
266 EXPECT_TRUE(PathExists(persistent_directory_.AppendASCII("id_baz.local"))); 254 EXPECT_TRUE(PathExists(persistent_directory_.AppendASCII("id_baz.local")));
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 metadata_->cache_map_ = cache_map; 380 metadata_->cache_map_ = cache_map;
393 metadata_->RemoveTemporaryFiles(); 381 metadata_->RemoveTemporaryFiles();
394 // resource 1 and 4 should be gone, as these are temporary. 382 // resource 1 and 4 should be gone, as these are temporary.
395 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_1>", "").get()); 383 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_1>", "").get());
396 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_2>", "").get()); 384 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_2>", "").get());
397 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_3>", "").get()); 385 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_3>", "").get());
398 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_4>", "").get()); 386 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_4>", "").get());
399 } 387 }
400 388
401 } // namespace gdata 389 } // namespace gdata
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698