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

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(
707 1, &intercept_records, &fallback_records);
707 EXPECT_TRUE(fallback_records.empty()); 708 EXPECT_TRUE(fallback_records.empty());
708 std::vector<AppCacheDatabase::OnlineWhiteListRecord> whitelist_records; 709 std::vector<AppCacheDatabase::OnlineWhiteListRecord> whitelist_records;
709 database()->FindOnlineWhiteListForCache(1, &whitelist_records); 710 database()->FindOnlineWhiteListForCache(1, &whitelist_records);
710 EXPECT_TRUE(whitelist_records.empty()); 711 EXPECT_TRUE(whitelist_records.empty());
711 712
712 // Verify quota bookkeeping 713 // Verify quota bookkeeping
713 EXPECT_TRUE(storage()->usage_map_.empty()); 714 EXPECT_TRUE(storage()->usage_map_.empty());
714 EXPECT_EQ(1, mock_quota_manager_proxy_->notify_storage_modified_count_); 715 EXPECT_EQ(1, mock_quota_manager_proxy_->notify_storage_modified_count_);
715 EXPECT_EQ(kOrigin, mock_quota_manager_proxy_->last_origin_); 716 EXPECT_EQ(kOrigin, mock_quota_manager_proxy_->last_origin_);
716 EXPECT_EQ(-kDefaultEntrySize, mock_quota_manager_proxy_->last_delta_); 717 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( 883 PushNextTask(base::Bind(
883 &AppCacheStorageImplTest::Verify_BasicFindMainFallbackResponse, 884 &AppCacheStorageImplTest::Verify_BasicFindMainFallbackResponse,
884 base::Unretained(this))); 885 base::Unretained(this)));
885 886
886 // Setup some preconditions. Create a complete cache with a 887 // Setup some preconditions. Create a complete cache with a
887 // fallback namespace and entry. 888 // fallback namespace and entry.
888 MakeCacheAndGroup(kManifestUrl, 2, 1, true); 889 MakeCacheAndGroup(kManifestUrl, 2, 1, true);
889 cache_->AddEntry(kEntryUrl, AppCacheEntry(AppCacheEntry::FALLBACK, 1)); 890 cache_->AddEntry(kEntryUrl, AppCacheEntry(AppCacheEntry::FALLBACK, 1));
890 cache_->AddEntry(kEntryUrl2, AppCacheEntry(AppCacheEntry::FALLBACK, 2)); 891 cache_->AddEntry(kEntryUrl2, AppCacheEntry(AppCacheEntry::FALLBACK, 2));
891 cache_->fallback_namespaces_.push_back( 892 cache_->fallback_namespaces_.push_back(
892 FallbackNamespace(kFallbackNamespace2, kEntryUrl2)); 893 Namespace(FALLBACK_NAMESPACE, kFallbackNamespace2, kEntryUrl2));
893 cache_->fallback_namespaces_.push_back( 894 cache_->fallback_namespaces_.push_back(
894 FallbackNamespace(kFallbackNamespace, kEntryUrl)); 895 Namespace(FALLBACK_NAMESPACE, kFallbackNamespace, kEntryUrl));
895 AppCacheDatabase::CacheRecord cache_record; 896 AppCacheDatabase::CacheRecord cache_record;
896 std::vector<AppCacheDatabase::EntryRecord> entries; 897 std::vector<AppCacheDatabase::EntryRecord> entries;
897 std::vector<AppCacheDatabase::FallbackNameSpaceRecord> fallbacks; 898 std::vector<AppCacheDatabase::NamespaceRecord> intercepts;
899 std::vector<AppCacheDatabase::NamespaceRecord> fallbacks;
898 std::vector<AppCacheDatabase::OnlineWhiteListRecord> whitelists; 900 std::vector<AppCacheDatabase::OnlineWhiteListRecord> whitelists;
899 cache_->ToDatabaseRecords(group_, 901 cache_->ToDatabaseRecords(group_,
900 &cache_record, &entries, &fallbacks, &whitelists); 902 &cache_record, &entries, &intercepts, &fallbacks, &whitelists);
901 903
902 std::vector<AppCacheDatabase::EntryRecord>::const_iterator iter = 904 std::vector<AppCacheDatabase::EntryRecord>::const_iterator iter =
903 entries.begin(); 905 entries.begin();
904 while (iter != entries.end()) { 906 while (iter != entries.end()) {
905 // MakeCacheAndGroup has inserted the default entry record already 907 // MakeCacheAndGroup has inserted the default entry record already
906 if (iter->url != kDefaultEntryUrl) 908 if (iter->url != kDefaultEntryUrl)
907 EXPECT_TRUE(database()->InsertEntry(&(*iter))); 909 EXPECT_TRUE(database()->InsertEntry(&(*iter)));
908 ++iter; 910 ++iter;
909 } 911 }
910 912
911 EXPECT_TRUE(database()->InsertFallbackNameSpaceRecords(fallbacks)); 913 EXPECT_TRUE(database()->InsertNamespaceRecords(fallbacks));
912 EXPECT_TRUE(database()->InsertOnlineWhiteListRecords(whitelists)); 914 EXPECT_TRUE(database()->InsertOnlineWhiteListRecords(whitelists));
913 if (drop_from_working_set) { 915 if (drop_from_working_set) {
914 EXPECT_TRUE(cache_->HasOneRef()); 916 EXPECT_TRUE(cache_->HasOneRef());
915 cache_ = NULL; 917 cache_ = NULL;
916 EXPECT_TRUE(group_->HasOneRef()); 918 EXPECT_TRUE(group_->HasOneRef());
917 group_ = NULL; 919 group_ = NULL;
918 } 920 }
919 921
920 // Conduct the test. The test url is in both fallback namespace urls, 922 // Conduct the test. The test url is in both fallback namespace urls,
921 // but should match the longer of the two. 923 // but should match the longer of the two.
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
981 983
982 // Add a fallback entry and namespace 984 // Add a fallback entry and namespace
983 entry_record.cache_id = id; 985 entry_record.cache_id = id;
984 entry_record.url = kEntryUrl2; 986 entry_record.url = kEntryUrl2;
985 entry_record.flags = AppCacheEntry::FALLBACK; 987 entry_record.flags = AppCacheEntry::FALLBACK;
986 entry_record.response_id = id + kFallbackEntryIdOffset; 988 entry_record.response_id = id + kFallbackEntryIdOffset;
987 EXPECT_TRUE(database()->InsertEntry(&entry_record)); 989 EXPECT_TRUE(database()->InsertEntry(&entry_record));
988 cache_->AddEntry( 990 cache_->AddEntry(
989 entry_record.url, 991 entry_record.url,
990 AppCacheEntry(entry_record.flags, entry_record.response_id)); 992 AppCacheEntry(entry_record.flags, entry_record.response_id));
991 AppCacheDatabase::FallbackNameSpaceRecord fallback_namespace_record; 993 AppCacheDatabase::NamespaceRecord fallback_namespace_record;
992 fallback_namespace_record.cache_id = id; 994 fallback_namespace_record.cache_id = id;
993 fallback_namespace_record.fallback_entry_url = entry_record.url; 995 fallback_namespace_record.target_url = entry_record.url;
994 fallback_namespace_record.namespace_url = kFallbackNamespace; 996 fallback_namespace_record.namespace_url = kFallbackNamespace;
995 fallback_namespace_record.origin = manifest_url.GetOrigin(); 997 fallback_namespace_record.origin = manifest_url.GetOrigin();
996 EXPECT_TRUE( 998 EXPECT_TRUE(database()->InsertNamespace(&fallback_namespace_record));
997 database()->InsertFallbackNameSpace(&fallback_namespace_record));
998 cache_->fallback_namespaces_.push_back( 999 cache_->fallback_namespaces_.push_back(
999 FallbackNamespace(kFallbackNamespace, kEntryUrl2)); 1000 Namespace(FALLBACK_NAMESPACE, kFallbackNamespace, kEntryUrl2));
1000 } 1001 }
1001 1002
1002 void Verify_FindMainResponseWithMultipleHits() { 1003 void Verify_FindMainResponseWithMultipleHits() {
1003 EXPECT_EQ(kEntryUrl, delegate()->found_url_); 1004 EXPECT_EQ(kEntryUrl, delegate()->found_url_);
1004 EXPECT_EQ(kManifestUrl3, delegate()->found_manifest_url_); 1005 EXPECT_EQ(kManifestUrl3, delegate()->found_manifest_url_);
1005 EXPECT_EQ(3, delegate()->found_cache_id_); 1006 EXPECT_EQ(3, delegate()->found_cache_id_);
1006 EXPECT_EQ(3, delegate()->found_group_id_); 1007 EXPECT_EQ(3, delegate()->found_group_id_);
1007 EXPECT_EQ(3, delegate()->found_entry_.response_id()); 1008 EXPECT_EQ(3, delegate()->found_entry_.response_id());
1008 EXPECT_TRUE(delegate()->found_entry_.IsExplicit()); 1009 EXPECT_TRUE(delegate()->found_entry_.IsExplicit());
1009 EXPECT_FALSE(delegate()->found_fallback_entry_.has_response_id()); 1010 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) { 1103 void FindMainResponseExclusions(bool drop_from_working_set) {
1103 // Setup some preconditions. Create a complete cache with a 1104 // Setup some preconditions. Create a complete cache with a
1104 // foreign entry, an online namespace, and a second online 1105 // foreign entry, an online namespace, and a second online
1105 // namespace nested within a fallback namespace. 1106 // namespace nested within a fallback namespace.
1106 MakeCacheAndGroup(kManifestUrl, 1, 1, true); 1107 MakeCacheAndGroup(kManifestUrl, 1, 1, true);
1107 cache_->AddEntry(kEntryUrl, 1108 cache_->AddEntry(kEntryUrl,
1108 AppCacheEntry(AppCacheEntry::EXPLICIT | AppCacheEntry::FOREIGN, 1)); 1109 AppCacheEntry(AppCacheEntry::EXPLICIT | AppCacheEntry::FOREIGN, 1));
1109 cache_->online_whitelist_namespaces_.push_back(kOnlineNamespace); 1110 cache_->online_whitelist_namespaces_.push_back(kOnlineNamespace);
1110 cache_->AddEntry(kEntryUrl2, AppCacheEntry(AppCacheEntry::FALLBACK, 2)); 1111 cache_->AddEntry(kEntryUrl2, AppCacheEntry(AppCacheEntry::FALLBACK, 2));
1111 cache_->fallback_namespaces_.push_back( 1112 cache_->fallback_namespaces_.push_back(
1112 FallbackNamespace(kFallbackNamespace, kEntryUrl2)); 1113 Namespace(FALLBACK_NAMESPACE, kFallbackNamespace, kEntryUrl2));
1113 cache_->online_whitelist_namespaces_.push_back(kOnlineNamespace); 1114 cache_->online_whitelist_namespaces_.push_back(kOnlineNamespace);
1114 cache_->online_whitelist_namespaces_.push_back( 1115 cache_->online_whitelist_namespaces_.push_back(
1115 kOnlineNamespaceWithinFallback); 1116 kOnlineNamespaceWithinFallback);
1116 1117
1117 AppCacheDatabase::EntryRecord entry_record; 1118 AppCacheDatabase::EntryRecord entry_record;
1118 entry_record.cache_id = 1; 1119 entry_record.cache_id = 1;
1119 entry_record.url = kEntryUrl; 1120 entry_record.url = kEntryUrl;
1120 entry_record.flags = AppCacheEntry::EXPLICIT | AppCacheEntry::FOREIGN; 1121 entry_record.flags = AppCacheEntry::EXPLICIT | AppCacheEntry::FOREIGN;
1121 entry_record.response_id = 1; 1122 entry_record.response_id = 1;
1122 EXPECT_TRUE(database()->InsertEntry(&entry_record)); 1123 EXPECT_TRUE(database()->InsertEntry(&entry_record));
1123 AppCacheDatabase::OnlineWhiteListRecord whitelist_record; 1124 AppCacheDatabase::OnlineWhiteListRecord whitelist_record;
1124 whitelist_record.cache_id = 1; 1125 whitelist_record.cache_id = 1;
1125 whitelist_record.namespace_url = kOnlineNamespace; 1126 whitelist_record.namespace_url = kOnlineNamespace;
1126 EXPECT_TRUE(database()->InsertOnlineWhiteList(&whitelist_record)); 1127 EXPECT_TRUE(database()->InsertOnlineWhiteList(&whitelist_record));
1127 AppCacheDatabase::FallbackNameSpaceRecord fallback_namespace_record; 1128 AppCacheDatabase::NamespaceRecord fallback_namespace_record;
1128 fallback_namespace_record.cache_id = 1; 1129 fallback_namespace_record.cache_id = 1;
1129 fallback_namespace_record.fallback_entry_url = kEntryUrl2; 1130 fallback_namespace_record.target_url = kEntryUrl2;
1130 fallback_namespace_record.namespace_url = kFallbackNamespace; 1131 fallback_namespace_record.namespace_url = kFallbackNamespace;
1131 fallback_namespace_record.origin = kManifestUrl.GetOrigin(); 1132 fallback_namespace_record.origin = kManifestUrl.GetOrigin();
1132 EXPECT_TRUE( 1133 EXPECT_TRUE(database()->InsertNamespace(&fallback_namespace_record));
1133 database()->InsertFallbackNameSpace(&fallback_namespace_record));
1134 whitelist_record.cache_id = 1; 1134 whitelist_record.cache_id = 1;
1135 whitelist_record.namespace_url = kOnlineNamespaceWithinFallback; 1135 whitelist_record.namespace_url = kOnlineNamespaceWithinFallback;
1136 EXPECT_TRUE(database()->InsertOnlineWhiteList(&whitelist_record)); 1136 EXPECT_TRUE(database()->InsertOnlineWhiteList(&whitelist_record));
1137 if (drop_from_working_set) { 1137 if (drop_from_working_set) {
1138 cache_ = NULL; 1138 cache_ = NULL;
1139 group_ = NULL; 1139 group_ = NULL;
1140 } 1140 }
1141 1141
1142 // We should not find anything for the foreign entry. 1142 // We should not find anything for the foreign entry.
1143 PushNextTask(base::Bind(&AppCacheStorageImplTest::Verify_ExclusionNotFound, 1143 PushNextTask(base::Bind(&AppCacheStorageImplTest::Verify_ExclusionNotFound,
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
1331 } 1331 }
1332 1332
1333 TEST_F(AppCacheStorageImplTest, FindMainResponseExclusionsInWorkingSet) { 1333 TEST_F(AppCacheStorageImplTest, FindMainResponseExclusionsInWorkingSet) {
1334 RunTestOnIOThread( 1334 RunTestOnIOThread(
1335 &AppCacheStorageImplTest::FindMainResponseExclusionsInWorkingSet); 1335 &AppCacheStorageImplTest::FindMainResponseExclusionsInWorkingSet);
1336 } 1336 }
1337 1337
1338 // That's all folks! 1338 // That's all folks!
1339 1339
1340 } // namespace appcache 1340 } // namespace appcache
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698