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

Side by Side Diff: webkit/appcache/appcache_storage_impl_unittest.cc

Issue 8396013: AppCache INTERCEPT namespace. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years 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) 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/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/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 EXPECT_EQ(kDefaultEntrySize, storage()->usage_map_[kOrigin]); 661 EXPECT_EQ(kDefaultEntrySize, storage()->usage_map_[kOrigin]);
662 662
663 // Also insert some related records. 663 // Also insert some related records.
664 AppCacheDatabase::EntryRecord entry_record; 664 AppCacheDatabase::EntryRecord entry_record;
665 entry_record.cache_id = 1; 665 entry_record.cache_id = 1;
666 entry_record.flags = AppCacheEntry::FALLBACK; 666 entry_record.flags = AppCacheEntry::FALLBACK;
667 entry_record.response_id = 1; 667 entry_record.response_id = 1;
668 entry_record.url = kEntryUrl; 668 entry_record.url = kEntryUrl;
669 EXPECT_TRUE(database()->InsertEntry(&entry_record)); 669 EXPECT_TRUE(database()->InsertEntry(&entry_record));
670 670
671 AppCacheDatabase::FallbackNameSpaceRecord fallback_namespace_record; 671 AppCacheDatabase::NamespaceRecord fallback_namespace_record;
672 fallback_namespace_record.cache_id = 1; 672 fallback_namespace_record.cache_id = 1;
673 fallback_namespace_record.fallback_entry_url = kEntryUrl; 673 fallback_namespace_record.target_url = kEntryUrl;
674 fallback_namespace_record.namespace_url = kFallbackNamespace; 674 fallback_namespace_record.namespace_url = kFallbackNamespace;
675 fallback_namespace_record.origin = kManifestUrl.GetOrigin(); 675 fallback_namespace_record.origin = kManifestUrl.GetOrigin();
676 EXPECT_TRUE( 676 EXPECT_TRUE(database()->InsertNamespace(&fallback_namespace_record));
677 database()->InsertFallbackNameSpace(&fallback_namespace_record));
678 677
679 AppCacheDatabase::OnlineWhiteListRecord online_whitelist_record; 678 AppCacheDatabase::OnlineWhiteListRecord online_whitelist_record;
680 online_whitelist_record.cache_id = 1; 679 online_whitelist_record.cache_id = 1;
681 online_whitelist_record.namespace_url = kOnlineNamespace; 680 online_whitelist_record.namespace_url = kOnlineNamespace;
682 EXPECT_TRUE(database()->InsertOnlineWhiteList(&online_whitelist_record)); 681 EXPECT_TRUE(database()->InsertOnlineWhiteList(&online_whitelist_record));
683 682
684 // Conduct the test. 683 // Conduct the test.
685 storage()->MakeGroupObsolete(group_, delegate()); 684 storage()->MakeGroupObsolete(group_, delegate());
686 EXPECT_FALSE(group_->is_obsolete()); 685 EXPECT_FALSE(group_->is_obsolete());
687 } 686 }
688 687
689 void Verify_MakeGroupObsolete() { 688 void Verify_MakeGroupObsolete() {
690 EXPECT_TRUE(delegate()->obsoleted_success_); 689 EXPECT_TRUE(delegate()->obsoleted_success_);
691 EXPECT_EQ(group_.get(), delegate()->obsoleted_group_.get()); 690 EXPECT_EQ(group_.get(), delegate()->obsoleted_group_.get());
692 EXPECT_TRUE(group_->is_obsolete()); 691 EXPECT_TRUE(group_->is_obsolete());
693 EXPECT_TRUE(storage()->usage_map_.empty()); 692 EXPECT_TRUE(storage()->usage_map_.empty());
694 693
695 // The cache and group have been deleted from the database. 694 // The cache and group have been deleted from the database.
696 AppCacheDatabase::GroupRecord group_record; 695 AppCacheDatabase::GroupRecord group_record;
697 AppCacheDatabase::CacheRecord cache_record; 696 AppCacheDatabase::CacheRecord cache_record;
698 EXPECT_FALSE(database()->FindGroup(1, &group_record)); 697 EXPECT_FALSE(database()->FindGroup(1, &group_record));
699 EXPECT_FALSE(database()->FindCache(1, &cache_record)); 698 EXPECT_FALSE(database()->FindCache(1, &cache_record));
700 699
701 // The related records should have been deleted too. 700 // The related records should have been deleted too.
702 std::vector<AppCacheDatabase::EntryRecord> entry_records; 701 std::vector<AppCacheDatabase::EntryRecord> entry_records;
703 database()->FindEntriesForCache(1, &entry_records); 702 database()->FindEntriesForCache(1, &entry_records);
704 EXPECT_TRUE(entry_records.empty()); 703 EXPECT_TRUE(entry_records.empty());
705 std::vector<AppCacheDatabase::FallbackNameSpaceRecord> fallback_records; 704 std::vector<AppCacheDatabase::NamespaceRecord> intercept_records;
706 database()->FindFallbackNameSpacesForCache(1, &fallback_records); 705 std::vector<AppCacheDatabase::NamespaceRecord> fallback_records;
706 database()->FindNamespacesForCache(1, &intercept_records, &fallback_records) ;
707 EXPECT_TRUE(fallback_records.empty()); 707 EXPECT_TRUE(fallback_records.empty());
708 std::vector<AppCacheDatabase::OnlineWhiteListRecord> whitelist_records; 708 std::vector<AppCacheDatabase::OnlineWhiteListRecord> whitelist_records;
709 database()->FindOnlineWhiteListForCache(1, &whitelist_records); 709 database()->FindOnlineWhiteListForCache(1, &whitelist_records);
710 EXPECT_TRUE(whitelist_records.empty()); 710 EXPECT_TRUE(whitelist_records.empty());
711 711
712 // Verify quota bookkeeping 712 // Verify quota bookkeeping
713 EXPECT_TRUE(storage()->usage_map_.empty()); 713 EXPECT_TRUE(storage()->usage_map_.empty());
714 EXPECT_EQ(1, mock_quota_manager_proxy_->notify_storage_modified_count_); 714 EXPECT_EQ(1, mock_quota_manager_proxy_->notify_storage_modified_count_);
715 EXPECT_EQ(kOrigin, mock_quota_manager_proxy_->last_origin_); 715 EXPECT_EQ(kOrigin, mock_quota_manager_proxy_->last_origin_);
716 EXPECT_EQ(-kDefaultEntrySize, mock_quota_manager_proxy_->last_delta_); 716 EXPECT_EQ(-kDefaultEntrySize, mock_quota_manager_proxy_->last_delta_);
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
882 PushNextTask(base::Bind( 882 PushNextTask(base::Bind(
883 &AppCacheStorageImplTest::Verify_BasicFindMainFallbackResponse, 883 &AppCacheStorageImplTest::Verify_BasicFindMainFallbackResponse,
884 base::Unretained(this))); 884 base::Unretained(this)));
885 885
886 // Setup some preconditions. Create a complete cache with a 886 // Setup some preconditions. Create a complete cache with a
887 // fallback namespace and entry. 887 // fallback namespace and entry.
888 MakeCacheAndGroup(kManifestUrl, 2, 1, true); 888 MakeCacheAndGroup(kManifestUrl, 2, 1, true);
889 cache_->AddEntry(kEntryUrl, AppCacheEntry(AppCacheEntry::FALLBACK, 1)); 889 cache_->AddEntry(kEntryUrl, AppCacheEntry(AppCacheEntry::FALLBACK, 1));
890 cache_->AddEntry(kEntryUrl2, AppCacheEntry(AppCacheEntry::FALLBACK, 2)); 890 cache_->AddEntry(kEntryUrl2, AppCacheEntry(AppCacheEntry::FALLBACK, 2));
891 cache_->fallback_namespaces_.push_back( 891 cache_->fallback_namespaces_.push_back(
892 FallbackNamespace(kFallbackNamespace2, kEntryUrl2)); 892 Namespace(FALLBACK_NAMESPACE, kFallbackNamespace2, kEntryUrl2));
893 cache_->fallback_namespaces_.push_back( 893 cache_->fallback_namespaces_.push_back(
894 FallbackNamespace(kFallbackNamespace, kEntryUrl)); 894 Namespace(FALLBACK_NAMESPACE, kFallbackNamespace, kEntryUrl));
895 AppCacheDatabase::CacheRecord cache_record; 895 AppCacheDatabase::CacheRecord cache_record;
896 std::vector<AppCacheDatabase::EntryRecord> entries; 896 std::vector<AppCacheDatabase::EntryRecord> entries;
897 std::vector<AppCacheDatabase::FallbackNameSpaceRecord> fallbacks; 897 std::vector<AppCacheDatabase::NamespaceRecord> intercepts;
898 std::vector<AppCacheDatabase::NamespaceRecord> fallbacks;
898 std::vector<AppCacheDatabase::OnlineWhiteListRecord> whitelists; 899 std::vector<AppCacheDatabase::OnlineWhiteListRecord> whitelists;
899 cache_->ToDatabaseRecords(group_, 900 cache_->ToDatabaseRecords(group_,
900 &cache_record, &entries, &fallbacks, &whitelists); 901 &cache_record, &entries, &intercepts, &fallbacks, &whitelists);
901 902
902 std::vector<AppCacheDatabase::EntryRecord>::const_iterator iter = 903 std::vector<AppCacheDatabase::EntryRecord>::const_iterator iter =
903 entries.begin(); 904 entries.begin();
904 while (iter != entries.end()) { 905 while (iter != entries.end()) {
905 // MakeCacheAndGroup has inserted the default entry record already 906 // MakeCacheAndGroup has inserted the default entry record already
906 if (iter->url != kDefaultEntryUrl) 907 if (iter->url != kDefaultEntryUrl)
907 EXPECT_TRUE(database()->InsertEntry(&(*iter))); 908 EXPECT_TRUE(database()->InsertEntry(&(*iter)));
908 ++iter; 909 ++iter;
909 } 910 }
910 911
911 EXPECT_TRUE(database()->InsertFallbackNameSpaceRecords(fallbacks)); 912 EXPECT_TRUE(database()->InsertNamespaceRecords(fallbacks));
912 EXPECT_TRUE(database()->InsertOnlineWhiteListRecords(whitelists)); 913 EXPECT_TRUE(database()->InsertOnlineWhiteListRecords(whitelists));
913 if (drop_from_working_set) { 914 if (drop_from_working_set) {
914 EXPECT_TRUE(cache_->HasOneRef()); 915 EXPECT_TRUE(cache_->HasOneRef());
915 cache_ = NULL; 916 cache_ = NULL;
916 EXPECT_TRUE(group_->HasOneRef()); 917 EXPECT_TRUE(group_->HasOneRef());
917 group_ = NULL; 918 group_ = NULL;
918 } 919 }
919 920
920 // Conduct the test. The test url is in both fallback namespace urls, 921 // Conduct the test. The test url is in both fallback namespace urls,
921 // but should match the longer of the two. 922 // but should match the longer of the two.
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
981 982
982 // Add a fallback entry and namespace 983 // Add a fallback entry and namespace
983 entry_record.cache_id = id; 984 entry_record.cache_id = id;
984 entry_record.url = kEntryUrl2; 985 entry_record.url = kEntryUrl2;
985 entry_record.flags = AppCacheEntry::FALLBACK; 986 entry_record.flags = AppCacheEntry::FALLBACK;
986 entry_record.response_id = id + kFallbackEntryIdOffset; 987 entry_record.response_id = id + kFallbackEntryIdOffset;
987 EXPECT_TRUE(database()->InsertEntry(&entry_record)); 988 EXPECT_TRUE(database()->InsertEntry(&entry_record));
988 cache_->AddEntry( 989 cache_->AddEntry(
989 entry_record.url, 990 entry_record.url,
990 AppCacheEntry(entry_record.flags, entry_record.response_id)); 991 AppCacheEntry(entry_record.flags, entry_record.response_id));
991 AppCacheDatabase::FallbackNameSpaceRecord fallback_namespace_record; 992 AppCacheDatabase::NamespaceRecord fallback_namespace_record;
992 fallback_namespace_record.cache_id = id; 993 fallback_namespace_record.cache_id = id;
993 fallback_namespace_record.fallback_entry_url = entry_record.url; 994 fallback_namespace_record.target_url = entry_record.url;
994 fallback_namespace_record.namespace_url = kFallbackNamespace; 995 fallback_namespace_record.namespace_url = kFallbackNamespace;
995 fallback_namespace_record.origin = manifest_url.GetOrigin(); 996 fallback_namespace_record.origin = manifest_url.GetOrigin();
996 EXPECT_TRUE( 997 EXPECT_TRUE(database()->InsertNamespace(&fallback_namespace_record));
997 database()->InsertFallbackNameSpace(&fallback_namespace_record));
998 cache_->fallback_namespaces_.push_back( 998 cache_->fallback_namespaces_.push_back(
999 FallbackNamespace(kFallbackNamespace, kEntryUrl2)); 999 Namespace(FALLBACK_NAMESPACE, kFallbackNamespace, kEntryUrl2));
1000 } 1000 }
1001 1001
1002 void Verify_FindMainResponseWithMultipleHits() { 1002 void Verify_FindMainResponseWithMultipleHits() {
1003 EXPECT_EQ(kEntryUrl, delegate()->found_url_); 1003 EXPECT_EQ(kEntryUrl, delegate()->found_url_);
1004 EXPECT_EQ(kManifestUrl3, delegate()->found_manifest_url_); 1004 EXPECT_EQ(kManifestUrl3, delegate()->found_manifest_url_);
1005 EXPECT_EQ(3, delegate()->found_cache_id_); 1005 EXPECT_EQ(3, delegate()->found_cache_id_);
1006 EXPECT_EQ(3, delegate()->found_group_id_); 1006 EXPECT_EQ(3, delegate()->found_group_id_);
1007 EXPECT_EQ(3, delegate()->found_entry_.response_id()); 1007 EXPECT_EQ(3, delegate()->found_entry_.response_id());
1008 EXPECT_TRUE(delegate()->found_entry_.IsExplicit()); 1008 EXPECT_TRUE(delegate()->found_entry_.IsExplicit());
1009 EXPECT_FALSE(delegate()->found_fallback_entry_.has_response_id()); 1009 EXPECT_FALSE(delegate()->found_fallback_entry_.has_response_id());
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
1102 void FindMainResponseExclusions(bool drop_from_working_set) { 1102 void FindMainResponseExclusions(bool drop_from_working_set) {
1103 // Setup some preconditions. Create a complete cache with a 1103 // Setup some preconditions. Create a complete cache with a
1104 // foreign entry, an online namespace, and a second online 1104 // foreign entry, an online namespace, and a second online
1105 // namespace nested within a fallback namespace. 1105 // namespace nested within a fallback namespace.
1106 MakeCacheAndGroup(kManifestUrl, 1, 1, true); 1106 MakeCacheAndGroup(kManifestUrl, 1, 1, true);
1107 cache_->AddEntry(kEntryUrl, 1107 cache_->AddEntry(kEntryUrl,
1108 AppCacheEntry(AppCacheEntry::EXPLICIT | AppCacheEntry::FOREIGN, 1)); 1108 AppCacheEntry(AppCacheEntry::EXPLICIT | AppCacheEntry::FOREIGN, 1));
1109 cache_->online_whitelist_namespaces_.push_back(kOnlineNamespace); 1109 cache_->online_whitelist_namespaces_.push_back(kOnlineNamespace);
1110 cache_->AddEntry(kEntryUrl2, AppCacheEntry(AppCacheEntry::FALLBACK, 2)); 1110 cache_->AddEntry(kEntryUrl2, AppCacheEntry(AppCacheEntry::FALLBACK, 2));
1111 cache_->fallback_namespaces_.push_back( 1111 cache_->fallback_namespaces_.push_back(
1112 FallbackNamespace(kFallbackNamespace, kEntryUrl2)); 1112 Namespace(FALLBACK_NAMESPACE, kFallbackNamespace, kEntryUrl2));
1113 cache_->online_whitelist_namespaces_.push_back(kOnlineNamespace); 1113 cache_->online_whitelist_namespaces_.push_back(kOnlineNamespace);
1114 cache_->online_whitelist_namespaces_.push_back( 1114 cache_->online_whitelist_namespaces_.push_back(
1115 kOnlineNamespaceWithinFallback); 1115 kOnlineNamespaceWithinFallback);
1116 1116
1117 AppCacheDatabase::EntryRecord entry_record; 1117 AppCacheDatabase::EntryRecord entry_record;
1118 entry_record.cache_id = 1; 1118 entry_record.cache_id = 1;
1119 entry_record.url = kEntryUrl; 1119 entry_record.url = kEntryUrl;
1120 entry_record.flags = AppCacheEntry::EXPLICIT | AppCacheEntry::FOREIGN; 1120 entry_record.flags = AppCacheEntry::EXPLICIT | AppCacheEntry::FOREIGN;
1121 entry_record.response_id = 1; 1121 entry_record.response_id = 1;
1122 EXPECT_TRUE(database()->InsertEntry(&entry_record)); 1122 EXPECT_TRUE(database()->InsertEntry(&entry_record));
1123 AppCacheDatabase::OnlineWhiteListRecord whitelist_record; 1123 AppCacheDatabase::OnlineWhiteListRecord whitelist_record;
1124 whitelist_record.cache_id = 1; 1124 whitelist_record.cache_id = 1;
1125 whitelist_record.namespace_url = kOnlineNamespace; 1125 whitelist_record.namespace_url = kOnlineNamespace;
1126 EXPECT_TRUE(database()->InsertOnlineWhiteList(&whitelist_record)); 1126 EXPECT_TRUE(database()->InsertOnlineWhiteList(&whitelist_record));
1127 AppCacheDatabase::FallbackNameSpaceRecord fallback_namespace_record; 1127 AppCacheDatabase::NamespaceRecord fallback_namespace_record;
1128 fallback_namespace_record.cache_id = 1; 1128 fallback_namespace_record.cache_id = 1;
1129 fallback_namespace_record.fallback_entry_url = kEntryUrl2; 1129 fallback_namespace_record.target_url = kEntryUrl2;
1130 fallback_namespace_record.namespace_url = kFallbackNamespace; 1130 fallback_namespace_record.namespace_url = kFallbackNamespace;
1131 fallback_namespace_record.origin = kManifestUrl.GetOrigin(); 1131 fallback_namespace_record.origin = kManifestUrl.GetOrigin();
1132 EXPECT_TRUE( 1132 EXPECT_TRUE(database()->InsertNamespace(&fallback_namespace_record));
1133 database()->InsertFallbackNameSpace(&fallback_namespace_record));
1134 whitelist_record.cache_id = 1; 1133 whitelist_record.cache_id = 1;
1135 whitelist_record.namespace_url = kOnlineNamespaceWithinFallback; 1134 whitelist_record.namespace_url = kOnlineNamespaceWithinFallback;
1136 EXPECT_TRUE(database()->InsertOnlineWhiteList(&whitelist_record)); 1135 EXPECT_TRUE(database()->InsertOnlineWhiteList(&whitelist_record));
1137 if (drop_from_working_set) { 1136 if (drop_from_working_set) {
1138 cache_ = NULL; 1137 cache_ = NULL;
1139 group_ = NULL; 1138 group_ = NULL;
1140 } 1139 }
1141 1140
1142 // We should not find anything for the foreign entry. 1141 // We should not find anything for the foreign entry.
1143 PushNextTask(base::Bind(&AppCacheStorageImplTest::Verify_ExclusionNotFound, 1142 PushNextTask(base::Bind(&AppCacheStorageImplTest::Verify_ExclusionNotFound,
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
1331 } 1330 }
1332 1331
1333 TEST_F(AppCacheStorageImplTest, FindMainResponseExclusionsInWorkingSet) { 1332 TEST_F(AppCacheStorageImplTest, FindMainResponseExclusionsInWorkingSet) {
1334 RunTestOnIOThread( 1333 RunTestOnIOThread(
1335 &AppCacheStorageImplTest::FindMainResponseExclusionsInWorkingSet); 1334 &AppCacheStorageImplTest::FindMainResponseExclusionsInWorkingSet);
1336 } 1335 }
1337 1336
1338 // That's all folks! 1337 // That's all folks!
1339 1338
1340 } // namespace appcache 1339 } // namespace appcache
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698