OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/message_loop.h" | 7 #include "base/message_loop.h" |
8 #include "base/threading/thread.h" | 8 #include "base/threading/thread.h" |
9 #include "base/synchronization/waitable_event.h" | 9 #include "base/synchronization/waitable_event.h" |
10 #include "net/base/net_errors.h" | 10 #include "net/base/net_errors.h" |
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 } | 347 } |
348 | 348 |
349 void CreateGroupInPopulatedOrigin() { | 349 void CreateGroupInPopulatedOrigin() { |
350 // Attempt to load a group that doesn't exist, one should | 350 // Attempt to load a group that doesn't exist, one should |
351 // be created for us, but not stored. | 351 // be created for us, but not stored. |
352 PushNextTask(NewRunnableMethod( | 352 PushNextTask(NewRunnableMethod( |
353 this, &AppCacheStorageImplTest::Verify_CreateGroup)); | 353 this, &AppCacheStorageImplTest::Verify_CreateGroup)); |
354 | 354 |
355 // Since the origin has groups, storage class will have to | 355 // Since the origin has groups, storage class will have to |
356 // consult the database and completion will be async. | 356 // consult the database and completion will be async. |
357 storage()->origins_with_groups_.insert(kManifestUrl.GetOrigin()); | 357 storage()->usage_map_[kManifestUrl.GetOrigin()] = 10; |
358 | 358 |
359 storage()->LoadOrCreateGroup(kManifestUrl, delegate()); | 359 storage()->LoadOrCreateGroup(kManifestUrl, delegate()); |
360 EXPECT_FALSE(delegate()->loaded_group_.get()); | 360 EXPECT_FALSE(delegate()->loaded_group_.get()); |
361 } | 361 } |
362 | 362 |
363 void Verify_CreateGroup() { | 363 void Verify_CreateGroup() { |
364 EXPECT_EQ(kManifestUrl, delegate()->loaded_manifest_url_); | 364 EXPECT_EQ(kManifestUrl, delegate()->loaded_manifest_url_); |
365 EXPECT_TRUE(delegate()->loaded_group_.get()); | 365 EXPECT_TRUE(delegate()->loaded_group_.get()); |
366 EXPECT_TRUE(delegate()->loaded_group_->HasOneRef()); | 366 EXPECT_TRUE(delegate()->loaded_group_->HasOneRef()); |
367 EXPECT_FALSE(delegate()->loaded_group_->newest_complete_cache()); | 367 EXPECT_FALSE(delegate()->loaded_group_->newest_complete_cache()); |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
583 // MakeGroupObsolete ------------------------------- | 583 // MakeGroupObsolete ------------------------------- |
584 | 584 |
585 void MakeGroupObsolete() { | 585 void MakeGroupObsolete() { |
586 // Make a group obsolete, should complete asyncly. | 586 // Make a group obsolete, should complete asyncly. |
587 PushNextTask(NewRunnableMethod( | 587 PushNextTask(NewRunnableMethod( |
588 this, &AppCacheStorageImplTest::Verify_MakeGroupObsolete)); | 588 this, &AppCacheStorageImplTest::Verify_MakeGroupObsolete)); |
589 | 589 |
590 // Setup some preconditions. Create a group and newest cache that | 590 // Setup some preconditions. Create a group and newest cache that |
591 // appears to be "stored" and "currently in use". | 591 // appears to be "stored" and "currently in use". |
592 MakeCacheAndGroup(kManifestUrl, 1, 1, true); | 592 MakeCacheAndGroup(kManifestUrl, 1, 1, true); |
593 EXPECT_FALSE(storage()->origins_with_groups_.empty()); | 593 EXPECT_FALSE(storage()->usage_map_.empty()); |
594 | 594 |
595 // Also insert some related records. | 595 // Also insert some related records. |
596 AppCacheDatabase::EntryRecord entry_record; | 596 AppCacheDatabase::EntryRecord entry_record; |
597 entry_record.cache_id = 1; | 597 entry_record.cache_id = 1; |
598 entry_record.flags = AppCacheEntry::FALLBACK; | 598 entry_record.flags = AppCacheEntry::FALLBACK; |
599 entry_record.response_id = 1; | 599 entry_record.response_id = 1; |
600 entry_record.url = kEntryUrl; | 600 entry_record.url = kEntryUrl; |
601 EXPECT_TRUE(database()->InsertEntry(&entry_record)); | 601 EXPECT_TRUE(database()->InsertEntry(&entry_record)); |
602 | 602 |
603 AppCacheDatabase::FallbackNameSpaceRecord fallback_namespace_record; | 603 AppCacheDatabase::FallbackNameSpaceRecord fallback_namespace_record; |
(...skipping 11 matching lines...) Expand all Loading... |
615 | 615 |
616 // Conduct the test. | 616 // Conduct the test. |
617 storage()->MakeGroupObsolete(group_, delegate()); | 617 storage()->MakeGroupObsolete(group_, delegate()); |
618 EXPECT_FALSE(group_->is_obsolete()); | 618 EXPECT_FALSE(group_->is_obsolete()); |
619 } | 619 } |
620 | 620 |
621 void Verify_MakeGroupObsolete() { | 621 void Verify_MakeGroupObsolete() { |
622 EXPECT_TRUE(delegate()->obsoleted_success_); | 622 EXPECT_TRUE(delegate()->obsoleted_success_); |
623 EXPECT_EQ(group_.get(), delegate()->obsoleted_group_.get()); | 623 EXPECT_EQ(group_.get(), delegate()->obsoleted_group_.get()); |
624 EXPECT_TRUE(group_->is_obsolete()); | 624 EXPECT_TRUE(group_->is_obsolete()); |
625 EXPECT_TRUE(storage()->origins_with_groups_.empty()); | 625 EXPECT_TRUE(storage()->usage_map_.empty()); |
626 | 626 |
627 // The cache and group have been deleted from the database. | 627 // The cache and group have been deleted from the database. |
628 AppCacheDatabase::GroupRecord group_record; | 628 AppCacheDatabase::GroupRecord group_record; |
629 AppCacheDatabase::CacheRecord cache_record; | 629 AppCacheDatabase::CacheRecord cache_record; |
630 EXPECT_FALSE(database()->FindGroup(1, &group_record)); | 630 EXPECT_FALSE(database()->FindGroup(1, &group_record)); |
631 EXPECT_FALSE(database()->FindCache(1, &cache_record)); | 631 EXPECT_FALSE(database()->FindCache(1, &cache_record)); |
632 | 632 |
633 // The related records should have been deleted too. | 633 // The related records should have been deleted too. |
634 std::vector<AppCacheDatabase::EntryRecord> entry_records; | 634 std::vector<AppCacheDatabase::EntryRecord> entry_records; |
635 database()->FindEntriesForCache(1, &entry_records); | 635 database()->FindEntriesForCache(1, &entry_records); |
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1134 group_record.group_id = group_id; | 1134 group_record.group_id = group_id; |
1135 group_record.manifest_url = manifest_url; | 1135 group_record.manifest_url = manifest_url; |
1136 group_record.origin = manifest_url.GetOrigin(); | 1136 group_record.origin = manifest_url.GetOrigin(); |
1137 EXPECT_TRUE(database()->InsertGroup(&group_record)); | 1137 EXPECT_TRUE(database()->InsertGroup(&group_record)); |
1138 AppCacheDatabase::CacheRecord cache_record; | 1138 AppCacheDatabase::CacheRecord cache_record; |
1139 cache_record.cache_id = cache_id; | 1139 cache_record.cache_id = cache_id; |
1140 cache_record.group_id = group_id; | 1140 cache_record.group_id = group_id; |
1141 cache_record.online_wildcard = false; | 1141 cache_record.online_wildcard = false; |
1142 cache_record.update_time = kZeroTime; | 1142 cache_record.update_time = kZeroTime; |
1143 EXPECT_TRUE(database()->InsertCache(&cache_record)); | 1143 EXPECT_TRUE(database()->InsertCache(&cache_record)); |
1144 storage()->origins_with_groups_.insert(manifest_url.GetOrigin()); | 1144 storage()->usage_map_[manifest_url.GetOrigin()] = 10; |
1145 } | 1145 } |
1146 } | 1146 } |
1147 | 1147 |
1148 // Data members -------------------------------------------------- | 1148 // Data members -------------------------------------------------- |
1149 | 1149 |
1150 scoped_ptr<base::WaitableEvent> test_finished_event_; | 1150 scoped_ptr<base::WaitableEvent> test_finished_event_; |
1151 std::stack<Task*> task_stack_; | 1151 std::stack<Task*> task_stack_; |
1152 MockAppCachePolicy policy_; | 1152 MockAppCachePolicy policy_; |
1153 scoped_ptr<AppCacheService> service_; | 1153 scoped_ptr<AppCacheService> service_; |
1154 scoped_ptr<MockStorageDelegate> delegate_; | 1154 scoped_ptr<MockStorageDelegate> delegate_; |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1251 &AppCacheStorageImplTest::FindMainResponseExclusionsInWorkingSet); | 1251 &AppCacheStorageImplTest::FindMainResponseExclusionsInWorkingSet); |
1252 } | 1252 } |
1253 | 1253 |
1254 // That's all folks! | 1254 // That's all folks! |
1255 | 1255 |
1256 } // namespace appcache | 1256 } // namespace appcache |
1257 | 1257 |
1258 // AppCacheStorageImplTest is expected to always live longer than the | 1258 // AppCacheStorageImplTest is expected to always live longer than the |
1259 // runnable methods. This lets us call NewRunnableMethod on its instances. | 1259 // runnable methods. This lets us call NewRunnableMethod on its instances. |
1260 DISABLE_RUNNABLE_METHOD_REFCOUNT(appcache::AppCacheStorageImplTest); | 1260 DISABLE_RUNNABLE_METHOD_REFCOUNT(appcache::AppCacheStorageImplTest); |
OLD | NEW |