OLD | NEW |
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 Loading... |
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 = (GDataCache::CACHE_STATE_PRESENT | |
144 GDataCache::CACHE_STATE_PERSISTENT); | 144 GDataCache::CACHE_STATE_PERSISTENT); |
145 metadata_->UpdateCache(test_resource_id, test_file_md5, test_cache_state); | 145 metadata_->UpdateCache( |
| 146 test_resource_id, |
| 147 GDataCache::CacheEntry(test_file_md5, test_cache_state)); |
146 | 148 |
147 // Test that the entry can be retrieved. | 149 // Test that the entry can be retrieved. |
148 scoped_ptr<GDataCache::CacheEntry> cache_entry = | 150 scoped_ptr<GDataCache::CacheEntry> cache_entry = |
149 metadata_->GetCacheEntry(test_resource_id, test_file_md5); | 151 metadata_->GetCacheEntry(test_resource_id, test_file_md5); |
150 ASSERT_TRUE(cache_entry.get()); | 152 ASSERT_TRUE(cache_entry.get()); |
151 EXPECT_EQ(test_file_md5, cache_entry->md5); | 153 EXPECT_EQ(test_file_md5, cache_entry->md5); |
152 EXPECT_EQ(test_sub_dir_type, cache_entry->GetSubDirectoryType()); | 154 EXPECT_EQ(test_sub_dir_type, cache_entry->GetSubDirectoryType()); |
153 EXPECT_EQ(test_cache_state, cache_entry->cache_state); | 155 EXPECT_EQ(test_cache_state, cache_entry->cache_state); |
154 | 156 |
155 // Empty md5 should also work. | 157 // Empty md5 should also work. |
156 cache_entry = | 158 cache_entry = |
157 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); | 159 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); |
158 ASSERT_TRUE(cache_entry.get()); | 160 ASSERT_TRUE(cache_entry.get()); |
159 EXPECT_EQ(test_file_md5, cache_entry->md5); | 161 EXPECT_EQ(test_file_md5, cache_entry->md5); |
160 | 162 |
161 // resource_id doesn't exist. | 163 // resource_id doesn't exist. |
162 cache_entry = metadata_->GetCacheEntry("not_found_resource_id", | 164 cache_entry = metadata_->GetCacheEntry("not_found_resource_id", |
163 std::string()).Pass(); | 165 std::string()).Pass(); |
164 EXPECT_FALSE(cache_entry.get()); | 166 EXPECT_FALSE(cache_entry.get()); |
165 | 167 |
166 // md5 doesn't match. | 168 // md5 doesn't match. |
167 cache_entry = | 169 cache_entry = |
168 metadata_->GetCacheEntry(test_resource_id, "mismatch_md5").Pass(); | 170 metadata_->GetCacheEntry(test_resource_id, "mismatch_md5").Pass(); |
169 EXPECT_FALSE(cache_entry.get()); | 171 EXPECT_FALSE(cache_entry.get()); |
170 | 172 |
171 // Update all attributes. | 173 // Update all attributes. |
172 test_file_md5 = "test_file_md5_2"; | 174 test_file_md5 = "test_file_md5_2"; |
173 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP; | 175 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP; |
174 test_cache_state = GDataCache::CACHE_STATE_PINNED; | 176 test_cache_state = GDataCache::CACHE_STATE_PINNED; |
175 metadata_->UpdateCache(test_resource_id, test_file_md5, test_cache_state); | 177 metadata_->UpdateCache( |
| 178 test_resource_id, |
| 179 GDataCache::CacheEntry(test_file_md5, test_cache_state)); |
176 | 180 |
177 // Make sure the values took. | 181 // Make sure the values took. |
178 cache_entry = | 182 cache_entry = |
179 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass(); | 183 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass(); |
180 ASSERT_TRUE(cache_entry.get()); | 184 ASSERT_TRUE(cache_entry.get()); |
181 EXPECT_EQ(test_file_md5, cache_entry->md5); | 185 EXPECT_EQ(test_file_md5, cache_entry->md5); |
182 EXPECT_EQ(test_sub_dir_type, cache_entry->GetSubDirectoryType()); | 186 EXPECT_EQ(test_sub_dir_type, cache_entry->GetSubDirectoryType()); |
183 EXPECT_EQ(test_cache_state, cache_entry->cache_state); | 187 EXPECT_EQ(test_cache_state, cache_entry->cache_state); |
184 | 188 |
185 // Empty m5 should work. | 189 // Empty m5 should work. |
186 cache_entry = | 190 cache_entry = |
187 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); | 191 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); |
188 ASSERT_TRUE(cache_entry.get()); | 192 ASSERT_TRUE(cache_entry.get()); |
189 EXPECT_EQ(test_file_md5, cache_entry->md5); | 193 EXPECT_EQ(test_file_md5, cache_entry->md5); |
190 | 194 |
191 // Test dirty cache. | 195 // Test dirty cache. |
192 test_file_md5 = "test_file_md5_3"; | 196 test_file_md5 = "test_file_md5_3"; |
193 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP; | 197 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP; |
194 test_cache_state = GDataCache::CACHE_STATE_DIRTY; | 198 test_cache_state = GDataCache::CACHE_STATE_DIRTY; |
195 metadata_->UpdateCache(test_resource_id, test_file_md5, test_cache_state); | 199 metadata_->UpdateCache( |
| 200 test_resource_id, |
| 201 GDataCache::CacheEntry(test_file_md5, test_cache_state)); |
196 | 202 |
197 // Make sure the values took. | 203 // Make sure the values took. |
198 cache_entry = | 204 cache_entry = |
199 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass(); | 205 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass(); |
200 ASSERT_TRUE(cache_entry.get()); | 206 ASSERT_TRUE(cache_entry.get()); |
201 EXPECT_EQ(test_file_md5, cache_entry->md5); | 207 EXPECT_EQ(test_file_md5, cache_entry->md5); |
202 EXPECT_EQ(test_sub_dir_type, cache_entry->GetSubDirectoryType()); | 208 EXPECT_EQ(test_sub_dir_type, cache_entry->GetSubDirectoryType()); |
203 EXPECT_EQ(test_cache_state, cache_entry->cache_state); | 209 EXPECT_EQ(test_cache_state, cache_entry->cache_state); |
204 | 210 |
205 // Empty md5 should work. | 211 // Empty md5 should work. |
(...skipping 12 matching lines...) Expand all Loading... |
218 metadata_->RemoveFromCache(test_resource_id); | 224 metadata_->RemoveFromCache(test_resource_id); |
219 cache_entry = | 225 cache_entry = |
220 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); | 226 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); |
221 EXPECT_FALSE(cache_entry.get()); | 227 EXPECT_FALSE(cache_entry.get()); |
222 | 228 |
223 // Add another one. | 229 // Add another one. |
224 test_resource_id = "test_resource_id_2"; | 230 test_resource_id = "test_resource_id_2"; |
225 test_file_md5 = "test_file_md5_4"; | 231 test_file_md5 = "test_file_md5_4"; |
226 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP; | 232 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP; |
227 test_cache_state = GDataCache::CACHE_STATE_PRESENT; | 233 test_cache_state = GDataCache::CACHE_STATE_PRESENT; |
228 metadata_->UpdateCache(test_resource_id, test_file_md5, test_cache_state); | 234 metadata_->UpdateCache( |
| 235 test_resource_id, |
| 236 GDataCache::CacheEntry(test_file_md5, test_cache_state)); |
229 | 237 |
230 // Make sure the values took. | 238 // Make sure the values took. |
231 cache_entry = | 239 cache_entry = |
232 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass(); | 240 metadata_->GetCacheEntry(test_resource_id, test_file_md5).Pass(); |
233 ASSERT_TRUE(cache_entry.get()); | 241 ASSERT_TRUE(cache_entry.get()); |
234 EXPECT_EQ(test_file_md5, cache_entry->md5); | 242 EXPECT_EQ(test_file_md5, cache_entry->md5); |
235 EXPECT_EQ(test_sub_dir_type, cache_entry->GetSubDirectoryType()); | 243 EXPECT_EQ(test_sub_dir_type, cache_entry->GetSubDirectoryType()); |
236 EXPECT_EQ(test_cache_state, cache_entry->cache_state); | 244 EXPECT_EQ(test_cache_state, cache_entry->cache_state); |
237 | 245 |
238 // Update with CACHE_STATE_NONE should evict the entry. | 246 // Update with CACHE_STATE_NONE should evict the entry. |
239 test_file_md5 = "test_file_md5_5"; | 247 test_file_md5 = "test_file_md5_5"; |
240 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP; | 248 test_sub_dir_type = GDataCache::CACHE_TYPE_TMP; |
241 test_cache_state = GDataCache::CACHE_STATE_NONE; | 249 test_cache_state = GDataCache::CACHE_STATE_NONE; |
242 metadata_->UpdateCache(test_resource_id, test_file_md5, test_cache_state); | 250 metadata_->UpdateCache( |
| 251 test_resource_id, |
| 252 GDataCache::CacheEntry(test_file_md5, test_cache_state)); |
243 | 253 |
244 cache_entry = | 254 cache_entry = |
245 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); | 255 metadata_->GetCacheEntry(test_resource_id, std::string()).Pass(); |
246 EXPECT_FALSE(cache_entry.get()); | 256 EXPECT_FALSE(cache_entry.get()); |
247 } | 257 } |
248 | 258 |
249 TEST_F(GDataCacheMetadataMapTest, Initialization) { | 259 TEST_F(GDataCacheMetadataMapTest, Initialization) { |
250 using file_util::PathExists; | 260 using file_util::PathExists; |
251 using file_util::IsLink; | 261 using file_util::IsLink; |
252 SetUpCacheWithVariousFiles(); | 262 SetUpCacheWithVariousFiles(); |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 metadata_->cache_map_ = cache_map; | 391 metadata_->cache_map_ = cache_map; |
382 metadata_->RemoveTemporaryFiles(); | 392 metadata_->RemoveTemporaryFiles(); |
383 // resource 1 and 4 should be gone, as these are temporary. | 393 // resource 1 and 4 should be gone, as these are temporary. |
384 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_1>", "").get()); | 394 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_1>", "").get()); |
385 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_2>", "").get()); | 395 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_2>", "").get()); |
386 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_3>", "").get()); | 396 EXPECT_TRUE(metadata_->GetCacheEntry("<resource_id_3>", "").get()); |
387 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_4>", "").get()); | 397 EXPECT_FALSE(metadata_->GetCacheEntry("<resource_id_4>", "").get()); |
388 } | 398 } |
389 | 399 |
390 } // namespace gdata | 400 } // namespace gdata |
OLD | NEW |