OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authos. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authos. 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 "testing/gtest/include/gtest/gtest.h" | 5 #include "testing/gtest/include/gtest/gtest.h" |
6 | 6 |
7 #include "base/stl_util-inl.h" | 7 #include "base/stl_util-inl.h" |
8 #include "base/thread.h" | 8 #include "base/thread.h" |
9 #include "base/waitable_event.h" | 9 #include "base/waitable_event.h" |
10 #include "net/url_request/url_request_test_job.h" | 10 #include "net/url_request/url_request_test_job.h" |
(...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
666 MockFrontend* frontend1 = MakeMockFrontend(); | 666 MockFrontend* frontend1 = MakeMockFrontend(); |
667 MockFrontend* frontend2 = MakeMockFrontend(); | 667 MockFrontend* frontend2 = MakeMockFrontend(); |
668 AppCacheHost* host1 = MakeHost(1, frontend1); | 668 AppCacheHost* host1 = MakeHost(1, frontend1); |
669 AppCacheHost* host2 = MakeHost(2, frontend2); | 669 AppCacheHost* host2 = MakeHost(2, frontend2); |
670 host1->AssociateCache(cache); | 670 host1->AssociateCache(cache); |
671 host2->AssociateCache(cache); | 671 host2->AssociateCache(cache); |
672 | 672 |
673 // Give the newest cache a master entry that is also one of the explicit | 673 // Give the newest cache a master entry that is also one of the explicit |
674 // entries in the manifest. | 674 // entries in the manifest. |
675 cache->AddEntry(http_server_->TestServerPage("files/explicit1"), | 675 cache->AddEntry(http_server_->TestServerPage("files/explicit1"), |
676 AppCacheEntry(AppCacheEntry::MASTER)); | 676 AppCacheEntry(AppCacheEntry::MASTER, 111)); |
677 | 677 |
678 // TODO(jennb): simulate this by mocking storage behavior instead | 678 // TODO(jennb): simulate this by mocking storage behavior instead |
679 update->SimulateManifestChanged(true); // changed | 679 update->SimulateManifestChanged(true); // changed |
680 | 680 |
681 update->StartUpdate(NULL, GURL::EmptyGURL()); | 681 update->StartUpdate(NULL, GURL::EmptyGURL()); |
682 EXPECT_TRUE(update->manifest_url_request_ != NULL); | 682 EXPECT_TRUE(update->manifest_url_request_ != NULL); |
683 | 683 |
684 // Set up checks for when update job finishes. | 684 // Set up checks for when update job finishes. |
685 do_checks_after_update_finished_ = true; | 685 do_checks_after_update_finished_ = true; |
686 expect_group_obsolete_ = false; | 686 expect_group_obsolete_ = false; |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
788 MockFrontend* frontend1 = MakeMockFrontend(); | 788 MockFrontend* frontend1 = MakeMockFrontend(); |
789 MockFrontend* frontend2 = MakeMockFrontend(); | 789 MockFrontend* frontend2 = MakeMockFrontend(); |
790 AppCacheHost* host1 = MakeHost(1, frontend1); | 790 AppCacheHost* host1 = MakeHost(1, frontend1); |
791 AppCacheHost* host2 = MakeHost(2, frontend2); | 791 AppCacheHost* host2 = MakeHost(2, frontend2); |
792 host1->AssociateCache(cache); | 792 host1->AssociateCache(cache); |
793 host2->AssociateCache(cache); | 793 host2->AssociateCache(cache); |
794 | 794 |
795 // Give the newest cache some master entries; one will fail with a 404. | 795 // Give the newest cache some master entries; one will fail with a 404. |
796 cache->AddEntry( | 796 cache->AddEntry( |
797 http_server_->TestServerPage("files/notfound"), | 797 http_server_->TestServerPage("files/notfound"), |
798 AppCacheEntry(AppCacheEntry::MASTER)); | 798 AppCacheEntry(AppCacheEntry::MASTER, 222)); |
799 cache->AddEntry( | 799 cache->AddEntry( |
800 http_server_->TestServerPage("files/explicit2"), | 800 http_server_->TestServerPage("files/explicit2"), |
801 AppCacheEntry(AppCacheEntry::MASTER | AppCacheEntry::FOREIGN)); | 801 AppCacheEntry(AppCacheEntry::MASTER | AppCacheEntry::FOREIGN, 333)); |
802 cache->AddEntry( | 802 cache->AddEntry( |
803 http_server_->TestServerPage("files/servererror"), | 803 http_server_->TestServerPage("files/servererror"), |
804 AppCacheEntry(AppCacheEntry::MASTER)); | 804 AppCacheEntry(AppCacheEntry::MASTER, 444)); |
805 | 805 |
806 // TODO(jennb): simulate this by mocking storage behavior instead | 806 // TODO(jennb): simulate this by mocking storage behavior instead |
807 update->SimulateManifestChanged(true); // changed | 807 update->SimulateManifestChanged(true); // changed |
808 | 808 |
809 update->StartUpdate(NULL, GURL::EmptyGURL()); | 809 update->StartUpdate(NULL, GURL::EmptyGURL()); |
810 EXPECT_TRUE(update->manifest_url_request_ != NULL); | 810 EXPECT_TRUE(update->manifest_url_request_ != NULL); |
811 | 811 |
812 // Set up checks for when update job finishes. | 812 // Set up checks for when update job finishes. |
813 do_checks_after_update_finished_ = true; | 813 do_checks_after_update_finished_ = true; |
814 expect_group_obsolete_ = false; | 814 expect_group_obsolete_ = false; |
815 expect_group_has_cache_ = true; | 815 expect_group_has_cache_ = true; |
816 expect_old_cache_ = cache; | 816 expect_old_cache_ = cache; |
817 tested_manifest_ = MANIFEST1; | 817 tested_manifest_ = MANIFEST1; |
818 expect_extra_entries_.insert(AppCache::EntryMap::value_type( | 818 expect_extra_entries_.insert(AppCache::EntryMap::value_type( |
819 http_server_->TestServerPage("files/explicit2"), | 819 http_server_->TestServerPage("files/explicit2"), |
820 AppCacheEntry(AppCacheEntry::MASTER))); // foreign flag is dropped | 820 AppCacheEntry(AppCacheEntry::MASTER))); // foreign flag is dropped |
821 expect_extra_entries_.insert(AppCache::EntryMap::value_type( | 821 expect_extra_entries_.insert(AppCache::EntryMap::value_type( |
822 http_server_->TestServerPage("files/servererror"), | 822 http_server_->TestServerPage("files/servererror"), |
823 AppCacheEntry(AppCacheEntry::MASTER))); // foreign flag is dropped | 823 AppCacheEntry(AppCacheEntry::MASTER))); |
824 MockFrontend::HostIds ids1(1, host1->host_id()); | 824 MockFrontend::HostIds ids1(1, host1->host_id()); |
825 frontend1->AddExpectedEvent(ids1, CHECKING_EVENT); | 825 frontend1->AddExpectedEvent(ids1, CHECKING_EVENT); |
826 frontend1->AddExpectedEvent(ids1, DOWNLOADING_EVENT); | 826 frontend1->AddExpectedEvent(ids1, DOWNLOADING_EVENT); |
827 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); // explicit1 | 827 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); // explicit1 |
828 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); // fallback1a | 828 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); // fallback1a |
829 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); // notfound (load) | 829 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); // notfound (load) |
830 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); // notfound (fetch) | 830 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); // notfound (fetch) |
831 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); // explicit2 (load) | 831 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); // explicit2 (load) |
832 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); // explicit2 (fetch) | 832 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); // explicit2 (fetch) |
833 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); // servererror (load) | 833 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); // servererror (load) |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1005 do_checks_after_update_finished_ = true; | 1005 do_checks_after_update_finished_ = true; |
1006 expect_group_obsolete_ = false; | 1006 expect_group_obsolete_ = false; |
1007 expect_group_has_cache_ = true; | 1007 expect_group_has_cache_ = true; |
1008 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), | 1008 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), |
1009 CHECKING_EVENT); | 1009 CHECKING_EVENT); |
1010 | 1010 |
1011 WaitForUpdateToFinish(); | 1011 WaitForUpdateToFinish(); |
1012 } | 1012 } |
1013 | 1013 |
1014 void RetryUrlTest() { | 1014 void RetryUrlTest() { |
| 1015 ASSERT_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()); |
| 1016 |
1015 // Set 1 as the retry limit (does not exceed the max). | 1017 // Set 1 as the retry limit (does not exceed the max). |
1016 // Expect 1 manifest fetch, 1 url fetch, 1 url retry, 1 manifest refetch. | 1018 // Expect 1 manifest fetch, 1 url fetch, 1 url retry, 1 manifest refetch. |
1017 RetryRequestTestJob::Initialize(1, RetryRequestTestJob::RETRY_AFTER_0, 4); | 1019 RetryRequestTestJob::Initialize(1, RetryRequestTestJob::RETRY_AFTER_0, 4); |
1018 old_factory_ = URLRequest::RegisterProtocolFactory( | 1020 old_factory_ = URLRequest::RegisterProtocolFactory( |
1019 "http", RetryRequestTestJob::RetryFactory); | 1021 "http", RetryRequestTestJob::RetryFactory); |
1020 registered_factory_ = true; | 1022 registered_factory_ = true; |
1021 | 1023 |
1022 MakeService(); | 1024 MakeService(); |
1023 group_ = new AppCacheGroup(service_.get(), GURL("http://retryurl")); | 1025 group_ = new AppCacheGroup(service_.get(), GURL("http://retryurl")); |
1024 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); | 1026 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); |
1025 group_->update_job_ = update; | 1027 group_->update_job_ = update; |
1026 | 1028 |
1027 MockFrontend* frontend = MakeMockFrontend(); | 1029 MockFrontend* frontend = MakeMockFrontend(); |
1028 AppCacheHost* host = MakeHost(1, frontend); | 1030 AppCacheHost* host = MakeHost(1, frontend); |
1029 update->StartUpdate(host, GURL::EmptyGURL()); | 1031 update->StartUpdate(host, GURL::EmptyGURL()); |
1030 EXPECT_TRUE(update->manifest_url_request_ != NULL); | 1032 EXPECT_TRUE(update->manifest_url_request_ != NULL); |
1031 | 1033 |
1032 // Set up checks for when update job finishes. | 1034 // Set up checks for when update job finishes. |
1033 do_checks_after_update_finished_ = true; | 1035 do_checks_after_update_finished_ = true; |
1034 expect_group_obsolete_ = false; | 1036 expect_group_obsolete_ = false; |
1035 expect_group_has_cache_ = true; | 1037 expect_group_has_cache_ = true; |
1036 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), | 1038 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), |
1037 CHECKING_EVENT); | 1039 CHECKING_EVENT); |
1038 | 1040 |
1039 WaitForUpdateToFinish(); | 1041 WaitForUpdateToFinish(); |
1040 } | 1042 } |
1041 | 1043 |
| 1044 void FailStoreNewestCacheTest() { |
| 1045 ASSERT_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()); |
| 1046 |
| 1047 MakeService(); |
| 1048 MockAppCacheStorage* storage = |
| 1049 reinterpret_cast<MockAppCacheStorage*>(service_->storage()); |
| 1050 storage->SimulateStoreGroupAndNewestCacheFailure(); |
| 1051 |
| 1052 group_ = new AppCacheGroup( |
| 1053 service_.get(), http_server_->TestServerPage("files/manifest1")); |
| 1054 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); |
| 1055 group_->update_job_ = update; |
| 1056 |
| 1057 MockFrontend* frontend = MakeMockFrontend(); |
| 1058 AppCacheHost* host = MakeHost(1, frontend); |
| 1059 update->StartUpdate(host, GURL::EmptyGURL()); |
| 1060 |
| 1061 // Set up checks for when update job finishes. |
| 1062 do_checks_after_update_finished_ = true; |
| 1063 expect_group_obsolete_ = false; |
| 1064 expect_group_has_cache_ = false; // storage failed |
| 1065 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), |
| 1066 CHECKING_EVENT); |
| 1067 |
| 1068 WaitForUpdateToFinish(); |
| 1069 } |
| 1070 |
| 1071 void UpgradeFailStoreNewestCacheTest() { |
| 1072 ASSERT_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()); |
| 1073 |
| 1074 MakeService(); |
| 1075 MockAppCacheStorage* storage = |
| 1076 reinterpret_cast<MockAppCacheStorage*>(service_->storage()); |
| 1077 storage->SimulateStoreGroupAndNewestCacheFailure(); |
| 1078 |
| 1079 group_ = new AppCacheGroup( |
| 1080 service_.get(), http_server_->TestServerPage("files/manifest1")); |
| 1081 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); |
| 1082 group_->update_job_ = update; |
| 1083 |
| 1084 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId()); |
| 1085 MockFrontend* frontend1 = MakeMockFrontend(); |
| 1086 MockFrontend* frontend2 = MakeMockFrontend(); |
| 1087 AppCacheHost* host1 = MakeHost(1, frontend1); |
| 1088 AppCacheHost* host2 = MakeHost(2, frontend2); |
| 1089 host1->AssociateCache(cache); |
| 1090 host2->AssociateCache(cache); |
| 1091 |
| 1092 // TODO(jennb): simulate this by mocking storage behavior instead |
| 1093 update->SimulateManifestChanged(true); // changed |
| 1094 |
| 1095 update->StartUpdate(NULL, GURL::EmptyGURL()); |
| 1096 |
| 1097 // Set up checks for when update job finishes. |
| 1098 do_checks_after_update_finished_ = true; |
| 1099 expect_group_obsolete_ = false; |
| 1100 expect_group_has_cache_ = true; |
| 1101 expect_newest_cache_ = cache; // unchanged |
| 1102 MockFrontend::HostIds ids1(1, host1->host_id()); |
| 1103 frontend1->AddExpectedEvent(ids1, CHECKING_EVENT); |
| 1104 frontend1->AddExpectedEvent(ids1, DOWNLOADING_EVENT); |
| 1105 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); |
| 1106 frontend1->AddExpectedEvent(ids1, PROGRESS_EVENT); |
| 1107 frontend1->AddExpectedEvent(ids1, ERROR_EVENT); |
| 1108 MockFrontend::HostIds ids2(1, host2->host_id()); |
| 1109 frontend2->AddExpectedEvent(ids2, CHECKING_EVENT); |
| 1110 frontend2->AddExpectedEvent(ids2, DOWNLOADING_EVENT); |
| 1111 frontend2->AddExpectedEvent(ids2, PROGRESS_EVENT); |
| 1112 frontend2->AddExpectedEvent(ids2, PROGRESS_EVENT); |
| 1113 frontend2->AddExpectedEvent(ids2, ERROR_EVENT); |
| 1114 |
| 1115 WaitForUpdateToFinish(); |
| 1116 } |
| 1117 |
| 1118 void FailMakeGroupObsoleteTest() { |
| 1119 ASSERT_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()); |
| 1120 |
| 1121 MakeService(); |
| 1122 MockAppCacheStorage* storage = |
| 1123 reinterpret_cast<MockAppCacheStorage*>(service_->storage()); |
| 1124 storage->SimulateMakeGroupObsoleteFailure(); |
| 1125 |
| 1126 group_ = new AppCacheGroup( |
| 1127 service_.get(), http_server_->TestServerPage("files/gone")); |
| 1128 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); |
| 1129 group_->update_job_ = update; |
| 1130 |
| 1131 MockFrontend* frontend = MakeMockFrontend(); |
| 1132 AppCacheHost* host = MakeHost(1, frontend); |
| 1133 update->StartUpdate(host, GURL::EmptyGURL()); |
| 1134 EXPECT_TRUE(update->manifest_url_request_ != NULL); |
| 1135 |
| 1136 // Set up checks for when update job finishes. |
| 1137 do_checks_after_update_finished_ = true; |
| 1138 expect_group_obsolete_ = false; |
| 1139 expect_group_has_cache_ = false; |
| 1140 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), |
| 1141 CHECKING_EVENT); |
| 1142 |
| 1143 WaitForUpdateToFinish(); |
| 1144 } |
| 1145 |
| 1146 void UpgradeFailMakeGroupObsoleteTest() { |
| 1147 ASSERT_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()); |
| 1148 |
| 1149 MakeService(); |
| 1150 MockAppCacheStorage* storage = |
| 1151 reinterpret_cast<MockAppCacheStorage*>(service_->storage()); |
| 1152 storage->SimulateMakeGroupObsoleteFailure(); |
| 1153 |
| 1154 group_ = new AppCacheGroup( |
| 1155 service_.get(), http_server_->TestServerPage("files/nosuchfile")); |
| 1156 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); |
| 1157 group_->update_job_ = update; |
| 1158 |
| 1159 AppCache* cache = MakeCacheForGroup(1); |
| 1160 MockFrontend* frontend1 = MakeMockFrontend(); |
| 1161 MockFrontend* frontend2 = MakeMockFrontend(); |
| 1162 AppCacheHost* host1 = MakeHost(1, frontend1); |
| 1163 AppCacheHost* host2 = MakeHost(2, frontend2); |
| 1164 host1->AssociateCache(cache); |
| 1165 host2->AssociateCache(cache); |
| 1166 |
| 1167 update->StartUpdate(NULL, GURL::EmptyGURL()); |
| 1168 EXPECT_TRUE(update->manifest_url_request_ != NULL); |
| 1169 |
| 1170 // Set up checks for when update job finishes. |
| 1171 do_checks_after_update_finished_ = true; |
| 1172 expect_group_obsolete_ = false; |
| 1173 expect_group_has_cache_ = true; |
| 1174 expect_newest_cache_ = cache; // newest cache unaffected by update |
| 1175 MockFrontend::HostIds ids1(1, host1->host_id()); |
| 1176 frontend1->AddExpectedEvent(ids1, CHECKING_EVENT); |
| 1177 frontend1->AddExpectedEvent(ids1, ERROR_EVENT); |
| 1178 MockFrontend::HostIds ids2(1, host2->host_id()); |
| 1179 frontend2->AddExpectedEvent(ids2, CHECKING_EVENT); |
| 1180 frontend2->AddExpectedEvent(ids2, ERROR_EVENT); |
| 1181 |
| 1182 WaitForUpdateToFinish(); |
| 1183 } |
| 1184 |
1042 void WaitForUpdateToFinish() { | 1185 void WaitForUpdateToFinish() { |
1043 if (group_->update_status() == AppCacheGroup::IDLE) | 1186 if (group_->update_status() == AppCacheGroup::IDLE) |
1044 UpdateFinished(); | 1187 UpdateFinished(); |
1045 else | 1188 else |
1046 group_->AddUpdateObserver(this); | 1189 group_->AddUpdateObserver(this); |
1047 } | 1190 } |
1048 | 1191 |
1049 void OnUpdateComplete(AppCacheGroup* group) { | 1192 void OnUpdateComplete(AppCacheGroup* group) { |
1050 ASSERT_EQ(group_, group); | 1193 ASSERT_EQ(group_, group); |
1051 protect_newest_cache_ = group->newest_complete_cache(); | 1194 protect_newest_cache_ = group->newest_complete_cache(); |
1052 UpdateFinished(); | 1195 UpdateFinished(); |
1053 } | 1196 } |
1054 | 1197 |
1055 void UpdateFinished() { | 1198 void UpdateFinished() { |
1056 // We unwind the stack prior to finishing up to let stack | 1199 // We unwind the stack prior to finishing up to let stack-based objects |
1057 // based objects get deleted. | 1200 // get deleted. |
1058 MessageLoop::current()->PostTask(FROM_HERE, | 1201 MessageLoop::current()->PostTask(FROM_HERE, |
1059 method_factory_.NewRunnableMethod( | 1202 method_factory_.NewRunnableMethod( |
1060 &AppCacheUpdateJobTest::UpdateFinishedUnwound)); | 1203 &AppCacheUpdateJobTest::UpdateFinishedUnwound)); |
1061 } | 1204 } |
1062 | 1205 |
1063 void UpdateFinishedUnwound() { | 1206 void UpdateFinishedUnwound() { |
1064 EXPECT_EQ(AppCacheGroup::IDLE, group_->update_status()); | 1207 EXPECT_EQ(AppCacheGroup::IDLE, group_->update_status()); |
1065 EXPECT_TRUE(group_->update_job() == NULL); | 1208 EXPECT_TRUE(group_->update_job() == NULL); |
1066 if (do_checks_after_update_finished_) | 1209 if (do_checks_after_update_finished_) |
1067 VerifyExpectations(); | 1210 VerifyExpectations(); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1112 EXPECT_EQ(expect_group_obsolete_, group_->is_obsolete()); | 1255 EXPECT_EQ(expect_group_obsolete_, group_->is_obsolete()); |
1113 | 1256 |
1114 if (expect_group_has_cache_) { | 1257 if (expect_group_has_cache_) { |
1115 EXPECT_TRUE(group_->newest_complete_cache() != NULL); | 1258 EXPECT_TRUE(group_->newest_complete_cache() != NULL); |
1116 if (expect_old_cache_) { | 1259 if (expect_old_cache_) { |
1117 EXPECT_NE(expect_old_cache_, group_->newest_complete_cache()); | 1260 EXPECT_NE(expect_old_cache_, group_->newest_complete_cache()); |
1118 EXPECT_TRUE(group_->old_caches().end() != | 1261 EXPECT_TRUE(group_->old_caches().end() != |
1119 std::find(group_->old_caches().begin(), | 1262 std::find(group_->old_caches().begin(), |
1120 group_->old_caches().end(), expect_old_cache_)); | 1263 group_->old_caches().end(), expect_old_cache_)); |
1121 } | 1264 } |
1122 if (expect_newest_cache_) | 1265 if (expect_newest_cache_) { |
1123 EXPECT_EQ(expect_newest_cache_, group_->newest_complete_cache()); | 1266 EXPECT_EQ(expect_newest_cache_, group_->newest_complete_cache()); |
| 1267 EXPECT_TRUE(group_->old_caches().end() == |
| 1268 std::find(group_->old_caches().begin(), |
| 1269 group_->old_caches().end(), expect_newest_cache_)); |
| 1270 } else { |
| 1271 // Tests that don't know which newest cache to expect contain updates |
| 1272 // that succeed (because the update creates a new cache whose pointer |
| 1273 // is unknown to the test). Check group and newest cache were stored |
| 1274 // when update succeeds. |
| 1275 MockAppCacheStorage* storage = |
| 1276 reinterpret_cast<MockAppCacheStorage*>(service_->storage()); |
| 1277 EXPECT_TRUE(storage->IsGroupStored(group_)); |
| 1278 EXPECT_TRUE(storage->IsCacheStored(group_->newest_complete_cache())); |
| 1279 |
| 1280 // Check that all entries in the newest cache were stored. |
| 1281 const AppCache::EntryMap& entries = |
| 1282 group_->newest_complete_cache()->entries(); |
| 1283 for (AppCache::EntryMap::const_iterator it = entries.begin(); |
| 1284 it != entries.end(); ++it) { |
| 1285 EXPECT_NE(kNoResponseId, it->second.response_id()); |
| 1286 } |
| 1287 } |
1124 } else { | 1288 } else { |
1125 EXPECT_TRUE(group_->newest_complete_cache() == NULL); | 1289 EXPECT_TRUE(group_->newest_complete_cache() == NULL); |
1126 } | 1290 } |
1127 | 1291 |
1128 // Check expected events. | 1292 // Check expected events. |
1129 for (size_t i = 0; i < frontends_.size(); ++i) { | 1293 for (size_t i = 0; i < frontends_.size(); ++i) { |
1130 MockFrontend* frontend = frontends_[i]; | 1294 MockFrontend* frontend = frontends_[i]; |
1131 | 1295 |
1132 MockFrontend::RaisedEvents& expected_events = frontend->expected_events_; | 1296 MockFrontend::RaisedEvents& expected_events = frontend->expected_events_; |
1133 MockFrontend::RaisedEvents& actual_events = frontend->raised_events_; | 1297 MockFrontend::RaisedEvents& actual_events = frontend->raised_events_; |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1451 } | 1615 } |
1452 | 1616 |
1453 TEST_F(AppCacheUpdateJobTest, RetrySuccess) { | 1617 TEST_F(AppCacheUpdateJobTest, RetrySuccess) { |
1454 RunTestOnIOThread(&AppCacheUpdateJobTest::RetrySuccessTest); | 1618 RunTestOnIOThread(&AppCacheUpdateJobTest::RetrySuccessTest); |
1455 } | 1619 } |
1456 | 1620 |
1457 TEST_F(AppCacheUpdateJobTest, RetryUrl) { | 1621 TEST_F(AppCacheUpdateJobTest, RetryUrl) { |
1458 RunTestOnIOThread(&AppCacheUpdateJobTest::RetryUrlTest); | 1622 RunTestOnIOThread(&AppCacheUpdateJobTest::RetryUrlTest); |
1459 } | 1623 } |
1460 | 1624 |
| 1625 TEST_F(AppCacheUpdateJobTest, FailStoreNewestCache) { |
| 1626 RunTestOnIOThread(&AppCacheUpdateJobTest::FailStoreNewestCacheTest); |
| 1627 } |
| 1628 |
| 1629 TEST_F(AppCacheUpdateJobTest, UpgradeFailStoreNewestCache) { |
| 1630 RunTestOnIOThread(&AppCacheUpdateJobTest::UpgradeFailStoreNewestCacheTest); |
| 1631 } |
| 1632 |
| 1633 TEST_F(AppCacheUpdateJobTest, FailMakeGroupObsolete) { |
| 1634 RunTestOnIOThread(&AppCacheUpdateJobTest::FailMakeGroupObsoleteTest); |
| 1635 } |
| 1636 |
| 1637 TEST_F(AppCacheUpdateJobTest, UpgradeFailMakeGroupObsolete) { |
| 1638 RunTestOnIOThread(&AppCacheUpdateJobTest::UpgradeFailMakeGroupObsoleteTest); |
| 1639 } |
| 1640 |
1461 } // namespace appcache | 1641 } // namespace appcache |
OLD | NEW |