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

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

Issue 10690149: gdata: Move GDataCache::CacheEntry out of GDataCache (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: removing the existing test 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 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 111
112 protected: 112 protected:
113 // Helper function to insert an item with key |resource_id| into |cache_map|. 113 // Helper function to insert an item with key |resource_id| into |cache_map|.
114 // |md5|, |sub_dir_type|, |cache_state| are used to create the value 114 // |md5|, |sub_dir_type|, |cache_state| are used to create the value
115 // CacheEntry. 115 // CacheEntry.
116 void InsertIntoMap(GDataCacheMetadataMap::CacheMap* cache_map, 116 void InsertIntoMap(GDataCacheMetadataMap::CacheMap* cache_map,
117 const std::string& resource_id, 117 const std::string& resource_id,
118 const std::string& md5, 118 const std::string& md5,
119 int cache_state) { 119 int cache_state) {
120 cache_map->insert(std::make_pair( 120 cache_map->insert(std::make_pair(
121 resource_id, GDataCache::CacheEntry(md5, cache_state))); 121 resource_id, GDataCacheEntry(md5, cache_state)));
122 } 122 }
123 123
124 ScopedTempDir temp_dir_; 124 ScopedTempDir temp_dir_;
125 scoped_ptr<GDataCacheMetadataMap> metadata_; 125 scoped_ptr<GDataCacheMetadataMap> metadata_;
126 std::vector<FilePath> cache_paths_; 126 std::vector<FilePath> cache_paths_;
127 FilePath persistent_directory_; 127 FilePath persistent_directory_;
128 FilePath tmp_directory_; 128 FilePath tmp_directory_;
129 FilePath pinned_directory_; 129 FilePath pinned_directory_;
130 FilePath outgoing_directory_; 130 FilePath outgoing_directory_;
131 }; 131 };
132 132
133 // Test all the methods of GDataCacheMetadataMap except for 133 // Test all the methods of GDataCacheMetadataMap except for
134 // RemoveTemporaryFiles. 134 // RemoveTemporaryFiles.
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 = (GDataCache::CACHE_STATE_PRESENT | 143 int test_cache_state = (CACHE_STATE_PRESENT |
144 GDataCache::CACHE_STATE_PERSISTENT); 144 CACHE_STATE_PERSISTENT);
145 metadata_->UpdateCache( 145 metadata_->UpdateCache(
146 test_resource_id, 146 test_resource_id,
147 GDataCache::CacheEntry(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<GDataCache::CacheEntry> 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, cache_entry->GetSubDirectoryType()); 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());
156 156
157 // Empty md5 should also work. 157 // Empty md5 should also work.
158 cache_entry = 158 cache_entry =
159 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); 159 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass();
160 ASSERT_TRUE(cache_entry.get()); 160 ASSERT_TRUE(cache_entry.get());
161 EXPECT_EQ(test_file_md5, cache_entry->md5()); 161 EXPECT_EQ(test_file_md5, cache_entry->md5());
162 162
163 // resource_id doesn't exist. 163 // resource_id doesn't exist.
164 cache_entry = metadata_->GetCacheEntry("not_found_resource_id", 164 cache_entry = metadata_->GetCacheEntry("not_found_resource_id",
165 std::string()).Pass(); 165 std::string()).Pass();
166 EXPECT_FALSE(cache_entry.get()); 166 EXPECT_FALSE(cache_entry.get());
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 = GDataCache::CACHE_STATE_PINNED; 176 test_cache_state = CACHE_STATE_PINNED;
177 metadata_->UpdateCache( 177 metadata_->UpdateCache(
178 test_resource_id, 178 test_resource_id,
179 GDataCache::CacheEntry(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, cache_entry->GetSubDirectoryType()); 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 = GDataCache::CACHE_STATE_DIRTY; 198 test_cache_state = CACHE_STATE_DIRTY;
199 metadata_->UpdateCache( 199 metadata_->UpdateCache(
200 test_resource_id, 200 test_resource_id,
201 GDataCache::CacheEntry(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, cache_entry->GetSubDirectoryType()); 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_->RemoveFromCache(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 = GDataCache::CACHE_STATE_PRESENT; 233 test_cache_state = CACHE_STATE_PRESENT;
234 metadata_->UpdateCache( 234 metadata_->UpdateCache(
235 test_resource_id, 235 test_resource_id,
236 GDataCache::CacheEntry(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, cache_entry->GetSubDirectoryType()); 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 245
246 // Update with CACHE_STATE_NONE should evict the entry. 246 // Update with CACHE_STATE_NONE should evict the entry.
247 test_file_md5 = "test_file_md5_5"; 247 test_file_md5 = "test_file_md5_5";
248 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP; 248 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP;
249 test_cache_state = GDataCache::CACHE_STATE_NONE; 249 test_cache_state = CACHE_STATE_NONE;
250 metadata_->UpdateCache( 250 metadata_->UpdateCache(
251 test_resource_id, 251 test_resource_id,
252 GDataCache::CacheEntry(test_file_md5, test_cache_state)); 252 GDataCacheEntry(test_file_md5, test_cache_state));
253 253
254 cache_entry = 254 cache_entry =
255 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); 255 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass();
256 EXPECT_FALSE(cache_entry.get()); 256 EXPECT_FALSE(cache_entry.get());
257 } 257 }
258 258
259 TEST_F(GDataCacheMetadataMapTest, Initialization) { 259 TEST_F(GDataCacheMetadataMapTest, Initialization) {
260 using file_util::PathExists; 260 using file_util::PathExists;
261 using file_util::IsLink; 261 using file_util::IsLink;
262 SetUpCacheWithVariousFiles(); 262 SetUpCacheWithVariousFiles();
263 263
264 // Some files are removed during cache initialization. Make sure these 264 // Some files are removed during cache initialization. Make sure these
265 // exist beforehand. 265 // exist beforehand.
266 EXPECT_TRUE(PathExists(persistent_directory_.AppendASCII("id_baz.local"))); 266 EXPECT_TRUE(PathExists(persistent_directory_.AppendASCII("id_baz.local")));
267 EXPECT_TRUE(PathExists(persistent_directory_.AppendASCII("id_bad.md5bad"))); 267 EXPECT_TRUE(PathExists(persistent_directory_.AppendASCII("id_bad.md5bad")));
268 EXPECT_TRUE(PathExists(tmp_directory_.AppendASCII("id_quux.local"))); 268 EXPECT_TRUE(PathExists(tmp_directory_.AppendASCII("id_quux.local")));
269 EXPECT_TRUE(PathExists(pinned_directory_.AppendASCII("id_not_symlink"))); 269 EXPECT_TRUE(PathExists(pinned_directory_.AppendASCII("id_not_symlink")));
270 EXPECT_TRUE(IsLink(pinned_directory_.AppendASCII("id_dangling"))); 270 EXPECT_TRUE(IsLink(pinned_directory_.AppendASCII("id_dangling")));
271 EXPECT_TRUE(IsLink(pinned_directory_.AppendASCII("id_outside"))); 271 EXPECT_TRUE(IsLink(pinned_directory_.AppendASCII("id_outside")));
272 EXPECT_TRUE(IsLink(outgoing_directory_.AppendASCII("id_foo"))); 272 EXPECT_TRUE(IsLink(outgoing_directory_.AppendASCII("id_foo")));
273 EXPECT_TRUE(IsLink(persistent_directory_.AppendASCII("id_symlink"))); 273 EXPECT_TRUE(IsLink(persistent_directory_.AppendASCII("id_symlink")));
274 EXPECT_TRUE(IsLink(tmp_directory_.AppendASCII("id_symlink_tmp"))); 274 EXPECT_TRUE(IsLink(tmp_directory_.AppendASCII("id_symlink_tmp")));
275 275
276 SetUpCacheMetadata(); 276 SetUpCacheMetadata();
277 277
278 // Check contents in "persistent" directory. 278 // Check contents in "persistent" directory.
279 // 279 //
280 // "id_foo" is present and pinned. 280 // "id_foo" is present and pinned.
281 scoped_ptr<GDataCache::CacheEntry> cache_entry; 281 scoped_ptr<GDataCacheEntry> cache_entry;
282 cache_entry = metadata_->GetCacheEntry("id_foo", "md5foo"); 282 cache_entry = metadata_->GetCacheEntry("id_foo", "md5foo");
283 ASSERT_TRUE(cache_entry.get()); 283 ASSERT_TRUE(cache_entry.get());
284 EXPECT_EQ("md5foo", cache_entry->md5()); 284 EXPECT_EQ("md5foo", cache_entry->md5());
285 EXPECT_EQ(GDataCache::CACHE_TYPE_PERSISTENT, 285 EXPECT_EQ(GDataCache::CACHE_TYPE_PERSISTENT,
286 cache_entry->GetSubDirectoryType()); 286 GDataCache::GetSubDirectoryType(*cache_entry));
287 EXPECT_EQ(GDataCache::CACHE_STATE_PRESENT | GDataCache::CACHE_STATE_PINNED | 287 EXPECT_EQ(CACHE_STATE_PRESENT | CACHE_STATE_PINNED |
288 GDataCache::CACHE_STATE_PERSISTENT, 288 CACHE_STATE_PERSISTENT,
289 cache_entry->cache_state()); 289 cache_entry->cache_state());
290 EXPECT_TRUE(PathExists(persistent_directory_.AppendASCII("id_foo.md5foo"))); 290 EXPECT_TRUE(PathExists(persistent_directory_.AppendASCII("id_foo.md5foo")));
291 EXPECT_TRUE(PathExists(pinned_directory_.AppendASCII("id_foo"))); 291 EXPECT_TRUE(PathExists(pinned_directory_.AppendASCII("id_foo")));
292 // The invalid symlink in "outgoing" should be removed. 292 // The invalid symlink in "outgoing" should be removed.
293 EXPECT_FALSE(PathExists(outgoing_directory_.AppendASCII("id_foo"))); 293 EXPECT_FALSE(PathExists(outgoing_directory_.AppendASCII("id_foo")));
294 294
295 // "id_bar" is present and dirty. 295 // "id_bar" is present and dirty.
296 cache_entry = metadata_->GetCacheEntry("id_bar", ""); 296 cache_entry = metadata_->GetCacheEntry("id_bar", "");
297 ASSERT_TRUE(cache_entry.get()); 297 ASSERT_TRUE(cache_entry.get());
298 EXPECT_EQ("local", cache_entry->md5()); 298 EXPECT_EQ("local", cache_entry->md5());
299 EXPECT_EQ(GDataCache::CACHE_TYPE_PERSISTENT, 299 EXPECT_EQ(GDataCache::CACHE_TYPE_PERSISTENT,
300 cache_entry->GetSubDirectoryType()); 300 GDataCache::GetSubDirectoryType(*cache_entry));
301 EXPECT_EQ(GDataCache::CACHE_STATE_PRESENT | GDataCache::CACHE_STATE_DIRTY | 301 EXPECT_EQ(CACHE_STATE_PRESENT | CACHE_STATE_DIRTY |
302 GDataCache::CACHE_STATE_PERSISTENT, 302 CACHE_STATE_PERSISTENT,
303 cache_entry->cache_state()); 303 cache_entry->cache_state());
304 EXPECT_TRUE(PathExists(persistent_directory_.AppendASCII("id_bar.local"))); 304 EXPECT_TRUE(PathExists(persistent_directory_.AppendASCII("id_bar.local")));
305 EXPECT_TRUE(PathExists(outgoing_directory_.AppendASCII("id_bar"))); 305 EXPECT_TRUE(PathExists(outgoing_directory_.AppendASCII("id_bar")));
306 306
307 // "id_baz" should be removed during cache initialization. 307 // "id_baz" should be removed during cache initialization.
308 cache_entry = metadata_->GetCacheEntry("id_baz", ""); 308 cache_entry = metadata_->GetCacheEntry("id_baz", "");
309 EXPECT_FALSE(cache_entry.get()); 309 EXPECT_FALSE(cache_entry.get());
310 EXPECT_FALSE(PathExists(persistent_directory_.AppendASCII("id_baz.local"))); 310 EXPECT_FALSE(PathExists(persistent_directory_.AppendASCII("id_baz.local")));
311 311
312 // "id_bad" should be removed during cache initialization. 312 // "id_bad" should be removed during cache initialization.
313 cache_entry = metadata_->GetCacheEntry("id_bad", "md5bad"); 313 cache_entry = metadata_->GetCacheEntry("id_bad", "md5bad");
314 EXPECT_FALSE(cache_entry.get()); 314 EXPECT_FALSE(cache_entry.get());
315 EXPECT_FALSE(PathExists(persistent_directory_.AppendASCII("id_bad.md5bad"))); 315 EXPECT_FALSE(PathExists(persistent_directory_.AppendASCII("id_bad.md5bad")));
316 316
317 // "id_symlink" should be removed during cache initialization. 317 // "id_symlink" should be removed during cache initialization.
318 cache_entry = metadata_->GetCacheEntry("id_symlink", ""); 318 cache_entry = metadata_->GetCacheEntry("id_symlink", "");
319 EXPECT_FALSE(cache_entry.get()); 319 EXPECT_FALSE(cache_entry.get());
320 EXPECT_FALSE(PathExists(persistent_directory_.AppendASCII("id_symlink"))); 320 EXPECT_FALSE(PathExists(persistent_directory_.AppendASCII("id_symlink")));
321 321
322 // Check contents in "tmp" directory. 322 // Check contents in "tmp" directory.
323 // 323 //
324 // "id_qux" is just present in tmp directory. 324 // "id_qux" is just present in tmp directory.
325 cache_entry = metadata_->GetCacheEntry("id_qux", "md5qux"); 325 cache_entry = metadata_->GetCacheEntry("id_qux", "md5qux");
326 ASSERT_TRUE(cache_entry.get()); 326 ASSERT_TRUE(cache_entry.get());
327 EXPECT_EQ("md5qux", cache_entry->md5()); 327 EXPECT_EQ("md5qux", cache_entry->md5());
328 EXPECT_EQ(GDataCache::CACHE_TYPE_TMP, cache_entry->GetSubDirectoryType()); 328 EXPECT_EQ(GDataCache::CACHE_TYPE_TMP,
329 EXPECT_EQ(GDataCache::CACHE_STATE_PRESENT, cache_entry->cache_state()); 329 GDataCache::GetSubDirectoryType(*cache_entry));
330 EXPECT_EQ(CACHE_STATE_PRESENT, cache_entry->cache_state());
330 EXPECT_TRUE(PathExists(tmp_directory_.AppendASCII("id_qux.md5qux"))); 331 EXPECT_TRUE(PathExists(tmp_directory_.AppendASCII("id_qux.md5qux")));
331 332
332 // "id_quux" should be removed during cache initialization. 333 // "id_quux" should be removed during cache initialization.
333 cache_entry = metadata_->GetCacheEntry("id_quux", "md5qux"); 334 cache_entry = metadata_->GetCacheEntry("id_quux", "md5qux");
334 EXPECT_FALSE(cache_entry.get()); 335 EXPECT_FALSE(cache_entry.get());
335 EXPECT_FALSE(PathExists(pinned_directory_.AppendASCII("id_quux.local"))); 336 EXPECT_FALSE(PathExists(pinned_directory_.AppendASCII("id_quux.local")));
336 337
337 // "id_symlink_tmp" should be removed during cache initialization. 338 // "id_symlink_tmp" should be removed during cache initialization.
338 cache_entry = metadata_->GetCacheEntry("id_symlink_tmp", ""); 339 cache_entry = metadata_->GetCacheEntry("id_symlink_tmp", "");
339 EXPECT_FALSE(cache_entry.get()); 340 EXPECT_FALSE(cache_entry.get());
340 EXPECT_FALSE(PathExists(pinned_directory_.AppendASCII("id_symlink_tmp"))); 341 EXPECT_FALSE(PathExists(pinned_directory_.AppendASCII("id_symlink_tmp")));
341 342
342 // Check contents in "pinned" directory. 343 // Check contents in "pinned" directory.
343 // 344 //
344 // "id_corge" is pinned but not present. 345 // "id_corge" is pinned but not present.
345 cache_entry = metadata_->GetCacheEntry("id_corge", ""); 346 cache_entry = metadata_->GetCacheEntry("id_corge", "");
346 ASSERT_TRUE(cache_entry.get()); 347 ASSERT_TRUE(cache_entry.get());
347 EXPECT_EQ("", cache_entry->md5()); 348 EXPECT_EQ("", cache_entry->md5());
348 EXPECT_EQ(GDataCache::CACHE_STATE_PINNED, cache_entry->cache_state()); 349 EXPECT_EQ(CACHE_STATE_PINNED, cache_entry->cache_state());
349 EXPECT_TRUE(IsLink(pinned_directory_.AppendASCII("id_corge"))); 350 EXPECT_TRUE(IsLink(pinned_directory_.AppendASCII("id_corge")));
350 351
351 // "id_dangling" should be removed during cache initialization. 352 // "id_dangling" should be removed during cache initialization.
352 cache_entry = metadata_->GetCacheEntry("id_dangling", ""); 353 cache_entry = metadata_->GetCacheEntry("id_dangling", "");
353 EXPECT_FALSE(cache_entry.get()); 354 EXPECT_FALSE(cache_entry.get());
354 EXPECT_FALSE(IsLink(pinned_directory_.AppendASCII("id_dangling"))); 355 EXPECT_FALSE(IsLink(pinned_directory_.AppendASCII("id_dangling")));
355 356
356 // "id_outside" should be removed during cache initialization. 357 // "id_outside" should be removed during cache initialization.
357 cache_entry = metadata_->GetCacheEntry("id_outside", ""); 358 cache_entry = metadata_->GetCacheEntry("id_outside", "");
358 EXPECT_FALSE(cache_entry.get()); 359 EXPECT_FALSE(cache_entry.get());
359 EXPECT_FALSE(IsLink(pinned_directory_.AppendASCII("id_outside"))); 360 EXPECT_FALSE(IsLink(pinned_directory_.AppendASCII("id_outside")));
360 361
361 // "id_not_symlink" should be removed during cache initialization. 362 // "id_not_symlink" should be removed during cache initialization.
362 cache_entry = metadata_->GetCacheEntry("id_not_symlink", ""); 363 cache_entry = metadata_->GetCacheEntry("id_not_symlink", "");
363 EXPECT_FALSE(cache_entry.get()); 364 EXPECT_FALSE(cache_entry.get());
364 EXPECT_FALSE(IsLink(pinned_directory_.AppendASCII("id_not_symlink"))); 365 EXPECT_FALSE(IsLink(pinned_directory_.AppendASCII("id_not_symlink")));
365 } 366 }
366 367
367 // Test GDataCacheMetadataMap::RemoveTemporaryFiles. 368 // Test GDataCacheMetadataMap::RemoveTemporaryFiles.
368 TEST_F(GDataCacheMetadataMapTest, RemoveTemporaryFilesTest) { 369 TEST_F(GDataCacheMetadataMapTest, RemoveTemporaryFilesTest) {
369 SetUpCacheMetadata(); 370 SetUpCacheMetadata();
370 371
371 GDataCacheMetadataMap::CacheMap cache_map; 372 GDataCacheMetadataMap::CacheMap cache_map;
372 InsertIntoMap(&cache_map, 373 InsertIntoMap(&cache_map,
373 "<resource_id_1>", 374 "<resource_id_1>",
374 "<md5>", 375 "<md5>",
375 GDataCache::CACHE_STATE_PRESENT); 376 CACHE_STATE_PRESENT);
376 InsertIntoMap(&cache_map, 377 InsertIntoMap(&cache_map,
377 "<resource_id_2>", 378 "<resource_id_2>",
378 "<md5>", 379 "<md5>",
379 GDataCache::CACHE_STATE_PRESENT | 380 CACHE_STATE_PRESENT |
380 GDataCache::CACHE_STATE_PERSISTENT); 381 CACHE_STATE_PERSISTENT);
381 InsertIntoMap(&cache_map, 382 InsertIntoMap(&cache_map,
382 "<resource_id_3>", 383 "<resource_id_3>",
383 "<md5>", 384 "<md5>",
384 GDataCache::CACHE_STATE_PRESENT | 385 CACHE_STATE_PRESENT |
385 GDataCache::CACHE_STATE_PERSISTENT); 386 CACHE_STATE_PERSISTENT);
386 InsertIntoMap(&cache_map, 387 InsertIntoMap(&cache_map,
387 "<resource_id_4>", 388 "<resource_id_4>",
388 "<md5>", 389 "<md5>",
389 GDataCache::CACHE_STATE_PRESENT); 390 CACHE_STATE_PRESENT);
390 391
391 metadata_->cache_map_ = cache_map; 392 metadata_->cache_map_ = cache_map;
392 metadata_->RemoveTemporaryFiles(); 393 metadata_->RemoveTemporaryFiles();
393 // resource 1 and 4 should be gone, as these are temporary. 394 // resource 1 and 4 should be gone, as these are temporary.
394 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_1>", "").get()); 395 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_1>", "").get());
395 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_2>", "").get()); 396 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_2>", "").get());
396 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_3>", "").get()); 397 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_3>", "").get());
397 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_4>", "").get()); 398 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_4>", "").get());
398 } 399 }
399 400
400 } // namespace gdata 401 } // namespace gdata
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698