OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <stack> | 5 #include <stack> |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 class AppCacheStorageImplTest : public testing::Test { | 188 class AppCacheStorageImplTest : public testing::Test { |
189 public: | 189 public: |
190 class MockStorageDelegate : public AppCacheStorage::Delegate { | 190 class MockStorageDelegate : public AppCacheStorage::Delegate { |
191 public: | 191 public: |
192 explicit MockStorageDelegate(AppCacheStorageImplTest* test) | 192 explicit MockStorageDelegate(AppCacheStorageImplTest* test) |
193 : loaded_cache_id_(0), stored_group_success_(false), | 193 : loaded_cache_id_(0), stored_group_success_(false), |
194 would_exceed_quota_(false), obsoleted_success_(false), | 194 would_exceed_quota_(false), obsoleted_success_(false), |
195 found_cache_id_(kAppCacheNoCacheId), test_(test) { | 195 found_cache_id_(kAppCacheNoCacheId), test_(test) { |
196 } | 196 } |
197 | 197 |
198 void OnCacheLoaded(AppCache* cache, int64 cache_id) override { | 198 void OnCacheLoaded(AppCache* cache, int64_t cache_id) override { |
199 loaded_cache_ = cache; | 199 loaded_cache_ = cache; |
200 loaded_cache_id_ = cache_id; | 200 loaded_cache_id_ = cache_id; |
201 test_->ScheduleNextTask(); | 201 test_->ScheduleNextTask(); |
202 } | 202 } |
203 | 203 |
204 void OnGroupLoaded(AppCacheGroup* group, | 204 void OnGroupLoaded(AppCacheGroup* group, |
205 const GURL& manifest_url) override { | 205 const GURL& manifest_url) override { |
206 loaded_group_ = group; | 206 loaded_group_ = group; |
207 loaded_manifest_url_ = manifest_url; | 207 loaded_manifest_url_ = manifest_url; |
208 loaded_groups_newest_cache_ = group ? group->newest_complete_cache() | 208 loaded_groups_newest_cache_ = group ? group->newest_complete_cache() |
(...skipping 16 matching lines...) Expand all Loading... |
225 int response_code) override { | 225 int response_code) override { |
226 obsoleted_group_ = group; | 226 obsoleted_group_ = group; |
227 obsoleted_success_ = success; | 227 obsoleted_success_ = success; |
228 test_->ScheduleNextTask(); | 228 test_->ScheduleNextTask(); |
229 } | 229 } |
230 | 230 |
231 void OnMainResponseFound(const GURL& url, | 231 void OnMainResponseFound(const GURL& url, |
232 const AppCacheEntry& entry, | 232 const AppCacheEntry& entry, |
233 const GURL& namespace_entry_url, | 233 const GURL& namespace_entry_url, |
234 const AppCacheEntry& fallback_entry, | 234 const AppCacheEntry& fallback_entry, |
235 int64 cache_id, | 235 int64_t cache_id, |
236 int64 group_id, | 236 int64_t group_id, |
237 const GURL& manifest_url) override { | 237 const GURL& manifest_url) override { |
238 found_url_ = url; | 238 found_url_ = url; |
239 found_entry_ = entry; | 239 found_entry_ = entry; |
240 found_namespace_entry_url_ = namespace_entry_url; | 240 found_namespace_entry_url_ = namespace_entry_url; |
241 found_fallback_entry_ = fallback_entry; | 241 found_fallback_entry_ = fallback_entry; |
242 found_cache_id_ = cache_id; | 242 found_cache_id_ = cache_id; |
243 found_group_id_ = group_id; | 243 found_group_id_ = group_id; |
244 found_manifest_url_ = manifest_url; | 244 found_manifest_url_ = manifest_url; |
245 test_->ScheduleNextTask(); | 245 test_->ScheduleNextTask(); |
246 } | 246 } |
247 | 247 |
248 scoped_refptr<AppCache> loaded_cache_; | 248 scoped_refptr<AppCache> loaded_cache_; |
249 int64 loaded_cache_id_; | 249 int64_t loaded_cache_id_; |
250 scoped_refptr<AppCacheGroup> loaded_group_; | 250 scoped_refptr<AppCacheGroup> loaded_group_; |
251 GURL loaded_manifest_url_; | 251 GURL loaded_manifest_url_; |
252 scoped_refptr<AppCache> loaded_groups_newest_cache_; | 252 scoped_refptr<AppCache> loaded_groups_newest_cache_; |
253 scoped_refptr<AppCacheGroup> stored_group_; | 253 scoped_refptr<AppCacheGroup> stored_group_; |
254 bool stored_group_success_; | 254 bool stored_group_success_; |
255 bool would_exceed_quota_; | 255 bool would_exceed_quota_; |
256 scoped_refptr<AppCacheGroup> obsoleted_group_; | 256 scoped_refptr<AppCacheGroup> obsoleted_group_; |
257 bool obsoleted_success_; | 257 bool obsoleted_success_; |
258 GURL found_url_; | 258 GURL found_url_; |
259 AppCacheEntry found_entry_; | 259 AppCacheEntry found_entry_; |
260 GURL found_namespace_entry_url_; | 260 GURL found_namespace_entry_url_; |
261 AppCacheEntry found_fallback_entry_; | 261 AppCacheEntry found_fallback_entry_; |
262 int64 found_cache_id_; | 262 int64_t found_cache_id_; |
263 int64 found_group_id_; | 263 int64_t found_group_id_; |
264 GURL found_manifest_url_; | 264 GURL found_manifest_url_; |
265 AppCacheStorageImplTest* test_; | 265 AppCacheStorageImplTest* test_; |
266 }; | 266 }; |
267 | 267 |
268 class MockQuotaManager : public storage::QuotaManager { | 268 class MockQuotaManager : public storage::QuotaManager { |
269 public: | 269 public: |
270 MockQuotaManager() | 270 MockQuotaManager() |
271 : QuotaManager(true /* is_incognito */, | 271 : QuotaManager(true /* is_incognito */, |
272 base::FilePath(), | 272 base::FilePath(), |
273 io_thread->task_runner().get(), | 273 io_thread->task_runner().get(), |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 storage::StorageType type) override { | 314 storage::StorageType type) override { |
315 EXPECT_EQ(storage::QuotaClient::kAppcache, client_id); | 315 EXPECT_EQ(storage::QuotaClient::kAppcache, client_id); |
316 EXPECT_EQ(storage::kStorageTypeTemporary, type); | 316 EXPECT_EQ(storage::kStorageTypeTemporary, type); |
317 ++notify_storage_accessed_count_; | 317 ++notify_storage_accessed_count_; |
318 last_origin_ = origin; | 318 last_origin_ = origin; |
319 } | 319 } |
320 | 320 |
321 void NotifyStorageModified(storage::QuotaClient::ID client_id, | 321 void NotifyStorageModified(storage::QuotaClient::ID client_id, |
322 const GURL& origin, | 322 const GURL& origin, |
323 storage::StorageType type, | 323 storage::StorageType type, |
324 int64 delta) override { | 324 int64_t delta) override { |
325 EXPECT_EQ(storage::QuotaClient::kAppcache, client_id); | 325 EXPECT_EQ(storage::QuotaClient::kAppcache, client_id); |
326 EXPECT_EQ(storage::kStorageTypeTemporary, type); | 326 EXPECT_EQ(storage::kStorageTypeTemporary, type); |
327 ++notify_storage_modified_count_; | 327 ++notify_storage_modified_count_; |
328 last_origin_ = origin; | 328 last_origin_ = origin; |
329 last_delta_ = delta; | 329 last_delta_ = delta; |
330 } | 330 } |
331 | 331 |
332 // Not needed for our tests. | 332 // Not needed for our tests. |
333 void RegisterClient(storage::QuotaClient* client) override {} | 333 void RegisterClient(storage::QuotaClient* client) override {} |
334 void NotifyOriginInUse(const GURL& origin) override {} | 334 void NotifyOriginInUse(const GURL& origin) override {} |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 | 486 |
487 // LoadCache_NearHit ------------------------------------------------- | 487 // LoadCache_NearHit ------------------------------------------------- |
488 | 488 |
489 void LoadCache_NearHit() { | 489 void LoadCache_NearHit() { |
490 // Attempt to load a cache that is currently in use | 490 // Attempt to load a cache that is currently in use |
491 // and does not require loading from storage. This | 491 // and does not require loading from storage. This |
492 // load should complete syncly. | 492 // load should complete syncly. |
493 | 493 |
494 // Setup some preconditions. Make an 'unstored' cache for | 494 // Setup some preconditions. Make an 'unstored' cache for |
495 // us to load. The ctor should put it in the working set. | 495 // us to load. The ctor should put it in the working set. |
496 int64 cache_id = storage()->NewCacheId(); | 496 int64_t cache_id = storage()->NewCacheId(); |
497 scoped_refptr<AppCache> cache(new AppCache(storage(), cache_id)); | 497 scoped_refptr<AppCache> cache(new AppCache(storage(), cache_id)); |
498 | 498 |
499 // Conduct the test. | 499 // Conduct the test. |
500 storage()->LoadCache(cache_id, delegate()); | 500 storage()->LoadCache(cache_id, delegate()); |
501 EXPECT_EQ(cache_id, delegate()->loaded_cache_id_); | 501 EXPECT_EQ(cache_id, delegate()->loaded_cache_id_); |
502 EXPECT_EQ(cache.get(), delegate()->loaded_cache_.get()); | 502 EXPECT_EQ(cache.get(), delegate()->loaded_cache_.get()); |
503 EXPECT_EQ(0, mock_quota_manager_proxy_->notify_storage_accessed_count_); | 503 EXPECT_EQ(0, mock_quota_manager_proxy_->notify_storage_accessed_count_); |
504 EXPECT_EQ(0, mock_quota_manager_proxy_->notify_storage_modified_count_); | 504 EXPECT_EQ(0, mock_quota_manager_proxy_->notify_storage_modified_count_); |
505 TestFinished(); | 505 TestFinished(); |
506 } | 506 } |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
757 | 757 |
758 // FailStoreGroup -------------------------------------- | 758 // FailStoreGroup -------------------------------------- |
759 | 759 |
760 void FailStoreGroup() { | 760 void FailStoreGroup() { |
761 // Store a group and its newest cache. Should complete asynchronously. | 761 // Store a group and its newest cache. Should complete asynchronously. |
762 PushNextTask(base::Bind(&AppCacheStorageImplTest::Verify_FailStoreGroup, | 762 PushNextTask(base::Bind(&AppCacheStorageImplTest::Verify_FailStoreGroup, |
763 base::Unretained(this))); | 763 base::Unretained(this))); |
764 | 764 |
765 // Setup some preconditions. Create a group and newest cache that | 765 // Setup some preconditions. Create a group and newest cache that |
766 // appear to be "unstored" and big enough to exceed the 5M limit. | 766 // appear to be "unstored" and big enough to exceed the 5M limit. |
767 const int64 kTooBig = 10 * 1024 * 1024; // 10M | 767 const int64_t kTooBig = 10 * 1024 * 1024; // 10M |
768 group_ = new AppCacheGroup( | 768 group_ = new AppCacheGroup( |
769 storage(), kManifestUrl, storage()->NewGroupId()); | 769 storage(), kManifestUrl, storage()->NewGroupId()); |
770 cache_ = new AppCache(storage(), storage()->NewCacheId()); | 770 cache_ = new AppCache(storage(), storage()->NewCacheId()); |
771 cache_->AddEntry(kManifestUrl, | 771 cache_->AddEntry(kManifestUrl, |
772 AppCacheEntry(AppCacheEntry::MANIFEST, 1, kTooBig)); | 772 AppCacheEntry(AppCacheEntry::MANIFEST, 1, kTooBig)); |
773 // Hold a ref to the cache simulate the UpdateJob holding that ref, | 773 // Hold a ref to the cache simulate the UpdateJob holding that ref, |
774 // and hold a ref to the group to simulate the CacheHost holding that ref. | 774 // and hold a ref to the group to simulate the CacheHost holding that ref. |
775 | 775 |
776 // Conduct the store test. | 776 // Conduct the store test. |
777 storage()->StoreGroupAndNewestCache(group_.get(), cache_.get(), delegate()); | 777 storage()->StoreGroupAndNewestCache(group_.get(), cache_.get(), delegate()); |
(...skipping 1052 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1830 } | 1830 } |
1831 | 1831 |
1832 AppCacheDatabase* database() { | 1832 AppCacheDatabase* database() { |
1833 return storage()->database_; | 1833 return storage()->database_; |
1834 } | 1834 } |
1835 | 1835 |
1836 MockStorageDelegate* delegate() { | 1836 MockStorageDelegate* delegate() { |
1837 return delegate_.get(); | 1837 return delegate_.get(); |
1838 } | 1838 } |
1839 | 1839 |
1840 void MakeCacheAndGroup( | 1840 void MakeCacheAndGroup(const GURL& manifest_url, |
1841 const GURL& manifest_url, int64 group_id, int64 cache_id, | 1841 int64_t group_id, |
1842 bool add_to_database) { | 1842 int64_t cache_id, |
| 1843 bool add_to_database) { |
1843 AppCacheEntry default_entry( | 1844 AppCacheEntry default_entry( |
1844 AppCacheEntry::EXPLICIT, cache_id + kDefaultEntryIdOffset, | 1845 AppCacheEntry::EXPLICIT, cache_id + kDefaultEntryIdOffset, |
1845 kDefaultEntrySize); | 1846 kDefaultEntrySize); |
1846 group_ = new AppCacheGroup(storage(), manifest_url, group_id); | 1847 group_ = new AppCacheGroup(storage(), manifest_url, group_id); |
1847 cache_ = new AppCache(storage(), cache_id); | 1848 cache_ = new AppCache(storage(), cache_id); |
1848 cache_->AddEntry(kDefaultEntryUrl, default_entry); | 1849 cache_->AddEntry(kDefaultEntryUrl, default_entry); |
1849 cache_->set_complete(true); | 1850 cache_->set_complete(true); |
1850 group_->AddCache(cache_.get()); | 1851 group_->AddCache(cache_.get()); |
1851 if (add_to_database) { | 1852 if (add_to_database) { |
1852 AppCacheDatabase::GroupRecord group_record; | 1853 AppCacheDatabase::GroupRecord group_record; |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2020 RunTestOnIOThread(&AppCacheStorageImplTest::Reinitialize2); | 2021 RunTestOnIOThread(&AppCacheStorageImplTest::Reinitialize2); |
2021 } | 2022 } |
2022 | 2023 |
2023 TEST_F(AppCacheStorageImplTest, Reinitialize3) { | 2024 TEST_F(AppCacheStorageImplTest, Reinitialize3) { |
2024 RunTestOnIOThread(&AppCacheStorageImplTest::Reinitialize3); | 2025 RunTestOnIOThread(&AppCacheStorageImplTest::Reinitialize3); |
2025 } | 2026 } |
2026 | 2027 |
2027 // That's all folks! | 2028 // That's all folks! |
2028 | 2029 |
2029 } // namespace content | 2030 } // namespace content |
OLD | NEW |