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

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

Issue 11595003: webkit: Update the calls from RunAllPending() to RunUntilIdle(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <string> 5 #include <string>
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/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/pickle.h" 10 #include "base/pickle.h"
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 net::CompletionCallback deletion_callback_; 177 net::CompletionCallback deletion_callback_;
178 178
179 private: 179 private:
180 MessageLoop message_loop_; 180 MessageLoop message_loop_;
181 }; 181 };
182 182
183 TEST_F(AppCacheServiceTest, DeleteAppCachesForOrigin) { 183 TEST_F(AppCacheServiceTest, DeleteAppCachesForOrigin) {
184 // Without giving mock storage simiulated info, should fail. 184 // Without giving mock storage simiulated info, should fail.
185 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_); 185 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_);
186 EXPECT_EQ(0, delete_completion_count_); 186 EXPECT_EQ(0, delete_completion_count_);
187 MessageLoop::current()->RunAllPending(); 187 MessageLoop::current()->RunUntilIdle();
188 EXPECT_EQ(1, delete_completion_count_); 188 EXPECT_EQ(1, delete_completion_count_);
189 EXPECT_EQ(net::ERR_FAILED, delete_result_); 189 EXPECT_EQ(net::ERR_FAILED, delete_result_);
190 delete_completion_count_ = 0; 190 delete_completion_count_ = 0;
191 191
192 // Should succeed given an empty info collection. 192 // Should succeed given an empty info collection.
193 mock_storage()->SimulateGetAllInfo(new AppCacheInfoCollection); 193 mock_storage()->SimulateGetAllInfo(new AppCacheInfoCollection);
194 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_); 194 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_);
195 EXPECT_EQ(0, delete_completion_count_); 195 EXPECT_EQ(0, delete_completion_count_);
196 MessageLoop::current()->RunAllPending(); 196 MessageLoop::current()->RunUntilIdle();
197 EXPECT_EQ(1, delete_completion_count_); 197 EXPECT_EQ(1, delete_completion_count_);
198 EXPECT_EQ(net::OK, delete_result_); 198 EXPECT_EQ(net::OK, delete_result_);
199 delete_completion_count_ = 0; 199 delete_completion_count_ = 0;
200 200
201 scoped_refptr<AppCacheInfoCollection> info(new AppCacheInfoCollection); 201 scoped_refptr<AppCacheInfoCollection> info(new AppCacheInfoCollection);
202 202
203 // Should succeed given a non-empty info collection. 203 // Should succeed given a non-empty info collection.
204 AppCacheInfo mock_manifest_1; 204 AppCacheInfo mock_manifest_1;
205 AppCacheInfo mock_manifest_2; 205 AppCacheInfo mock_manifest_2;
206 AppCacheInfo mock_manifest_3; 206 AppCacheInfo mock_manifest_3;
207 mock_manifest_1.manifest_url = kOrigin.Resolve("manifest1"); 207 mock_manifest_1.manifest_url = kOrigin.Resolve("manifest1");
208 mock_manifest_2.manifest_url = kOrigin.Resolve("manifest2"); 208 mock_manifest_2.manifest_url = kOrigin.Resolve("manifest2");
209 mock_manifest_3.manifest_url = kOrigin.Resolve("manifest3"); 209 mock_manifest_3.manifest_url = kOrigin.Resolve("manifest3");
210 AppCacheInfoVector info_vector; 210 AppCacheInfoVector info_vector;
211 info_vector.push_back(mock_manifest_1); 211 info_vector.push_back(mock_manifest_1);
212 info_vector.push_back(mock_manifest_2); 212 info_vector.push_back(mock_manifest_2);
213 info_vector.push_back(mock_manifest_3); 213 info_vector.push_back(mock_manifest_3);
214 info->infos_by_origin[kOrigin] = info_vector; 214 info->infos_by_origin[kOrigin] = info_vector;
215 mock_storage()->SimulateGetAllInfo(info); 215 mock_storage()->SimulateGetAllInfo(info);
216 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_); 216 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_);
217 EXPECT_EQ(0, delete_completion_count_); 217 EXPECT_EQ(0, delete_completion_count_);
218 MessageLoop::current()->RunAllPending(); 218 MessageLoop::current()->RunUntilIdle();
219 EXPECT_EQ(1, delete_completion_count_); 219 EXPECT_EQ(1, delete_completion_count_);
220 EXPECT_EQ(net::OK, delete_result_); 220 EXPECT_EQ(net::OK, delete_result_);
221 delete_completion_count_ = 0; 221 delete_completion_count_ = 0;
222 222
223 // Should fail if storage fails to delete. 223 // Should fail if storage fails to delete.
224 info->infos_by_origin[kOrigin] = info_vector; 224 info->infos_by_origin[kOrigin] = info_vector;
225 mock_storage()->SimulateGetAllInfo(info); 225 mock_storage()->SimulateGetAllInfo(info);
226 mock_storage()->SimulateMakeGroupObsoleteFailure(); 226 mock_storage()->SimulateMakeGroupObsoleteFailure();
227 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_); 227 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_);
228 EXPECT_EQ(0, delete_completion_count_); 228 EXPECT_EQ(0, delete_completion_count_);
229 MessageLoop::current()->RunAllPending(); 229 MessageLoop::current()->RunUntilIdle();
230 EXPECT_EQ(1, delete_completion_count_); 230 EXPECT_EQ(1, delete_completion_count_);
231 EXPECT_EQ(net::ERR_FAILED, delete_result_); 231 EXPECT_EQ(net::ERR_FAILED, delete_result_);
232 delete_completion_count_ = 0; 232 delete_completion_count_ = 0;
233 233
234 // Should complete with abort error if the service is deleted 234 // Should complete with abort error if the service is deleted
235 // prior to a delete completion. 235 // prior to a delete completion.
236 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_); 236 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_);
237 EXPECT_EQ(0, delete_completion_count_); 237 EXPECT_EQ(0, delete_completion_count_);
238 service_.reset(); // kill it 238 service_.reset(); // kill it
239 EXPECT_EQ(1, delete_completion_count_); 239 EXPECT_EQ(1, delete_completion_count_);
240 EXPECT_EQ(net::ERR_ABORTED, delete_result_); 240 EXPECT_EQ(net::ERR_ABORTED, delete_result_);
241 delete_completion_count_ = 0; 241 delete_completion_count_ = 0;
242 242
243 // Let any tasks lingering from the sudden deletion run and verify 243 // Let any tasks lingering from the sudden deletion run and verify
244 // no other completion calls occur. 244 // no other completion calls occur.
245 MessageLoop::current()->RunAllPending(); 245 MessageLoop::current()->RunUntilIdle();
246 EXPECT_EQ(0, delete_completion_count_); 246 EXPECT_EQ(0, delete_completion_count_);
247 } 247 }
248 248
249 TEST_F(AppCacheServiceTest, CheckAppCacheResponse) { 249 TEST_F(AppCacheServiceTest, CheckAppCacheResponse) {
250 // Check a non-existing manifest. 250 // Check a non-existing manifest.
251 EXPECT_FALSE(IsGroupStored(kManifestUrl)); 251 EXPECT_FALSE(IsGroupStored(kManifestUrl));
252 service_->CheckAppCacheResponse(kManifestUrl, 1, 1); 252 service_->CheckAppCacheResponse(kManifestUrl, 1, 1);
253 MessageLoop::current()->RunAllPending(); 253 MessageLoop::current()->RunUntilIdle();
254 EXPECT_EQ(0, CountPendingHelpers()); 254 EXPECT_EQ(0, CountPendingHelpers());
255 EXPECT_FALSE(IsGroupStored(kManifestUrl)); 255 EXPECT_FALSE(IsGroupStored(kManifestUrl));
256 ResetStorage(); 256 ResetStorage();
257 257
258 // Check a response that looks good. 258 // Check a response that looks good.
259 // Nothing should be deleted. 259 // Nothing should be deleted.
260 SetupMockGroup(); 260 SetupMockGroup();
261 EXPECT_TRUE(IsGroupStored(kManifestUrl)); 261 EXPECT_TRUE(IsGroupStored(kManifestUrl));
262 SetupMockReader(true, true, true); 262 SetupMockReader(true, true, true);
263 service_->CheckAppCacheResponse(kManifestUrl, kMockCacheId, kMockResponseId); 263 service_->CheckAppCacheResponse(kManifestUrl, kMockCacheId, kMockResponseId);
264 MessageLoop::current()->RunAllPending(); 264 MessageLoop::current()->RunUntilIdle();
265 EXPECT_EQ(0, CountPendingHelpers()); 265 EXPECT_EQ(0, CountPendingHelpers());
266 EXPECT_TRUE(IsGroupStored(kManifestUrl)); 266 EXPECT_TRUE(IsGroupStored(kManifestUrl));
267 ResetStorage(); 267 ResetStorage();
268 268
269 // Check a response for which there is no cache entry. 269 // Check a response for which there is no cache entry.
270 // The group should get deleted. 270 // The group should get deleted.
271 SetupMockGroup(); 271 SetupMockGroup();
272 service_->CheckAppCacheResponse(kManifestUrl, kMockCacheId, 272 service_->CheckAppCacheResponse(kManifestUrl, kMockCacheId,
273 kMissingResponseId); 273 kMissingResponseId);
274 MessageLoop::current()->RunAllPending(); 274 MessageLoop::current()->RunUntilIdle();
275 EXPECT_EQ(0, CountPendingHelpers()); 275 EXPECT_EQ(0, CountPendingHelpers());
276 EXPECT_FALSE(IsGroupStored(kManifestUrl)); 276 EXPECT_FALSE(IsGroupStored(kManifestUrl));
277 ResetStorage(); 277 ResetStorage();
278 278
279 // Check a response for which there is no manifest entry in a newer version 279 // Check a response for which there is no manifest entry in a newer version
280 // of the cache. Nothing should get deleted in this case. 280 // of the cache. Nothing should get deleted in this case.
281 SetupMockGroup(); 281 SetupMockGroup();
282 service_->CheckAppCacheResponse(kManifestUrl, kMissingCacheId, 282 service_->CheckAppCacheResponse(kManifestUrl, kMissingCacheId,
283 kMissingResponseId); 283 kMissingResponseId);
284 MessageLoop::current()->RunAllPending(); 284 MessageLoop::current()->RunUntilIdle();
285 EXPECT_EQ(0, CountPendingHelpers()); 285 EXPECT_EQ(0, CountPendingHelpers());
286 EXPECT_TRUE(IsGroupStored(kManifestUrl)); 286 EXPECT_TRUE(IsGroupStored(kManifestUrl));
287 ResetStorage(); 287 ResetStorage();
288 288
289 // Check a response with bad headers. 289 // Check a response with bad headers.
290 SetupMockGroup(); 290 SetupMockGroup();
291 service_->CheckAppCacheResponse(kManifestUrl, kMockCacheId, kMockResponseId); 291 service_->CheckAppCacheResponse(kManifestUrl, kMockCacheId, kMockResponseId);
292 SetupMockReader(false, true, true); 292 SetupMockReader(false, true, true);
293 MessageLoop::current()->RunAllPending(); 293 MessageLoop::current()->RunUntilIdle();
294 EXPECT_EQ(0, CountPendingHelpers()); 294 EXPECT_EQ(0, CountPendingHelpers());
295 EXPECT_FALSE(IsGroupStored(kManifestUrl)); 295 EXPECT_FALSE(IsGroupStored(kManifestUrl));
296 ResetStorage(); 296 ResetStorage();
297 297
298 // Check a response with bad data. 298 // Check a response with bad data.
299 SetupMockGroup(); 299 SetupMockGroup();
300 service_->CheckAppCacheResponse(kManifestUrl, kMockCacheId, kMockResponseId); 300 service_->CheckAppCacheResponse(kManifestUrl, kMockCacheId, kMockResponseId);
301 SetupMockReader(true, false, true); 301 SetupMockReader(true, false, true);
302 MessageLoop::current()->RunAllPending(); 302 MessageLoop::current()->RunUntilIdle();
303 EXPECT_EQ(0, CountPendingHelpers()); 303 EXPECT_EQ(0, CountPendingHelpers());
304 EXPECT_FALSE(IsGroupStored(kManifestUrl)); 304 EXPECT_FALSE(IsGroupStored(kManifestUrl));
305 ResetStorage(); 305 ResetStorage();
306 306
307 // Check a response with truncated data. 307 // Check a response with truncated data.
308 SetupMockGroup(); 308 SetupMockGroup();
309 service_->CheckAppCacheResponse(kManifestUrl, kMockCacheId, kMockResponseId); 309 service_->CheckAppCacheResponse(kManifestUrl, kMockCacheId, kMockResponseId);
310 SetupMockReader(true, true, false); 310 SetupMockReader(true, true, false);
311 MessageLoop::current()->RunAllPending(); 311 MessageLoop::current()->RunUntilIdle();
312 EXPECT_EQ(0, CountPendingHelpers()); 312 EXPECT_EQ(0, CountPendingHelpers());
313 EXPECT_FALSE(IsGroupStored(kManifestUrl)); 313 EXPECT_FALSE(IsGroupStored(kManifestUrl));
314 ResetStorage(); 314 ResetStorage();
315 315
316 service_.reset(); // Clean up. 316 service_.reset(); // Clean up.
317 MessageLoop::current()->RunAllPending(); 317 MessageLoop::current()->RunUntilIdle();
318 } 318 }
319 319
320 } // namespace appcache 320 } // namespace appcache
OLDNEW
« no previous file with comments | « webkit/appcache/appcache_quota_client_unittest.cc ('k') | webkit/appcache/mock_appcache_storage_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698