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

Side by Side Diff: webkit/appcache/appcache_quota_client_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
« no previous file with comments | « no previous file | webkit/appcache/appcache_service_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <map> 5 #include <map>
6 #include <set> 6 #include <set>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/message_loop_proxy.h" 10 #include "base/message_loop_proxy.h"
(...skipping 26 matching lines...) Expand all
37 num_delete_origins_completions_(0), 37 num_delete_origins_completions_(0),
38 weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { 38 weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
39 } 39 }
40 40
41 int64 GetOriginUsage( 41 int64 GetOriginUsage(
42 quota::QuotaClient* client, 42 quota::QuotaClient* client,
43 const GURL& origin, 43 const GURL& origin,
44 quota::StorageType type) { 44 quota::StorageType type) {
45 usage_ = -1; 45 usage_ = -1;
46 AsyncGetOriginUsage(client, origin, type); 46 AsyncGetOriginUsage(client, origin, type);
47 MessageLoop::current()->RunAllPending(); 47 MessageLoop::current()->RunUntilIdle();
48 return usage_; 48 return usage_;
49 } 49 }
50 50
51 const std::set<GURL>& GetOriginsForType( 51 const std::set<GURL>& GetOriginsForType(
52 quota::QuotaClient* client, 52 quota::QuotaClient* client,
53 quota::StorageType type) { 53 quota::StorageType type) {
54 origins_.clear(); 54 origins_.clear();
55 AsyncGetOriginsForType(client, type); 55 AsyncGetOriginsForType(client, type);
56 MessageLoop::current()->RunAllPending(); 56 MessageLoop::current()->RunUntilIdle();
57 return origins_; 57 return origins_;
58 } 58 }
59 59
60 const std::set<GURL>& GetOriginsForHost( 60 const std::set<GURL>& GetOriginsForHost(
61 quota::QuotaClient* client, 61 quota::QuotaClient* client,
62 quota::StorageType type, 62 quota::StorageType type,
63 const std::string& host) { 63 const std::string& host) {
64 origins_.clear(); 64 origins_.clear();
65 AsyncGetOriginsForHost(client, type, host); 65 AsyncGetOriginsForHost(client, type, host);
66 MessageLoop::current()->RunAllPending(); 66 MessageLoop::current()->RunUntilIdle();
67 return origins_; 67 return origins_;
68 } 68 }
69 69
70 quota::QuotaStatusCode DeleteOriginData( 70 quota::QuotaStatusCode DeleteOriginData(
71 quota::QuotaClient* client, 71 quota::QuotaClient* client,
72 quota::StorageType type, 72 quota::StorageType type,
73 const GURL& origin) { 73 const GURL& origin) {
74 delete_status_ = quota::kQuotaStatusUnknown; 74 delete_status_ = quota::kQuotaStatusUnknown;
75 AsyncDeleteOriginData(client, type, origin); 75 AsyncDeleteOriginData(client, type, origin);
76 MessageLoop::current()->RunAllPending(); 76 MessageLoop::current()->RunUntilIdle();
77 return delete_status_; 77 return delete_status_;
78 } 78 }
79 79
80 void AsyncGetOriginUsage( 80 void AsyncGetOriginUsage(
81 quota::QuotaClient* client, 81 quota::QuotaClient* client,
82 const GURL& origin, 82 const GURL& origin,
83 quota::StorageType type) { 83 quota::StorageType type) {
84 client->GetOriginUsage( 84 client->GetOriginUsage(
85 origin, type, 85 origin, type,
86 base::Bind(&AppCacheQuotaClientTest::OnGetOriginUsageComplete, 86 base::Bind(&AppCacheQuotaClientTest::OnGetOriginUsageComplete,
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 AsyncGetOriginsForType(client, kTemp); 311 AsyncGetOriginsForType(client, kTemp);
312 AsyncGetOriginsForHost(client, kTemp, kOriginA.host()); 312 AsyncGetOriginsForHost(client, kTemp, kOriginA.host());
313 AsyncGetOriginsForHost(client, kTemp, kOriginOther.host()); 313 AsyncGetOriginsForHost(client, kTemp, kOriginOther.host());
314 AsyncDeleteOriginData(client, kTemp, kOriginA); 314 AsyncDeleteOriginData(client, kTemp, kOriginA);
315 AsyncDeleteOriginData(client, kPerm, kOriginA); 315 AsyncDeleteOriginData(client, kPerm, kOriginA);
316 AsyncDeleteOriginData(client, kTemp, kOriginB); 316 AsyncDeleteOriginData(client, kTemp, kOriginB);
317 317
318 EXPECT_EQ(0, num_get_origin_usage_completions_); 318 EXPECT_EQ(0, num_get_origin_usage_completions_);
319 EXPECT_EQ(0, num_get_origins_completions_); 319 EXPECT_EQ(0, num_get_origins_completions_);
320 EXPECT_EQ(0, num_delete_origins_completions_); 320 EXPECT_EQ(0, num_delete_origins_completions_);
321 MessageLoop::current()->RunAllPending(); 321 MessageLoop::current()->RunUntilIdle();
322 EXPECT_EQ(0, num_get_origin_usage_completions_); 322 EXPECT_EQ(0, num_get_origin_usage_completions_);
323 EXPECT_EQ(0, num_get_origins_completions_); 323 EXPECT_EQ(0, num_get_origins_completions_);
324 EXPECT_EQ(0, num_delete_origins_completions_); 324 EXPECT_EQ(0, num_delete_origins_completions_);
325 325
326 // Pending requests should get serviced when the appcache is ready. 326 // Pending requests should get serviced when the appcache is ready.
327 Call_NotifyAppCacheReady(client); 327 Call_NotifyAppCacheReady(client);
328 EXPECT_EQ(2, num_get_origin_usage_completions_); 328 EXPECT_EQ(2, num_get_origin_usage_completions_);
329 EXPECT_EQ(4, num_get_origins_completions_); 329 EXPECT_EQ(4, num_get_origins_completions_);
330 EXPECT_EQ(0, num_delete_origins_completions_); 330 EXPECT_EQ(0, num_delete_origins_completions_);
331 MessageLoop::current()->RunAllPending(); 331 MessageLoop::current()->RunUntilIdle();
332 EXPECT_EQ(3, num_delete_origins_completions_); // deletes are really async 332 EXPECT_EQ(3, num_delete_origins_completions_); // deletes are really async
333 333
334 // They should be serviced in order requested. 334 // They should be serviced in order requested.
335 EXPECT_EQ(10, usage_); 335 EXPECT_EQ(10, usage_);
336 EXPECT_EQ(1ul, origins_.size()); 336 EXPECT_EQ(1ul, origins_.size());
337 EXPECT_TRUE(origins_.find(kOriginOther) != origins_.end()); 337 EXPECT_TRUE(origins_.find(kOriginOther) != origins_.end());
338 338
339 Call_NotifyAppCacheDestroyed(client); 339 Call_NotifyAppCacheDestroyed(client);
340 Call_OnQuotaManagerDestroyed(client); 340 Call_OnQuotaManagerDestroyed(client);
341 } 341 }
342 342
343 TEST_F(AppCacheQuotaClientTest, DestroyServiceWithPending) { 343 TEST_F(AppCacheQuotaClientTest, DestroyServiceWithPending) {
344 AppCacheQuotaClient* client = CreateClient(); 344 AppCacheQuotaClient* client = CreateClient();
345 345
346 SetUsageMapEntry(kOriginA, 1000); 346 SetUsageMapEntry(kOriginA, 1000);
347 SetUsageMapEntry(kOriginB, 10); 347 SetUsageMapEntry(kOriginB, 10);
348 SetUsageMapEntry(kOriginOther, 500); 348 SetUsageMapEntry(kOriginOther, 500);
349 349
350 // Queue up some reqeusts prior to being ready. 350 // Queue up some reqeusts prior to being ready.
351 AsyncGetOriginUsage(client, kOriginA, kPerm); 351 AsyncGetOriginUsage(client, kOriginA, kPerm);
352 AsyncGetOriginUsage(client, kOriginB, kTemp); 352 AsyncGetOriginUsage(client, kOriginB, kTemp);
353 AsyncGetOriginsForType(client, kPerm); 353 AsyncGetOriginsForType(client, kPerm);
354 AsyncGetOriginsForType(client, kTemp); 354 AsyncGetOriginsForType(client, kTemp);
355 AsyncGetOriginsForHost(client, kTemp, kOriginA.host()); 355 AsyncGetOriginsForHost(client, kTemp, kOriginA.host());
356 AsyncGetOriginsForHost(client, kTemp, kOriginOther.host()); 356 AsyncGetOriginsForHost(client, kTemp, kOriginOther.host());
357 AsyncDeleteOriginData(client, kTemp, kOriginA); 357 AsyncDeleteOriginData(client, kTemp, kOriginA);
358 AsyncDeleteOriginData(client, kPerm, kOriginA); 358 AsyncDeleteOriginData(client, kPerm, kOriginA);
359 AsyncDeleteOriginData(client, kTemp, kOriginB); 359 AsyncDeleteOriginData(client, kTemp, kOriginB);
360 MessageLoop::current()->RunAllPending(); 360 MessageLoop::current()->RunUntilIdle();
361 EXPECT_EQ(0, num_get_origin_usage_completions_); 361 EXPECT_EQ(0, num_get_origin_usage_completions_);
362 EXPECT_EQ(0, num_get_origins_completions_); 362 EXPECT_EQ(0, num_get_origins_completions_);
363 EXPECT_EQ(0, num_delete_origins_completions_); 363 EXPECT_EQ(0, num_delete_origins_completions_);
364 364
365 // Kill the service. 365 // Kill the service.
366 Call_NotifyAppCacheDestroyed(client); 366 Call_NotifyAppCacheDestroyed(client);
367 367
368 // All should have been aborted and called completion. 368 // All should have been aborted and called completion.
369 EXPECT_EQ(2, num_get_origin_usage_completions_); 369 EXPECT_EQ(2, num_get_origin_usage_completions_);
370 EXPECT_EQ(4, num_get_origins_completions_); 370 EXPECT_EQ(4, num_get_origins_completions_);
(...skipping 15 matching lines...) Expand all
386 // Queue up some reqeusts prior to being ready. 386 // Queue up some reqeusts prior to being ready.
387 AsyncGetOriginUsage(client, kOriginA, kPerm); 387 AsyncGetOriginUsage(client, kOriginA, kPerm);
388 AsyncGetOriginUsage(client, kOriginB, kTemp); 388 AsyncGetOriginUsage(client, kOriginB, kTemp);
389 AsyncGetOriginsForType(client, kPerm); 389 AsyncGetOriginsForType(client, kPerm);
390 AsyncGetOriginsForType(client, kTemp); 390 AsyncGetOriginsForType(client, kTemp);
391 AsyncGetOriginsForHost(client, kTemp, kOriginA.host()); 391 AsyncGetOriginsForHost(client, kTemp, kOriginA.host());
392 AsyncGetOriginsForHost(client, kTemp, kOriginOther.host()); 392 AsyncGetOriginsForHost(client, kTemp, kOriginOther.host());
393 AsyncDeleteOriginData(client, kTemp, kOriginA); 393 AsyncDeleteOriginData(client, kTemp, kOriginA);
394 AsyncDeleteOriginData(client, kPerm, kOriginA); 394 AsyncDeleteOriginData(client, kPerm, kOriginA);
395 AsyncDeleteOriginData(client, kTemp, kOriginB); 395 AsyncDeleteOriginData(client, kTemp, kOriginB);
396 MessageLoop::current()->RunAllPending(); 396 MessageLoop::current()->RunUntilIdle();
397 EXPECT_EQ(0, num_get_origin_usage_completions_); 397 EXPECT_EQ(0, num_get_origin_usage_completions_);
398 EXPECT_EQ(0, num_get_origins_completions_); 398 EXPECT_EQ(0, num_get_origins_completions_);
399 EXPECT_EQ(0, num_delete_origins_completions_); 399 EXPECT_EQ(0, num_delete_origins_completions_);
400 400
401 // Kill the quota manager. 401 // Kill the quota manager.
402 Call_OnQuotaManagerDestroyed(client); 402 Call_OnQuotaManagerDestroyed(client);
403 Call_NotifyAppCacheReady(client); 403 Call_NotifyAppCacheReady(client);
404 404
405 // Callbacks should be deleted and not called. 405 // Callbacks should be deleted and not called.
406 MessageLoop::current()->RunAllPending(); 406 MessageLoop::current()->RunUntilIdle();
407 EXPECT_EQ(0, num_get_origin_usage_completions_); 407 EXPECT_EQ(0, num_get_origin_usage_completions_);
408 EXPECT_EQ(0, num_get_origins_completions_); 408 EXPECT_EQ(0, num_get_origins_completions_);
409 EXPECT_EQ(0, num_delete_origins_completions_); 409 EXPECT_EQ(0, num_delete_origins_completions_);
410 410
411 Call_NotifyAppCacheDestroyed(client); 411 Call_NotifyAppCacheDestroyed(client);
412 } 412 }
413 413
414 TEST_F(AppCacheQuotaClientTest, DestroyWithDeleteInProgress) { 414 TEST_F(AppCacheQuotaClientTest, DestroyWithDeleteInProgress) {
415 AppCacheQuotaClient* client = CreateClient(); 415 AppCacheQuotaClient* client = CreateClient();
416 Call_NotifyAppCacheReady(client); 416 Call_NotifyAppCacheReady(client);
417 417
418 // Start an async delete. 418 // Start an async delete.
419 AsyncDeleteOriginData(client, kTemp, kOriginB); 419 AsyncDeleteOriginData(client, kTemp, kOriginB);
420 EXPECT_EQ(0, num_delete_origins_completions_); 420 EXPECT_EQ(0, num_delete_origins_completions_);
421 421
422 // Kill the service. 422 // Kill the service.
423 Call_NotifyAppCacheDestroyed(client); 423 Call_NotifyAppCacheDestroyed(client);
424 424
425 // Should have been aborted. 425 // Should have been aborted.
426 EXPECT_EQ(1, num_delete_origins_completions_); 426 EXPECT_EQ(1, num_delete_origins_completions_);
427 EXPECT_EQ(quota::kQuotaErrorAbort, delete_status_); 427 EXPECT_EQ(quota::kQuotaErrorAbort, delete_status_);
428 428
429 // A real completion callback from the service should 429 // A real completion callback from the service should
430 // be dropped if it comes in after NotifyAppCacheDestroyed. 430 // be dropped if it comes in after NotifyAppCacheDestroyed.
431 MessageLoop::current()->RunAllPending(); 431 MessageLoop::current()->RunUntilIdle();
432 EXPECT_EQ(1, num_delete_origins_completions_); 432 EXPECT_EQ(1, num_delete_origins_completions_);
433 EXPECT_EQ(quota::kQuotaErrorAbort, delete_status_); 433 EXPECT_EQ(quota::kQuotaErrorAbort, delete_status_);
434 434
435 Call_OnQuotaManagerDestroyed(client); 435 Call_OnQuotaManagerDestroyed(client);
436 } 436 }
437 437
438 } // namespace appcache 438 } // namespace appcache
OLDNEW
« no previous file with comments | « no previous file | webkit/appcache/appcache_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698