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

Side by Side Diff: webkit/quota/quota_manager_unittest.cc

Issue 9369027: Remove `kMockStart` from `quota::MockStorageClient` (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 10 months 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 | « webkit/quota/quota_client.h ('k') | no next file » | 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 <set> 5 #include <set>
6 #include <sstream> 6 #include <sstream>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 } 60 }
61 61
62 void TearDown() { 62 void TearDown() {
63 // Make sure the quota manager cleans up correctly. 63 // Make sure the quota manager cleans up correctly.
64 quota_manager_ = NULL; 64 quota_manager_ = NULL;
65 MessageLoop::current()->RunAllPending(); 65 MessageLoop::current()->RunAllPending();
66 } 66 }
67 67
68 protected: 68 protected:
69 MockStorageClient* CreateClient( 69 MockStorageClient* CreateClient(
70 const MockOriginData* mock_data, size_t mock_data_size) {
71 return new MockStorageClient(quota_manager_->proxy(),
72 mock_data, mock_data_size);
73 }
74 MockStorageClient* CreateClient(
75 const MockOriginData* mock_data, 70 const MockOriginData* mock_data,
76 size_t mock_data_size, 71 size_t mock_data_size,
77 QuotaClient::ID id) { 72 QuotaClient::ID id) {
78 return new MockStorageClient(quota_manager_->proxy(), 73 return new MockStorageClient(quota_manager_->proxy(),
79 mock_data, id, mock_data_size); 74 mock_data, id, mock_data_size);
80 } 75 }
81 76
82 void RegisterClient(MockStorageClient* client) { 77 void RegisterClient(MockStorageClient* client) {
83 quota_manager_->proxy()->RegisterClient(client); 78 quota_manager_->proxy()->RegisterClient(client);
84 } 79 }
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 { "http://foo.com:8080/", kTemp, 15 }, 433 { "http://foo.com:8080/", kTemp, 15 },
439 { "http://bar.com/", kTemp, 20 }, 434 { "http://bar.com/", kTemp, 20 },
440 { "http://bar.com/", kPerm, 50 }, 435 { "http://bar.com/", kPerm, 50 },
441 }; 436 };
442 static const MockOriginData kData2[] = { 437 static const MockOriginData kData2[] = {
443 { "https://foo.com/", kTemp, 30 }, 438 { "https://foo.com/", kTemp, 30 },
444 { "https://foo.com:8081/", kTemp, 35 }, 439 { "https://foo.com:8081/", kTemp, 35 },
445 { "http://bar.com/", kPerm, 40 }, 440 { "http://bar.com/", kPerm, 40 },
446 { "http://example.com/", kPerm, 40 }, 441 { "http://example.com/", kPerm, 40 },
447 }; 442 };
448 RegisterClient(CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1))); 443 RegisterClient(CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1),
449 RegisterClient(CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2))); 444 QuotaClient::kFileSystem));
445 RegisterClient(CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2),
446 QuotaClient::kDatabase));
450 447
451 GetUsageInfo(); 448 GetUsageInfo();
452 MessageLoop::current()->RunAllPending(); 449 MessageLoop::current()->RunAllPending();
453 450
454 EXPECT_EQ(4U, usage_info().size()); 451 EXPECT_EQ(4U, usage_info().size());
455 for (size_t i = 0; i < usage_info().size(); ++i) { 452 for (size_t i = 0; i < usage_info().size(); ++i) {
456 const UsageInfo& info = usage_info()[i]; 453 const UsageInfo& info = usage_info()[i];
457 if (info.host == "foo.com" && info.type == kTemp) { 454 if (info.host == "foo.com" && info.type == kTemp) {
458 EXPECT_EQ(10 + 15 + 30 + 35, info.usage); 455 EXPECT_EQ(10 + 15 + 30 + 35, info.usage);
459 } else if (info.host == "bar.com" && info.type == kTemp) { 456 } else if (info.host == "bar.com" && info.type == kTemp) {
460 EXPECT_EQ(20, info.usage); 457 EXPECT_EQ(20, info.usage);
461 } else if (info.host == "bar.com" && info.type == kPerm) { 458 } else if (info.host == "bar.com" && info.type == kPerm) {
462 EXPECT_EQ(50 + 40, info.usage); 459 EXPECT_EQ(50 + 40, info.usage);
463 } else if (info.host == "example.com" && info.type == kPerm) { 460 } else if (info.host == "example.com" && info.type == kPerm) {
464 EXPECT_EQ(40, info.usage); 461 EXPECT_EQ(40, info.usage);
465 } else { 462 } else {
466 ADD_FAILURE() 463 ADD_FAILURE()
467 << "Unexpected host, type: " << info.host << ", " << info.type; 464 << "Unexpected host, type: " << info.host << ", " << info.type;
468 } 465 }
469 } 466 }
470 } 467 }
471 468
472 TEST_F(QuotaManagerTest, GetUsageAndQuota_Simple) { 469 TEST_F(QuotaManagerTest, GetUsageAndQuota_Simple) {
473 static const MockOriginData kData[] = { 470 static const MockOriginData kData[] = {
474 { "http://foo.com/", kTemp, 10 }, 471 { "http://foo.com/", kTemp, 10 },
475 { "http://foo.com/", kPerm, 80 }, 472 { "http://foo.com/", kPerm, 80 },
476 }; 473 };
477 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); 474 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
475 QuotaClient::kFileSystem));
478 476
479 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); 477 GetUsageAndQuota(GURL("http://foo.com/"), kPerm);
480 MessageLoop::current()->RunAllPending(); 478 MessageLoop::current()->RunAllPending();
481 EXPECT_EQ(kQuotaStatusOk, status()); 479 EXPECT_EQ(kQuotaStatusOk, status());
482 EXPECT_EQ(80, usage()); 480 EXPECT_EQ(80, usage());
483 EXPECT_EQ(0, quota()); 481 EXPECT_EQ(0, quota());
484 482
485 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); 483 GetUsageAndQuota(GURL("http://foo.com/"), kTemp);
486 MessageLoop::current()->RunAllPending(); 484 MessageLoop::current()->RunAllPending();
487 EXPECT_EQ(kQuotaStatusOk, status()); 485 EXPECT_EQ(kQuotaStatusOk, status());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 EXPECT_EQ(0, usage()); 518 EXPECT_EQ(0, usage());
521 EXPECT_EQ(0, unlimited_usage()); 519 EXPECT_EQ(0, unlimited_usage());
522 520
523 GetGlobalUsage(kPerm); 521 GetGlobalUsage(kPerm);
524 MessageLoop::current()->RunAllPending(); 522 MessageLoop::current()->RunAllPending();
525 EXPECT_EQ(0, usage()); 523 EXPECT_EQ(0, usage());
526 EXPECT_EQ(0, unlimited_usage()); 524 EXPECT_EQ(0, unlimited_usage());
527 } 525 }
528 526
529 TEST_F(QuotaManagerTest, GetUsage_EmptyClient) { 527 TEST_F(QuotaManagerTest, GetUsage_EmptyClient) {
530 RegisterClient(CreateClient(NULL, 0)); 528 RegisterClient(CreateClient(NULL, 0, QuotaClient::kFileSystem));
531 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); 529 GetUsageAndQuota(GURL("http://foo.com/"), kTemp);
532 MessageLoop::current()->RunAllPending(); 530 MessageLoop::current()->RunAllPending();
533 EXPECT_EQ(kQuotaStatusOk, status()); 531 EXPECT_EQ(kQuotaStatusOk, status());
534 EXPECT_EQ(0, usage()); 532 EXPECT_EQ(0, usage());
535 533
536 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); 534 GetUsageAndQuota(GURL("http://foo.com/"), kPerm);
537 MessageLoop::current()->RunAllPending(); 535 MessageLoop::current()->RunAllPending();
538 EXPECT_EQ(kQuotaStatusOk, status()); 536 EXPECT_EQ(kQuotaStatusOk, status());
539 EXPECT_EQ(0, usage()); 537 EXPECT_EQ(0, usage());
540 538
(...skipping 18 matching lines...) Expand all
559 557
560 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_MultiOrigins) { 558 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_MultiOrigins) {
561 static const MockOriginData kData[] = { 559 static const MockOriginData kData[] = {
562 { "http://foo.com/", kTemp, 10 }, 560 { "http://foo.com/", kTemp, 10 },
563 { "http://foo.com:8080/", kTemp, 20 }, 561 { "http://foo.com:8080/", kTemp, 20 },
564 { "http://bar.com/", kTemp, 5 }, 562 { "http://bar.com/", kTemp, 5 },
565 { "https://bar.com/", kTemp, 7 }, 563 { "https://bar.com/", kTemp, 7 },
566 { "http://baz.com/", kTemp, 30 }, 564 { "http://baz.com/", kTemp, 30 },
567 { "http://foo.com/", kPerm, 40 }, 565 { "http://foo.com/", kPerm, 40 },
568 }; 566 };
569 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); 567 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
568 QuotaClient::kFileSystem));
570 569
571 // This time explicitly sets a temporary global quota. 570 // This time explicitly sets a temporary global quota.
572 SetTemporaryGlobalQuota(100); 571 SetTemporaryGlobalQuota(100);
573 MessageLoop::current()->RunAllPending(); 572 MessageLoop::current()->RunAllPending();
574 EXPECT_EQ(kTemp, type()); 573 EXPECT_EQ(kTemp, type());
575 EXPECT_EQ(kQuotaStatusOk, status()); 574 EXPECT_EQ(kQuotaStatusOk, status());
576 EXPECT_EQ(100, quota()); 575 EXPECT_EQ(100, quota());
577 576
578 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); 577 GetUsageAndQuota(GURL("http://foo.com/"), kTemp);
579 MessageLoop::current()->RunAllPending(); 578 MessageLoop::current()->RunAllPending();
(...skipping 19 matching lines...) Expand all
599 { "http://bar.com/", kTemp, 20 }, 598 { "http://bar.com/", kTemp, 20 },
600 { "http://bar.com/", kPerm, 50 }, 599 { "http://bar.com/", kPerm, 50 },
601 { "http://unlimited/", kPerm, 1 }, 600 { "http://unlimited/", kPerm, 1 },
602 }; 601 };
603 static const MockOriginData kData2[] = { 602 static const MockOriginData kData2[] = {
604 { "https://foo.com/", kTemp, 30 }, 603 { "https://foo.com/", kTemp, 30 },
605 { "http://example.com/", kPerm, 40 }, 604 { "http://example.com/", kPerm, 40 },
606 { "http://unlimited/", kTemp, 1 }, 605 { "http://unlimited/", kTemp, 1 },
607 }; 606 };
608 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); 607 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/"));
609 RegisterClient(CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1))); 608 RegisterClient(CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1),
610 RegisterClient(CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2))); 609 QuotaClient::kFileSystem));
610 RegisterClient(CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2),
611 QuotaClient::kDatabase));
611 612
612 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); 613 GetUsageAndQuota(GURL("http://foo.com/"), kTemp);
613 MessageLoop::current()->RunAllPending(); 614 MessageLoop::current()->RunAllPending();
614 EXPECT_EQ(kQuotaStatusOk, status()); 615 EXPECT_EQ(kQuotaStatusOk, status());
615 EXPECT_EQ(10 + 30, usage()); 616 EXPECT_EQ(10 + 30, usage());
616 617
617 GetUsageAndQuota(GURL("http://bar.com/"), kPerm); 618 GetUsageAndQuota(GURL("http://bar.com/"), kPerm);
618 MessageLoop::current()->RunAllPending(); 619 MessageLoop::current()->RunAllPending();
619 EXPECT_EQ(kQuotaStatusOk, status()); 620 EXPECT_EQ(kQuotaStatusOk, status());
620 EXPECT_EQ(50, usage()); 621 EXPECT_EQ(50, usage());
(...skipping 21 matching lines...) Expand all
642 EXPECT_EQ(kQuotaStatusOk, status()); 643 EXPECT_EQ(kQuotaStatusOk, status());
643 EXPECT_EQ(40 + 50 + 1, usage()); 644 EXPECT_EQ(40 + 50 + 1, usage());
644 EXPECT_EQ(1, unlimited_usage()); 645 EXPECT_EQ(1, unlimited_usage());
645 } 646 }
646 647
647 void QuotaManagerTest::GetUsage_WithModifyTestBody(const StorageType type) { 648 void QuotaManagerTest::GetUsage_WithModifyTestBody(const StorageType type) {
648 const MockOriginData data[] = { 649 const MockOriginData data[] = {
649 { "http://foo.com/", type, 10 }, 650 { "http://foo.com/", type, 10 },
650 { "http://foo.com:1/", type, 20 }, 651 { "http://foo.com:1/", type, 20 },
651 }; 652 };
652 MockStorageClient* client = CreateClient(data, ARRAYSIZE_UNSAFE(data)); 653 MockStorageClient* client = CreateClient(data, ARRAYSIZE_UNSAFE(data),
654 QuotaClient::kFileSystem);
653 RegisterClient(client); 655 RegisterClient(client);
654 656
655 GetUsageAndQuota(GURL("http://foo.com/"), type); 657 GetUsageAndQuota(GURL("http://foo.com/"), type);
656 MessageLoop::current()->RunAllPending(); 658 MessageLoop::current()->RunAllPending();
657 EXPECT_EQ(kQuotaStatusOk, status()); 659 EXPECT_EQ(kQuotaStatusOk, status());
658 EXPECT_EQ(10 + 20, usage()); 660 EXPECT_EQ(10 + 20, usage());
659 661
660 client->ModifyOriginAndNotify(GURL("http://foo.com/"), type, 30); 662 client->ModifyOriginAndNotify(GURL("http://foo.com/"), type, 30);
661 client->ModifyOriginAndNotify(GURL("http://foo.com:1/"), type, -5); 663 client->ModifyOriginAndNotify(GURL("http://foo.com:1/"), type, -5);
662 client->AddOriginAndNotify(GURL("https://foo.com/"), type, 1); 664 client->AddOriginAndNotify(GURL("https://foo.com/"), type, 1);
(...skipping 20 matching lines...) Expand all
683 GetUsage_WithModifyTestBody(kTemp); 685 GetUsage_WithModifyTestBody(kTemp);
684 } 686 }
685 687
686 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_WithAdditionalTasks) { 688 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_WithAdditionalTasks) {
687 static const MockOriginData kData[] = { 689 static const MockOriginData kData[] = {
688 { "http://foo.com/", kTemp, 10 }, 690 { "http://foo.com/", kTemp, 10 },
689 { "http://foo.com:8080/", kTemp, 20 }, 691 { "http://foo.com:8080/", kTemp, 20 },
690 { "http://bar.com/", kTemp, 13 }, 692 { "http://bar.com/", kTemp, 13 },
691 { "http://foo.com/", kPerm, 40 }, 693 { "http://foo.com/", kPerm, 40 },
692 }; 694 };
693 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); 695 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
696 QuotaClient::kFileSystem));
694 SetTemporaryGlobalQuota(100); 697 SetTemporaryGlobalQuota(100);
695 MessageLoop::current()->RunAllPending(); 698 MessageLoop::current()->RunAllPending();
696 699
697 const int kPerHostQuota = 100 / QuotaManager::kPerHostTemporaryPortion; 700 const int kPerHostQuota = 100 / QuotaManager::kPerHostTemporaryPortion;
698 701
699 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); 702 GetUsageAndQuota(GURL("http://foo.com/"), kTemp);
700 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); 703 GetUsageAndQuota(GURL("http://foo.com/"), kTemp);
701 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); 704 GetUsageAndQuota(GURL("http://foo.com/"), kTemp);
702 MessageLoop::current()->RunAllPending(); 705 MessageLoop::current()->RunAllPending();
703 EXPECT_EQ(kQuotaStatusOk, status()); 706 EXPECT_EQ(kQuotaStatusOk, status());
(...skipping 13 matching lines...) Expand all
717 EXPECT_EQ(2, additional_callback_count()); 720 EXPECT_EQ(2, additional_callback_count());
718 } 721 }
719 722
720 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_NukeManager) { 723 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_NukeManager) {
721 static const MockOriginData kData[] = { 724 static const MockOriginData kData[] = {
722 { "http://foo.com/", kTemp, 10 }, 725 { "http://foo.com/", kTemp, 10 },
723 { "http://foo.com:8080/", kTemp, 20 }, 726 { "http://foo.com:8080/", kTemp, 20 },
724 { "http://bar.com/", kTemp, 13 }, 727 { "http://bar.com/", kTemp, 13 },
725 { "http://foo.com/", kPerm, 40 }, 728 { "http://foo.com/", kPerm, 40 },
726 }; 729 };
727 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); 730 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
731 QuotaClient::kFileSystem));
728 SetTemporaryGlobalQuota(100); 732 SetTemporaryGlobalQuota(100);
729 MessageLoop::current()->RunAllPending(); 733 MessageLoop::current()->RunAllPending();
730 734
731 set_additional_callback_count(0); 735 set_additional_callback_count(0);
732 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); 736 GetUsageAndQuota(GURL("http://foo.com/"), kTemp);
733 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), 737 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"),
734 kTemp); 738 kTemp);
735 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), 739 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"),
736 kTemp); 740 kTemp);
737 741
738 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); 742 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients);
739 DeleteOriginData(GURL("http://bar.com/"), kTemp, kAllClients); 743 DeleteOriginData(GURL("http://bar.com/"), kTemp, kAllClients);
740 744
741 // Nuke before waiting for callbacks. 745 // Nuke before waiting for callbacks.
742 set_quota_manager(NULL); 746 set_quota_manager(NULL);
743 MessageLoop::current()->RunAllPending(); 747 MessageLoop::current()->RunAllPending();
744 EXPECT_EQ(kQuotaErrorAbort, status()); 748 EXPECT_EQ(kQuotaErrorAbort, status());
745 } 749 }
746 750
747 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Overbudget) { 751 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Overbudget) {
748 static const MockOriginData kData[] = { 752 static const MockOriginData kData[] = {
749 { "http://usage1/", kTemp, 1 }, 753 { "http://usage1/", kTemp, 1 },
750 { "http://usage10/", kTemp, 10 }, 754 { "http://usage10/", kTemp, 10 },
751 { "http://usage200/", kTemp, 200 }, 755 { "http://usage200/", kTemp, 200 },
752 }; 756 };
753 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); 757 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
758 QuotaClient::kFileSystem));
754 SetTemporaryGlobalQuota(100); 759 SetTemporaryGlobalQuota(100);
755 MessageLoop::current()->RunAllPending(); 760 MessageLoop::current()->RunAllPending();
756 761
757 const int kPerHostQuota = 100 / QuotaManager::kPerHostTemporaryPortion; 762 const int kPerHostQuota = 100 / QuotaManager::kPerHostTemporaryPortion;
758 763
759 GetUsageAndQuota(GURL("http://usage1/"), kTemp); 764 GetUsageAndQuota(GURL("http://usage1/"), kTemp);
760 MessageLoop::current()->RunAllPending(); 765 MessageLoop::current()->RunAllPending();
761 EXPECT_EQ(kQuotaStatusOk, status()); 766 EXPECT_EQ(kQuotaStatusOk, status());
762 EXPECT_EQ(1, usage()); 767 EXPECT_EQ(1, usage());
763 EXPECT_EQ(1, quota()); // should be clamped to our current usage 768 EXPECT_EQ(1, quota()); // should be clamped to our current usage
(...skipping 11 matching lines...) Expand all
775 EXPECT_EQ(kPerHostQuota, quota()); // should be clamped to the nominal quota 780 EXPECT_EQ(kPerHostQuota, quota()); // should be clamped to the nominal quota
776 } 781 }
777 782
778 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Unlimited) { 783 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Unlimited) {
779 static const MockOriginData kData[] = { 784 static const MockOriginData kData[] = {
780 { "http://usage10/", kTemp, 10 }, 785 { "http://usage10/", kTemp, 10 },
781 { "http://usage50/", kTemp, 50 }, 786 { "http://usage50/", kTemp, 50 },
782 { "http://unlimited/", kTemp, 4000 }, 787 { "http://unlimited/", kTemp, 4000 },
783 }; 788 };
784 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); 789 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/"));
785 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); 790 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
791 QuotaClient::kFileSystem);
786 RegisterClient(client); 792 RegisterClient(client);
787 793
788 // Test when not overbugdet. 794 // Test when not overbugdet.
789 SetTemporaryGlobalQuota(1000); 795 SetTemporaryGlobalQuota(1000);
790 MessageLoop::current()->RunAllPending(); 796 MessageLoop::current()->RunAllPending();
791 797
792 GetGlobalUsage(kTemp); 798 GetGlobalUsage(kTemp);
793 MessageLoop::current()->RunAllPending(); 799 MessageLoop::current()->RunAllPending();
794 EXPECT_EQ(10 + 50 + 4000, usage()); 800 EXPECT_EQ(10 + 50 + 4000, usage());
795 EXPECT_EQ(4000, unlimited_usage()); 801 EXPECT_EQ(4000, unlimited_usage());
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
884 quota_manager()->NotifyOriginInUse(kBarOrigin); 890 quota_manager()->NotifyOriginInUse(kBarOrigin);
885 EXPECT_TRUE(quota_manager()->IsOriginInUse(kBarOrigin)); 891 EXPECT_TRUE(quota_manager()->IsOriginInUse(kBarOrigin));
886 quota_manager()->NotifyOriginNoLongerInUse(kBarOrigin); 892 quota_manager()->NotifyOriginNoLongerInUse(kBarOrigin);
887 EXPECT_FALSE(quota_manager()->IsOriginInUse(kBarOrigin)); 893 EXPECT_FALSE(quota_manager()->IsOriginInUse(kBarOrigin));
888 894
889 quota_manager()->NotifyOriginNoLongerInUse(kFooOrigin); 895 quota_manager()->NotifyOriginNoLongerInUse(kFooOrigin);
890 EXPECT_FALSE(quota_manager()->IsOriginInUse(kFooOrigin)); 896 EXPECT_FALSE(quota_manager()->IsOriginInUse(kFooOrigin));
891 } 897 }
892 898
893 TEST_F(QuotaManagerTest, GetAndSetPerststentHostQuota) { 899 TEST_F(QuotaManagerTest, GetAndSetPerststentHostQuota) {
894 RegisterClient(CreateClient(NULL, 0)); 900 RegisterClient(CreateClient(NULL, 0, QuotaClient::kFileSystem));
895 901
896 GetPersistentHostQuota("foo.com"); 902 GetPersistentHostQuota("foo.com");
897 MessageLoop::current()->RunAllPending(); 903 MessageLoop::current()->RunAllPending();
898 EXPECT_EQ("foo.com", host()); 904 EXPECT_EQ("foo.com", host());
899 EXPECT_EQ(kPerm, type()); 905 EXPECT_EQ(kPerm, type());
900 EXPECT_EQ(0, quota()); 906 EXPECT_EQ(0, quota());
901 907
902 SetPersistentHostQuota("foo.com", 100); 908 SetPersistentHostQuota("foo.com", 100);
903 MessageLoop::current()->RunAllPending(); 909 MessageLoop::current()->RunAllPending();
904 EXPECT_EQ(100, quota()); 910 EXPECT_EQ(100, quota());
905 911
906 GetPersistentHostQuota("foo.com"); 912 GetPersistentHostQuota("foo.com");
907 SetPersistentHostQuota("foo.com", 200); 913 SetPersistentHostQuota("foo.com", 200);
908 GetPersistentHostQuota("foo.com"); 914 GetPersistentHostQuota("foo.com");
909 SetPersistentHostQuota("foo.com", 300000000000ll); 915 SetPersistentHostQuota("foo.com", 300000000000ll);
910 GetPersistentHostQuota("foo.com"); 916 GetPersistentHostQuota("foo.com");
911 MessageLoop::current()->RunAllPending(); 917 MessageLoop::current()->RunAllPending();
912 EXPECT_EQ(300000000000ll, quota()); 918 EXPECT_EQ(300000000000ll, quota());
913 } 919 }
914 920
915 TEST_F(QuotaManagerTest, GetAndSetPersistentUsageAndQuota) { 921 TEST_F(QuotaManagerTest, GetAndSetPersistentUsageAndQuota) {
916 RegisterClient(CreateClient(NULL, 0)); 922 RegisterClient(CreateClient(NULL, 0, QuotaClient::kFileSystem));
917 923
918 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); 924 GetUsageAndQuota(GURL("http://foo.com/"), kPerm);
919 MessageLoop::current()->RunAllPending(); 925 MessageLoop::current()->RunAllPending();
920 EXPECT_EQ(kQuotaStatusOk, status()); 926 EXPECT_EQ(kQuotaStatusOk, status());
921 EXPECT_EQ(0, usage()); 927 EXPECT_EQ(0, usage());
922 EXPECT_EQ(0, quota()); 928 EXPECT_EQ(0, quota());
923 929
924 SetPersistentHostQuota("foo.com", 100); 930 SetPersistentHostQuota("foo.com", 100);
925 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); 931 GetUsageAndQuota(GURL("http://foo.com/"), kPerm);
926 MessageLoop::current()->RunAllPending(); 932 MessageLoop::current()->RunAllPending();
927 EXPECT_EQ(kQuotaStatusOk, status()); 933 EXPECT_EQ(kQuotaStatusOk, status());
928 EXPECT_EQ(0, usage()); 934 EXPECT_EQ(0, usage());
929 EXPECT_EQ(100, quota()); 935 EXPECT_EQ(100, quota());
930 } 936 }
931 937
932 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_MultiOrigins) { 938 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_MultiOrigins) {
933 static const MockOriginData kData[] = { 939 static const MockOriginData kData[] = {
934 { "http://foo.com/", kPerm, 10 }, 940 { "http://foo.com/", kPerm, 10 },
935 { "http://foo.com:8080/", kPerm, 20 }, 941 { "http://foo.com:8080/", kPerm, 20 },
936 { "https://foo.com/", kPerm, 13 }, 942 { "https://foo.com/", kPerm, 13 },
937 { "https://foo.com:8081/", kPerm, 19 }, 943 { "https://foo.com:8081/", kPerm, 19 },
938 { "http://bar.com/", kPerm, 5 }, 944 { "http://bar.com/", kPerm, 5 },
939 { "https://bar.com/", kPerm, 7 }, 945 { "https://bar.com/", kPerm, 7 },
940 { "http://baz.com/", kPerm, 30 }, 946 { "http://baz.com/", kPerm, 30 },
941 { "http://foo.com/", kTemp, 40 }, 947 { "http://foo.com/", kTemp, 40 },
942 }; 948 };
943 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); 949 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
950 QuotaClient::kFileSystem));
944 951
945 SetPersistentHostQuota("foo.com", 100); 952 SetPersistentHostQuota("foo.com", 100);
946 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); 953 GetUsageAndQuota(GURL("http://foo.com/"), kPerm);
947 MessageLoop::current()->RunAllPending(); 954 MessageLoop::current()->RunAllPending();
948 EXPECT_EQ(kQuotaStatusOk, status()); 955 EXPECT_EQ(kQuotaStatusOk, status());
949 EXPECT_EQ(10 + 20 + 13 + 19, usage()); 956 EXPECT_EQ(10 + 20 + 13 + 19, usage());
950 EXPECT_EQ(100, quota()); 957 EXPECT_EQ(100, quota());
951 } 958 }
952 959
953 TEST_F(QuotaManagerTest, GetPersistentUsage_WithModify) { 960 TEST_F(QuotaManagerTest, GetPersistentUsage_WithModify) {
954 GetUsage_WithModifyTestBody(kPerm); 961 GetUsage_WithModifyTestBody(kPerm);
955 } 962 }
956 963
957 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_WithAdditionalTasks) { 964 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_WithAdditionalTasks) {
958 static const MockOriginData kData[] = { 965 static const MockOriginData kData[] = {
959 { "http://foo.com/", kPerm, 10 }, 966 { "http://foo.com/", kPerm, 10 },
960 { "http://foo.com:8080/", kPerm, 20 }, 967 { "http://foo.com:8080/", kPerm, 20 },
961 { "http://bar.com/", kPerm, 13 }, 968 { "http://bar.com/", kPerm, 13 },
962 { "http://foo.com/", kTemp, 40 }, 969 { "http://foo.com/", kTemp, 40 },
963 }; 970 };
964 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); 971 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
972 QuotaClient::kFileSystem));
965 SetPersistentHostQuota("foo.com", 100); 973 SetPersistentHostQuota("foo.com", 100);
966 974
967 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); 975 GetUsageAndQuota(GURL("http://foo.com/"), kPerm);
968 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); 976 GetUsageAndQuota(GURL("http://foo.com/"), kPerm);
969 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); 977 GetUsageAndQuota(GURL("http://foo.com/"), kPerm);
970 MessageLoop::current()->RunAllPending(); 978 MessageLoop::current()->RunAllPending();
971 EXPECT_EQ(kQuotaStatusOk, status()); 979 EXPECT_EQ(kQuotaStatusOk, status());
972 EXPECT_EQ(10 + 20, usage()); 980 EXPECT_EQ(10 + 20, usage());
973 EXPECT_EQ(100, quota()); 981 EXPECT_EQ(100, quota());
974 982
975 set_additional_callback_count(0); 983 set_additional_callback_count(0);
976 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), 984 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"),
977 kPerm); 985 kPerm);
978 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); 986 GetUsageAndQuota(GURL("http://foo.com/"), kPerm);
979 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), 987 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"),
980 kPerm); 988 kPerm);
981 MessageLoop::current()->RunAllPending(); 989 MessageLoop::current()->RunAllPending();
982 EXPECT_EQ(kQuotaStatusOk, status()); 990 EXPECT_EQ(kQuotaStatusOk, status());
983 EXPECT_EQ(10 + 20, usage()); 991 EXPECT_EQ(10 + 20, usage());
984 EXPECT_EQ(2, additional_callback_count()); 992 EXPECT_EQ(2, additional_callback_count());
985 } 993 }
986 994
987 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_NukeManager) { 995 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_NukeManager) {
988 static const MockOriginData kData[] = { 996 static const MockOriginData kData[] = {
989 { "http://foo.com/", kPerm, 10 }, 997 { "http://foo.com/", kPerm, 10 },
990 { "http://foo.com:8080/", kPerm, 20 }, 998 { "http://foo.com:8080/", kPerm, 20 },
991 { "http://bar.com/", kPerm, 13 }, 999 { "http://bar.com/", kPerm, 13 },
992 { "http://foo.com/", kTemp, 40 }, 1000 { "http://foo.com/", kTemp, 40 },
993 }; 1001 };
994 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); 1002 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
1003 QuotaClient::kFileSystem));
995 SetPersistentHostQuota("foo.com", 100); 1004 SetPersistentHostQuota("foo.com", 100);
996 1005
997 set_additional_callback_count(0); 1006 set_additional_callback_count(0);
998 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); 1007 GetUsageAndQuota(GURL("http://foo.com/"), kPerm);
999 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), 1008 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"),
1000 kPerm); 1009 kPerm);
1001 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), 1010 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"),
1002 kPerm); 1011 kPerm);
1003 1012
1004 // Nuke before waiting for callbacks. 1013 // Nuke before waiting for callbacks.
1005 set_quota_manager(NULL); 1014 set_quota_manager(NULL);
1006 MessageLoop::current()->RunAllPending(); 1015 MessageLoop::current()->RunAllPending();
1007 EXPECT_EQ(kQuotaErrorAbort, status()); 1016 EXPECT_EQ(kQuotaErrorAbort, status());
1008 } 1017 }
1009 1018
1010 TEST_F(QuotaManagerTest, GetUsage_Simple) { 1019 TEST_F(QuotaManagerTest, GetUsage_Simple) {
1011 static const MockOriginData kData[] = { 1020 static const MockOriginData kData[] = {
1012 { "http://foo.com/", kPerm, 1 }, 1021 { "http://foo.com/", kPerm, 1 },
1013 { "http://foo.com:1/", kPerm, 20 }, 1022 { "http://foo.com:1/", kPerm, 20 },
1014 { "http://bar.com/", kTemp, 300 }, 1023 { "http://bar.com/", kTemp, 300 },
1015 { "https://buz.com/", kTemp, 4000 }, 1024 { "https://buz.com/", kTemp, 4000 },
1016 { "http://buz.com/", kTemp, 50000 }, 1025 { "http://buz.com/", kTemp, 50000 },
1017 { "http://bar.com:1/", kPerm, 600000 }, 1026 { "http://bar.com:1/", kPerm, 600000 },
1018 { "http://foo.com/", kTemp, 7000000 }, 1027 { "http://foo.com/", kTemp, 7000000 },
1019 }; 1028 };
1020 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); 1029 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
1030 QuotaClient::kFileSystem));
1021 1031
1022 GetGlobalUsage(kPerm); 1032 GetGlobalUsage(kPerm);
1023 MessageLoop::current()->RunAllPending(); 1033 MessageLoop::current()->RunAllPending();
1024 EXPECT_EQ(usage(), 1 + 20 + 600000); 1034 EXPECT_EQ(usage(), 1 + 20 + 600000);
1025 EXPECT_EQ(0, unlimited_usage()); 1035 EXPECT_EQ(0, unlimited_usage());
1026 1036
1027 GetGlobalUsage(kTemp); 1037 GetGlobalUsage(kTemp);
1028 MessageLoop::current()->RunAllPending(); 1038 MessageLoop::current()->RunAllPending();
1029 EXPECT_EQ(usage(), 300 + 4000 + 50000 + 7000000); 1039 EXPECT_EQ(usage(), 300 + 4000 + 50000 + 7000000);
1030 EXPECT_EQ(0, unlimited_usage()); 1040 EXPECT_EQ(0, unlimited_usage());
(...skipping 11 matching lines...) Expand all
1042 static const MockOriginData kData[] = { 1052 static const MockOriginData kData[] = {
1043 { "http://foo.com/", kPerm, 1 }, 1053 { "http://foo.com/", kPerm, 1 },
1044 { "http://foo.com:1/", kPerm, 20 }, 1054 { "http://foo.com:1/", kPerm, 20 },
1045 { "http://bar.com/", kTemp, 300 }, 1055 { "http://bar.com/", kTemp, 300 },
1046 { "https://buz.com/", kTemp, 4000 }, 1056 { "https://buz.com/", kTemp, 4000 },
1047 { "http://buz.com/", kTemp, 50000 }, 1057 { "http://buz.com/", kTemp, 50000 },
1048 { "http://bar.com:1/", kPerm, 600000 }, 1058 { "http://bar.com:1/", kPerm, 600000 },
1049 { "http://foo.com/", kTemp, 7000000 }, 1059 { "http://foo.com/", kTemp, 7000000 },
1050 }; 1060 };
1051 1061
1052 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); 1062 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
1063 QuotaClient::kFileSystem);
1053 RegisterClient(client); 1064 RegisterClient(client);
1054 1065
1055 GetGlobalUsage(kPerm); 1066 GetGlobalUsage(kPerm);
1056 MessageLoop::current()->RunAllPending(); 1067 MessageLoop::current()->RunAllPending();
1057 EXPECT_EQ(usage(), 1 + 20 + 600000); 1068 EXPECT_EQ(usage(), 1 + 20 + 600000);
1058 EXPECT_EQ(0, unlimited_usage()); 1069 EXPECT_EQ(0, unlimited_usage());
1059 1070
1060 client->ModifyOriginAndNotify( 1071 client->ModifyOriginAndNotify(
1061 GURL("http://foo.com/"), kPerm, 80000000); 1072 GURL("http://foo.com/"), kPerm, 80000000);
1062 1073
(...skipping 27 matching lines...) Expand all
1090 EXPECT_EQ(usage(), 4000 + 50000 + 900000000); 1101 EXPECT_EQ(usage(), 4000 + 50000 + 900000000);
1091 } 1102 }
1092 1103
1093 TEST_F(QuotaManagerTest, GetUsage_WithDeleteOrigin) { 1104 TEST_F(QuotaManagerTest, GetUsage_WithDeleteOrigin) {
1094 static const MockOriginData kData[] = { 1105 static const MockOriginData kData[] = {
1095 { "http://foo.com/", kTemp, 1 }, 1106 { "http://foo.com/", kTemp, 1 },
1096 { "http://foo.com:1/", kTemp, 20 }, 1107 { "http://foo.com:1/", kTemp, 20 },
1097 { "http://foo.com/", kPerm, 300 }, 1108 { "http://foo.com/", kPerm, 300 },
1098 { "http://bar.com/", kTemp, 4000 }, 1109 { "http://bar.com/", kTemp, 4000 },
1099 }; 1110 };
1100 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); 1111 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
1112 QuotaClient::kFileSystem);
1101 RegisterClient(client); 1113 RegisterClient(client);
1102 1114
1103 GetGlobalUsage(kTemp); 1115 GetGlobalUsage(kTemp);
1104 MessageLoop::current()->RunAllPending(); 1116 MessageLoop::current()->RunAllPending();
1105 int64 predelete_global_tmp = usage(); 1117 int64 predelete_global_tmp = usage();
1106 1118
1107 GetHostUsage("foo.com", kTemp); 1119 GetHostUsage("foo.com", kTemp);
1108 MessageLoop::current()->RunAllPending(); 1120 MessageLoop::current()->RunAllPending();
1109 int64 predelete_host_tmp = usage(); 1121 int64 predelete_host_tmp = usage();
1110 1122
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1144 { "http://foo.com/", kPerm, 300 }, 1156 { "http://foo.com/", kPerm, 300 },
1145 { "http://bar.com/", kTemp, 4000 }, 1157 { "http://bar.com/", kTemp, 4000 },
1146 }; 1158 };
1147 static const MockOriginData kData2[] = { 1159 static const MockOriginData kData2[] = {
1148 { "http://foo.com/", kTemp, 50000 }, 1160 { "http://foo.com/", kTemp, 50000 },
1149 { "http://foo.com:1/", kTemp, 6000 }, 1161 { "http://foo.com:1/", kTemp, 6000 },
1150 { "http://foo.com/", kPerm, 700 }, 1162 { "http://foo.com/", kPerm, 700 },
1151 { "https://foo.com/", kTemp, 80 }, 1163 { "https://foo.com/", kTemp, 80 },
1152 { "http://bar.com/", kTemp, 9 }, 1164 { "http://bar.com/", kTemp, 9 },
1153 }; 1165 };
1154 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1)); 1166 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1),
1155 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2)); 1167 QuotaClient::kFileSystem);
1168 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2),
1169 QuotaClient::kDatabase);
1156 RegisterClient(client1); 1170 RegisterClient(client1);
1157 RegisterClient(client2); 1171 RegisterClient(client2);
1158 1172
1159 GetGlobalUsage(kTemp); 1173 GetGlobalUsage(kTemp);
1160 MessageLoop::current()->RunAllPending(); 1174 MessageLoop::current()->RunAllPending();
1161 int64 predelete_global_tmp = usage(); 1175 int64 predelete_global_tmp = usage();
1162 1176
1163 GetHostUsage("foo.com", kTemp); 1177 GetHostUsage("foo.com", kTemp);
1164 MessageLoop::current()->RunAllPending(); 1178 MessageLoop::current()->RunAllPending();
1165 int64 predelete_host_tmp = usage(); 1179 int64 predelete_host_tmp = usage();
1166 1180
1167 GetHostUsage("foo.com", kPerm); 1181 GetHostUsage("foo.com", kPerm);
1168 MessageLoop::current()->RunAllPending(); 1182 MessageLoop::current()->RunAllPending();
1169 int64 predelete_host_pers = usage(); 1183 int64 predelete_host_pers = usage();
1170 1184
1171 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData1); ++i) 1185 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData1); ++i)
1172 quota_manager()->NotifyStorageAccessed(QuotaClient::kMockStart, 1186 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown,
1173 GURL(kData1[i].origin), kData1[i].type); 1187 GURL(kData1[i].origin), kData1[i].type);
1174 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData2); ++i) 1188 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData2); ++i)
1175 quota_manager()->NotifyStorageAccessed(QuotaClient::kMockStart, 1189 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown,
1176 GURL(kData2[i].origin), kData2[i].type); 1190 GURL(kData2[i].origin), kData2[i].type);
1177 MessageLoop::current()->RunAllPending(); 1191 MessageLoop::current()->RunAllPending();
1178 1192
1179 EvictOriginData(GURL("http://foo.com/"), kTemp); 1193 EvictOriginData(GURL("http://foo.com/"), kTemp);
1180 MessageLoop::current()->RunAllPending(); 1194 MessageLoop::current()->RunAllPending();
1181 1195
1182 DumpOriginInfoTable(); 1196 DumpOriginInfoTable();
1183 MessageLoop::current()->RunAllPending(); 1197 MessageLoop::current()->RunAllPending();
1184 1198
1185 typedef OriginInfoTableEntries::const_iterator iterator; 1199 typedef OriginInfoTableEntries::const_iterator iterator;
(...skipping 18 matching lines...) Expand all
1204 } 1218 }
1205 1219
1206 TEST_F(QuotaManagerTest, EvictOriginDataWithDeletionError) { 1220 TEST_F(QuotaManagerTest, EvictOriginDataWithDeletionError) {
1207 static const MockOriginData kData[] = { 1221 static const MockOriginData kData[] = {
1208 { "http://foo.com/", kTemp, 1 }, 1222 { "http://foo.com/", kTemp, 1 },
1209 { "http://foo.com:1/", kTemp, 20 }, 1223 { "http://foo.com:1/", kTemp, 20 },
1210 { "http://foo.com/", kPerm, 300 }, 1224 { "http://foo.com/", kPerm, 300 },
1211 { "http://bar.com/", kTemp, 4000 }, 1225 { "http://bar.com/", kTemp, 4000 },
1212 }; 1226 };
1213 static const int kNumberOfTemporaryOrigins = 3; 1227 static const int kNumberOfTemporaryOrigins = 3;
1214 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); 1228 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
1229 QuotaClient::kFileSystem);
1215 RegisterClient(client); 1230 RegisterClient(client);
1216 1231
1217 GetGlobalUsage(kTemp); 1232 GetGlobalUsage(kTemp);
1218 MessageLoop::current()->RunAllPending(); 1233 MessageLoop::current()->RunAllPending();
1219 int64 predelete_global_tmp = usage(); 1234 int64 predelete_global_tmp = usage();
1220 1235
1221 GetHostUsage("foo.com", kTemp); 1236 GetHostUsage("foo.com", kTemp);
1222 MessageLoop::current()->RunAllPending(); 1237 MessageLoop::current()->RunAllPending();
1223 int64 predelete_host_tmp = usage(); 1238 int64 predelete_host_tmp = usage();
1224 1239
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1289 1304
1290 TEST_F(QuotaManagerTest, GetUsageAndQuotaForEviction) { 1305 TEST_F(QuotaManagerTest, GetUsageAndQuotaForEviction) {
1291 static const MockOriginData kData[] = { 1306 static const MockOriginData kData[] = {
1292 { "http://foo.com/", kTemp, 1 }, 1307 { "http://foo.com/", kTemp, 1 },
1293 { "http://foo.com:1/", kTemp, 20 }, 1308 { "http://foo.com:1/", kTemp, 20 },
1294 { "http://foo.com/", kPerm, 300 }, 1309 { "http://foo.com/", kPerm, 300 },
1295 { "http://unlimited/", kTemp, 4000 }, 1310 { "http://unlimited/", kTemp, 4000 },
1296 }; 1311 };
1297 1312
1298 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); 1313 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/"));
1299 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); 1314 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
1315 QuotaClient::kFileSystem);
1300 RegisterClient(client); 1316 RegisterClient(client);
1301 1317
1302 SetTemporaryGlobalQuota(10000000); 1318 SetTemporaryGlobalQuota(10000000);
1303 MessageLoop::current()->RunAllPending(); 1319 MessageLoop::current()->RunAllPending();
1304 1320
1305 GetUsageAndQuotaForEviction(); 1321 GetUsageAndQuotaForEviction();
1306 MessageLoop::current()->RunAllPending(); 1322 MessageLoop::current()->RunAllPending();
1307 EXPECT_EQ(kQuotaStatusOk, status()); 1323 EXPECT_EQ(kQuotaStatusOk, status());
1308 EXPECT_EQ(4021, usage()); 1324 EXPECT_EQ(4021, usage());
1309 EXPECT_EQ(4000, unlimited_usage()); 1325 EXPECT_EQ(4000, unlimited_usage());
1310 EXPECT_EQ(10000000, quota()); 1326 EXPECT_EQ(10000000, quota());
1311 EXPECT_LE(0, available_space()); 1327 EXPECT_LE(0, available_space());
1312 } 1328 }
1313 1329
1314 TEST_F(QuotaManagerTest, DeleteHostDataSimple) { 1330 TEST_F(QuotaManagerTest, DeleteHostDataSimple) {
1315 static const MockOriginData kData[] = { 1331 static const MockOriginData kData[] = {
1316 { "http://foo.com/", kTemp, 1 }, 1332 { "http://foo.com/", kTemp, 1 },
1317 }; 1333 };
1318 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); 1334 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
1335 QuotaClient::kFileSystem);
1319 RegisterClient(client); 1336 RegisterClient(client);
1320 1337
1321 GetGlobalUsage(kTemp); 1338 GetGlobalUsage(kTemp);
1322 MessageLoop::current()->RunAllPending(); 1339 MessageLoop::current()->RunAllPending();
1323 const int64 predelete_global_tmp = usage(); 1340 const int64 predelete_global_tmp = usage();
1324 1341
1325 GetHostUsage("foo.com", kTemp); 1342 GetHostUsage("foo.com", kTemp);
1326 MessageLoop::current()->RunAllPending(); 1343 MessageLoop::current()->RunAllPending();
1327 int64 predelete_host_tmp = usage(); 1344 int64 predelete_host_tmp = usage();
1328 1345
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1370 { "http://foo.com/", kPerm, 300 }, 1387 { "http://foo.com/", kPerm, 300 },
1371 { "http://bar.com/", kTemp, 4000 }, 1388 { "http://bar.com/", kTemp, 4000 },
1372 }; 1389 };
1373 static const MockOriginData kData2[] = { 1390 static const MockOriginData kData2[] = {
1374 { "http://foo.com/", kTemp, 50000 }, 1391 { "http://foo.com/", kTemp, 50000 },
1375 { "http://foo.com:1/", kTemp, 6000 }, 1392 { "http://foo.com:1/", kTemp, 6000 },
1376 { "http://foo.com/", kPerm, 700 }, 1393 { "http://foo.com/", kPerm, 700 },
1377 { "https://foo.com/", kTemp, 80 }, 1394 { "https://foo.com/", kTemp, 80 },
1378 { "http://bar.com/", kTemp, 9 }, 1395 { "http://bar.com/", kTemp, 9 },
1379 }; 1396 };
1380 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1)); 1397 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1),
1381 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2)); 1398 QuotaClient::kFileSystem);
1399 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2),
1400 QuotaClient::kDatabase);
1382 RegisterClient(client1); 1401 RegisterClient(client1);
1383 RegisterClient(client2); 1402 RegisterClient(client2);
1384 1403
1385 GetGlobalUsage(kTemp); 1404 GetGlobalUsage(kTemp);
1386 MessageLoop::current()->RunAllPending(); 1405 MessageLoop::current()->RunAllPending();
1387 const int64 predelete_global_tmp = usage(); 1406 const int64 predelete_global_tmp = usage();
1388 1407
1389 GetHostUsage("foo.com", kTemp); 1408 GetHostUsage("foo.com", kTemp);
1390 MessageLoop::current()->RunAllPending(); 1409 MessageLoop::current()->RunAllPending();
1391 const int64 predelete_foo_tmp = usage(); 1410 const int64 predelete_foo_tmp = usage();
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1456 { "http://foo.com/", kPerm, 300 }, 1475 { "http://foo.com/", kPerm, 300 },
1457 { "http://bar.com/", kTemp, 4000 }, 1476 { "http://bar.com/", kTemp, 4000 },
1458 }; 1477 };
1459 static const MockOriginData kData2[] = { 1478 static const MockOriginData kData2[] = {
1460 { "http://foo.com/", kTemp, 50000 }, 1479 { "http://foo.com/", kTemp, 50000 },
1461 { "http://foo.com:1/", kTemp, 6000 }, 1480 { "http://foo.com:1/", kTemp, 6000 },
1462 { "http://foo.com/", kPerm, 700 }, 1481 { "http://foo.com/", kPerm, 700 },
1463 { "https://foo.com/", kTemp, 80 }, 1482 { "https://foo.com/", kTemp, 80 },
1464 { "http://bar.com/", kTemp, 9 }, 1483 { "http://bar.com/", kTemp, 9 },
1465 }; 1484 };
1466 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1)); 1485 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1),
1467 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2)); 1486 QuotaClient::kFileSystem);
1487 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2),
1488 QuotaClient::kDatabase);
1468 RegisterClient(client1); 1489 RegisterClient(client1);
1469 RegisterClient(client2); 1490 RegisterClient(client2);
1470 1491
1471 GetGlobalUsage(kTemp); 1492 GetGlobalUsage(kTemp);
1472 MessageLoop::current()->RunAllPending(); 1493 MessageLoop::current()->RunAllPending();
1473 const int64 predelete_global_tmp = usage(); 1494 const int64 predelete_global_tmp = usage();
1474 1495
1475 GetHostUsage("foo.com", kTemp); 1496 GetHostUsage("foo.com", kTemp);
1476 MessageLoop::current()->RunAllPending(); 1497 MessageLoop::current()->RunAllPending();
1477 const int64 predelete_foo_tmp = usage(); 1498 const int64 predelete_foo_tmp = usage();
1478 1499
1479 GetHostUsage("bar.com", kTemp); 1500 GetHostUsage("bar.com", kTemp);
1480 MessageLoop::current()->RunAllPending(); 1501 MessageLoop::current()->RunAllPending();
1481 const int64 predelete_bar_tmp = usage(); 1502 const int64 predelete_bar_tmp = usage();
1482 1503
1483 GetHostUsage("foo.com", kPerm); 1504 GetHostUsage("foo.com", kPerm);
1484 MessageLoop::current()->RunAllPending(); 1505 MessageLoop::current()->RunAllPending();
1485 const int64 predelete_foo_pers = usage(); 1506 const int64 predelete_foo_pers = usage();
1486 1507
1487 GetHostUsage("bar.com", kPerm); 1508 GetHostUsage("bar.com", kPerm);
1488 MessageLoop::current()->RunAllPending(); 1509 MessageLoop::current()->RunAllPending();
1489 const int64 predelete_bar_pers = usage(); 1510 const int64 predelete_bar_pers = usage();
1490 1511
1491 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData1); ++i) 1512 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData1); ++i)
1492 quota_manager()->NotifyStorageAccessed(QuotaClient::kMockStart, 1513 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown,
1493 GURL(kData1[i].origin), kData1[i].type); 1514 GURL(kData1[i].origin), kData1[i].type);
1494 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData2); ++i) 1515 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData2); ++i)
1495 quota_manager()->NotifyStorageAccessed(QuotaClient::kMockStart, 1516 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown,
1496 GURL(kData2[i].origin), kData2[i].type); 1517 GURL(kData2[i].origin), kData2[i].type);
1497 MessageLoop::current()->RunAllPending(); 1518 MessageLoop::current()->RunAllPending();
1498 1519
1499 reset_status_callback_count(); 1520 reset_status_callback_count();
1500 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); 1521 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients);
1501 DeleteOriginData(GURL("http://bar.com/"), kTemp, kAllClients); 1522 DeleteOriginData(GURL("http://bar.com/"), kTemp, kAllClients);
1502 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); 1523 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients);
1503 MessageLoop::current()->RunAllPending(); 1524 MessageLoop::current()->RunAllPending();
1504 1525
1505 EXPECT_EQ(3, status_callback_count()); 1526 EXPECT_EQ(3, status_callback_count());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1538 EXPECT_EQ(predelete_bar_pers, usage()); 1559 EXPECT_EQ(predelete_bar_pers, usage());
1539 } 1560 }
1540 1561
1541 TEST_F(QuotaManagerTest, GetCachedOrigins) { 1562 TEST_F(QuotaManagerTest, GetCachedOrigins) {
1542 static const MockOriginData kData[] = { 1563 static const MockOriginData kData[] = {
1543 { "http://a.com/", kTemp, 1 }, 1564 { "http://a.com/", kTemp, 1 },
1544 { "http://a.com:1/", kTemp, 20 }, 1565 { "http://a.com:1/", kTemp, 20 },
1545 { "http://b.com/", kPerm, 300 }, 1566 { "http://b.com/", kPerm, 300 },
1546 { "http://c.com/", kTemp, 4000 }, 1567 { "http://c.com/", kTemp, 4000 },
1547 }; 1568 };
1548 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); 1569 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
1570 QuotaClient::kFileSystem);
1549 RegisterClient(client); 1571 RegisterClient(client);
1550 1572
1551 // TODO(kinuko): Be careful when we add cache pruner. 1573 // TODO(kinuko): Be careful when we add cache pruner.
1552 1574
1553 std::set<GURL> origins; 1575 std::set<GURL> origins;
1554 GetCachedOrigins(kTemp, &origins); 1576 GetCachedOrigins(kTemp, &origins);
1555 EXPECT_TRUE(origins.empty()); 1577 EXPECT_TRUE(origins.empty());
1556 1578
1557 // No matter how we make queries the quota manager tries to cache all 1579 // No matter how we make queries the quota manager tries to cache all
1558 // the origins at startup. 1580 // the origins at startup.
(...skipping 22 matching lines...) Expand all
1581 } 1603 }
1582 1604
1583 TEST_F(QuotaManagerTest, NotifyAndLRUOrigin) { 1605 TEST_F(QuotaManagerTest, NotifyAndLRUOrigin) {
1584 static const MockOriginData kData[] = { 1606 static const MockOriginData kData[] = {
1585 { "http://a.com/", kTemp, 0 }, 1607 { "http://a.com/", kTemp, 0 },
1586 { "http://a.com:1/", kTemp, 0 }, 1608 { "http://a.com:1/", kTemp, 0 },
1587 { "https://a.com/", kTemp, 0 }, 1609 { "https://a.com/", kTemp, 0 },
1588 { "http://b.com/", kPerm, 0 }, // persistent 1610 { "http://b.com/", kPerm, 0 }, // persistent
1589 { "http://c.com/", kTemp, 0 }, 1611 { "http://c.com/", kTemp, 0 },
1590 }; 1612 };
1591 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); 1613 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
1614 QuotaClient::kFileSystem);
1592 RegisterClient(client); 1615 RegisterClient(client);
1593 1616
1594 GURL origin; 1617 GURL origin;
1595 GetLRUOrigin(kTemp); 1618 GetLRUOrigin(kTemp);
1596 MessageLoop::current()->RunAllPending(); 1619 MessageLoop::current()->RunAllPending();
1597 EXPECT_TRUE(lru_origin().is_empty()); 1620 EXPECT_TRUE(lru_origin().is_empty());
1598 1621
1599 NotifyStorageAccessed(client, GURL("http://a.com/"), kTemp); 1622 NotifyStorageAccessed(client, GURL("http://a.com/"), kTemp);
1600 GetLRUOrigin(kTemp); 1623 GetLRUOrigin(kTemp);
1601 MessageLoop::current()->RunAllPending(); 1624 MessageLoop::current()->RunAllPending();
(...skipping 18 matching lines...) Expand all
1620 } 1643 }
1621 1644
1622 TEST_F(QuotaManagerTest, GetLRUOriginWithOriginInUse) { 1645 TEST_F(QuotaManagerTest, GetLRUOriginWithOriginInUse) {
1623 static const MockOriginData kData[] = { 1646 static const MockOriginData kData[] = {
1624 { "http://a.com/", kTemp, 0 }, 1647 { "http://a.com/", kTemp, 0 },
1625 { "http://a.com:1/", kTemp, 0 }, 1648 { "http://a.com:1/", kTemp, 0 },
1626 { "https://a.com/", kTemp, 0 }, 1649 { "https://a.com/", kTemp, 0 },
1627 { "http://b.com/", kPerm, 0 }, // persistent 1650 { "http://b.com/", kPerm, 0 }, // persistent
1628 { "http://c.com/", kTemp, 0 }, 1651 { "http://c.com/", kTemp, 0 },
1629 }; 1652 };
1630 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); 1653 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
1654 QuotaClient::kFileSystem);
1631 RegisterClient(client); 1655 RegisterClient(client);
1632 1656
1633 GURL origin; 1657 GURL origin;
1634 GetLRUOrigin(kTemp); 1658 GetLRUOrigin(kTemp);
1635 MessageLoop::current()->RunAllPending(); 1659 MessageLoop::current()->RunAllPending();
1636 EXPECT_TRUE(lru_origin().is_empty()); 1660 EXPECT_TRUE(lru_origin().is_empty());
1637 1661
1638 NotifyStorageAccessed(client, GURL("http://a.com/"), kTemp); 1662 NotifyStorageAccessed(client, GURL("http://a.com/"), kTemp);
1639 NotifyStorageAccessed(client, GURL("http://b.com/"), kPerm); 1663 NotifyStorageAccessed(client, GURL("http://b.com/"), kPerm);
1640 NotifyStorageAccessed(client, GURL("https://a.com/"), kTemp); 1664 NotifyStorageAccessed(client, GURL("https://a.com/"), kTemp);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1674 } 1698 }
1675 1699
1676 TEST_F(QuotaManagerTest, GetOriginsModifiedSince) { 1700 TEST_F(QuotaManagerTest, GetOriginsModifiedSince) {
1677 static const MockOriginData kData[] = { 1701 static const MockOriginData kData[] = {
1678 { "http://a.com/", kTemp, 0 }, 1702 { "http://a.com/", kTemp, 0 },
1679 { "http://a.com:1/", kTemp, 0 }, 1703 { "http://a.com:1/", kTemp, 0 },
1680 { "https://a.com/", kTemp, 0 }, 1704 { "https://a.com/", kTemp, 0 },
1681 { "http://b.com/", kPerm, 0 }, // persistent 1705 { "http://b.com/", kPerm, 0 }, // persistent
1682 { "http://c.com/", kTemp, 0 }, 1706 { "http://c.com/", kTemp, 0 },
1683 }; 1707 };
1684 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); 1708 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData),
1709 QuotaClient::kFileSystem);
1685 RegisterClient(client); 1710 RegisterClient(client);
1686 1711
1687 GetOriginsModifiedSince(kTemp, base::Time()); 1712 GetOriginsModifiedSince(kTemp, base::Time());
1688 MessageLoop::current()->RunAllPending(); 1713 MessageLoop::current()->RunAllPending();
1689 EXPECT_TRUE(modified_origins().empty()); 1714 EXPECT_TRUE(modified_origins().empty());
1690 EXPECT_EQ(modified_origins_type(), kTemp); 1715 EXPECT_EQ(modified_origins_type(), kTemp);
1691 1716
1692 base::Time time1 = client->IncrementMockTime(); 1717 base::Time time1 = client->IncrementMockTime();
1693 client->ModifyOriginAndNotify(GURL("http://a.com/"), kTemp, 10); 1718 client->ModifyOriginAndNotify(GURL("http://a.com/"), kTemp, 10);
1694 client->ModifyOriginAndNotify(GURL("http://a.com:1/"), kTemp, 10); 1719 client->ModifyOriginAndNotify(GURL("http://a.com:1/"), kTemp, 10);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1750 << "quota = " << itr->quota); 1775 << "quota = " << itr->quota);
1751 EXPECT_EQ(1u, entries.erase(*itr)); 1776 EXPECT_EQ(1u, entries.erase(*itr));
1752 } 1777 }
1753 EXPECT_TRUE(entries.empty()); 1778 EXPECT_TRUE(entries.empty());
1754 } 1779 }
1755 1780
1756 TEST_F(QuotaManagerTest, DumpOriginInfoTable) { 1781 TEST_F(QuotaManagerTest, DumpOriginInfoTable) {
1757 using std::make_pair; 1782 using std::make_pair;
1758 1783
1759 quota_manager()->NotifyStorageAccessed( 1784 quota_manager()->NotifyStorageAccessed(
1760 QuotaClient::kMockStart, 1785 QuotaClient::kUnknown,
1761 GURL("http://example.com/"), 1786 GURL("http://example.com/"),
1762 kTemp); 1787 kTemp);
1763 quota_manager()->NotifyStorageAccessed( 1788 quota_manager()->NotifyStorageAccessed(
1764 QuotaClient::kMockStart, 1789 QuotaClient::kUnknown,
1765 GURL("http://example.com/"), 1790 GURL("http://example.com/"),
1766 kPerm); 1791 kPerm);
1767 quota_manager()->NotifyStorageAccessed( 1792 quota_manager()->NotifyStorageAccessed(
1768 QuotaClient::kMockStart, 1793 QuotaClient::kUnknown,
1769 GURL("http://example.com/"), 1794 GURL("http://example.com/"),
1770 kPerm); 1795 kPerm);
1771 MessageLoop::current()->RunAllPending(); 1796 MessageLoop::current()->RunAllPending();
1772 1797
1773 DumpOriginInfoTable(); 1798 DumpOriginInfoTable();
1774 MessageLoop::current()->RunAllPending(); 1799 MessageLoop::current()->RunAllPending();
1775 1800
1776 typedef std::pair<GURL, StorageType> TypedOrigin; 1801 typedef std::pair<GURL, StorageType> TypedOrigin;
1777 typedef std::pair<TypedOrigin, int> Entry; 1802 typedef std::pair<TypedOrigin, int> Entry;
1778 const Entry kEntries[] = { 1803 const Entry kEntries[] = {
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
2002 EXPECT_EQ(predelete_foo_tmp - 2 - 1, usage()); 2027 EXPECT_EQ(predelete_foo_tmp - 2 - 1, usage());
2003 2028
2004 DeleteHostData("foo.com", kTemp, 2029 DeleteHostData("foo.com", kTemp,
2005 QuotaClient::kDatabase | QuotaClient::kIndexedDatabase); 2030 QuotaClient::kDatabase | QuotaClient::kIndexedDatabase);
2006 MessageLoop::current()->RunAllPending(); 2031 MessageLoop::current()->RunAllPending();
2007 GetHostUsage("foo.com", kTemp); 2032 GetHostUsage("foo.com", kTemp);
2008 MessageLoop::current()->RunAllPending(); 2033 MessageLoop::current()->RunAllPending();
2009 EXPECT_EQ(predelete_foo_tmp - 8 - 4 - 2 - 1, usage()); 2034 EXPECT_EQ(predelete_foo_tmp - 8 - 4 - 2 - 1, usage());
2010 } 2035 }
2011 } // namespace quota 2036 } // namespace quota
OLDNEW
« no previous file with comments | « webkit/quota/quota_client.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698