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

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

Issue 7029007: Implement EvictOriginData in QuotaManager. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Reflected the comments. Created 9 years, 7 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
« webkit/quota/quota_manager.cc ('K') | « webkit/quota/quota_manager.cc ('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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <vector> 5 #include <vector>
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/memory/scoped_callback_factory.h" 8 #include "base/memory/scoped_callback_factory.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/memory/scoped_temp_dir.h" 10 #include "base/memory/scoped_temp_dir.h"
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 callback_factory_.NewCallback( 125 callback_factory_.NewCallback(
126 &QuotaManagerTest::DidGetHostUsage)); 126 &QuotaManagerTest::DidGetHostUsage));
127 } 127 }
128 128
129 void RunAdditionalUsageAndQuotaTask(const GURL& origin, StorageType type) { 129 void RunAdditionalUsageAndQuotaTask(const GURL& origin, StorageType type) {
130 quota_manager_->GetUsageAndQuota(origin, type, 130 quota_manager_->GetUsageAndQuota(origin, type,
131 callback_factory_.NewCallback( 131 callback_factory_.NewCallback(
132 &QuotaManagerTest::DidGetUsageAndQuotaAdditional)); 132 &QuotaManagerTest::DidGetUsageAndQuotaAdditional));
133 } 133 }
134 134
135 void DeleteOriginData(QuotaClient* client, 135 void DeleteClientOriginData(QuotaClient* client,
136 const GURL& origin, 136 const GURL& origin,
137 StorageType type) { 137 StorageType type) {
138 quota_status_ = kQuotaStatusUnknown; 138 quota_status_ = kQuotaStatusUnknown;
139 client->DeleteOriginData(origin, type, 139 client->DeleteOriginData(origin, type,
140 callback_factory_.NewCallback( 140 callback_factory_.NewCallback(
141 &QuotaManagerTest::DidDelete)); 141 &QuotaManagerTest::DidDeleteClientOriginData));
142 }
143
144 void EvictOriginData(const GURL& origin,
145 StorageType type) {
146 quota_status_ = kQuotaStatusUnknown;
147 quota_manager_->EvictOriginData(origin, type,
148 callback_factory_.NewCallback(
149 &QuotaManagerTest::DidEvictOriginData));
142 } 150 }
143 151
144 void GetAvailableSpace() { 152 void GetAvailableSpace() {
145 quota_status_ = kQuotaStatusUnknown; 153 quota_status_ = kQuotaStatusUnknown;
146 quota_ = -1; 154 quota_ = -1;
147 quota_manager_->GetAvailableSpace( 155 quota_manager_->GetAvailableSpace(
148 callback_factory_.NewCallback( 156 callback_factory_.NewCallback(
149 &QuotaManagerTest::DidGetQuota)); 157 &QuotaManagerTest::DidGetQuota));
150 } 158 }
151 159
(...skipping 16 matching lines...) Expand all
168 } 176 }
169 177
170 void DidGetGlobalUsage(int64 usage) { 178 void DidGetGlobalUsage(int64 usage) {
171 usage_ = usage; 179 usage_ = usage;
172 } 180 }
173 181
174 void DidGetHostUsage(const std::string&, int64 usage) { 182 void DidGetHostUsage(const std::string&, int64 usage) {
175 usage_ = usage; 183 usage_ = usage;
176 } 184 }
177 185
178 void DidDelete(QuotaStatusCode status) { 186 void DidDeleteClientOriginData(QuotaStatusCode status) {
179 quota_status_ = status; 187 quota_status_ = status;
180 } 188 }
181 189
190 void DidEvictOriginData(QuotaStatusCode status) {
191 quota_status_ = status;
192 }
193
182 void set_additional_callback_count(int c) { additional_callback_count_ = c; } 194 void set_additional_callback_count(int c) { additional_callback_count_ = c; }
183 int additional_callback_count() const { return additional_callback_count_; } 195 int additional_callback_count() const { return additional_callback_count_; }
184 void DidGetUsageAndQuotaAdditional( 196 void DidGetUsageAndQuotaAdditional(
185 QuotaStatusCode status, int64 usage, int64 quota) { 197 QuotaStatusCode status, int64 usage, int64 quota) {
186 ++additional_callback_count_; 198 ++additional_callback_count_;
187 } 199 }
188 200
189 QuotaManager* quota_manager() const { return quota_manager_.get(); } 201 QuotaManager* quota_manager() const { return quota_manager_.get(); }
190 void set_quota_manager(QuotaManager* quota_manager) { 202 void set_quota_manager(QuotaManager* quota_manager) {
191 quota_manager_ = quota_manager; 203 quota_manager_ = quota_manager;
(...skipping 512 matching lines...) Expand 10 before | Expand all | Expand 10 after
704 int64 predelete_global_tmp = usage(); 716 int64 predelete_global_tmp = usage();
705 717
706 GetHostUsage("foo.com", kStorageTypeTemporary); 718 GetHostUsage("foo.com", kStorageTypeTemporary);
707 MessageLoop::current()->RunAllPending(); 719 MessageLoop::current()->RunAllPending();
708 int64 predelete_host_tmp = usage(); 720 int64 predelete_host_tmp = usage();
709 721
710 GetHostUsage("foo.com", kStorageTypePersistent); 722 GetHostUsage("foo.com", kStorageTypePersistent);
711 MessageLoop::current()->RunAllPending(); 723 MessageLoop::current()->RunAllPending();
712 int64 predelete_host_pers = usage(); 724 int64 predelete_host_pers = usage();
713 725
714 DeleteOriginData(client, GURL("http://foo.com/"), kStorageTypeTemporary); 726 DeleteClientOriginData(client, GURL("http://foo.com/"),
727 kStorageTypeTemporary);
715 MessageLoop::current()->RunAllPending(); 728 MessageLoop::current()->RunAllPending();
716 EXPECT_EQ(kQuotaStatusOk, status()); 729 EXPECT_EQ(kQuotaStatusOk, status());
717 730
718 GetGlobalUsage(kStorageTypeTemporary); 731 GetGlobalUsage(kStorageTypeTemporary);
719 MessageLoop::current()->RunAllPending(); 732 MessageLoop::current()->RunAllPending();
720 EXPECT_EQ(predelete_global_tmp - 1, usage()); 733 EXPECT_EQ(predelete_global_tmp - 1, usage());
721 734
722 GetHostUsage("foo.com", kStorageTypeTemporary); 735 GetHostUsage("foo.com", kStorageTypeTemporary);
723 MessageLoop::current()->RunAllPending(); 736 MessageLoop::current()->RunAllPending();
724 EXPECT_EQ(predelete_host_tmp - 1, usage()); 737 EXPECT_EQ(predelete_host_tmp - 1, usage());
725 738
726 GetHostUsage("foo.com", kStorageTypePersistent); 739 GetHostUsage("foo.com", kStorageTypePersistent);
727 MessageLoop::current()->RunAllPending(); 740 MessageLoop::current()->RunAllPending();
728 EXPECT_EQ(predelete_host_pers, usage()); 741 EXPECT_EQ(predelete_host_pers, usage());
729 } 742 }
730 743
731 TEST_F(QuotaManagerTest, GetAvailableSpaceTest) { 744 TEST_F(QuotaManagerTest, GetAvailableSpaceTest) {
732 GetAvailableSpace(); 745 GetAvailableSpace();
733 MessageLoop::current()->RunAllPending(); 746 MessageLoop::current()->RunAllPending();
734 EXPECT_EQ(kQuotaStatusOk, status()); 747 EXPECT_EQ(kQuotaStatusOk, status());
735 EXPECT_LE(0, quota()); 748 EXPECT_LE(0, quota());
736 int64 direct_called = base::SysInfo::AmountOfFreeDiskSpace(profile_path()); 749 int64 direct_called = base::SysInfo::AmountOfFreeDiskSpace(profile_path());
737 EXPECT_EQ(direct_called, quota()); 750 EXPECT_EQ(direct_called, quota());
738 } 751 }
752
753 TEST_F(QuotaManagerTest, EvictOriginData) {
754 static const MockOriginData kData1[] = {
755 { "http://foo.com/", kStorageTypeTemporary, 1 },
756 { "http://foo.com:1/", kStorageTypeTemporary, 20 },
757 { "http://foo.com/", kStorageTypePersistent, 300 },
758 { "http://bar.com/", kStorageTypeTemporary, 4000 },
759 };
760 static const MockOriginData kData2[] = {
761 { "http://foo.com/", kStorageTypeTemporary, 50000 },
762 { "http://foo.com:1/", kStorageTypeTemporary, 6000 },
763 { "http://foo.com/", kStorageTypePersistent, 700 },
764 { "https://foo.com/", kStorageTypeTemporary, 80 },
765 { "http://bar.com/", kStorageTypeTemporary, 9 },
766 };
767 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1));
768 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2));
769 RegisterClient(client1);
770 RegisterClient(client2);
771
772 GetGlobalUsage(kStorageTypeTemporary);
773 MessageLoop::current()->RunAllPending();
774 int64 predelete_global_tmp = usage();
775
776 GetHostUsage("foo.com", kStorageTypeTemporary);
777 MessageLoop::current()->RunAllPending();
778 int64 predelete_host_tmp = usage();
779
780 GetHostUsage("foo.com", kStorageTypePersistent);
781 MessageLoop::current()->RunAllPending();
782 int64 predelete_host_pers = usage();
783
784 EvictOriginData(GURL("http://foo.com/"), kStorageTypeTemporary);
785 MessageLoop::current()->RunAllPending();
786
787 GetGlobalUsage(kStorageTypeTemporary);
788 MessageLoop::current()->RunAllPending();
789 EXPECT_EQ(predelete_global_tmp - (1 + 50000), usage());
790
791 GetHostUsage("foo.com", kStorageTypeTemporary);
792 MessageLoop::current()->RunAllPending();
793 EXPECT_EQ(predelete_host_tmp - (1 + 50000), usage());
794
795 GetHostUsage("foo.com", kStorageTypePersistent);
796 MessageLoop::current()->RunAllPending();
797 EXPECT_EQ(predelete_host_pers, usage());
798 }
799
739 } // namespace quota 800 } // namespace quota
OLDNEW
« webkit/quota/quota_manager.cc ('K') | « webkit/quota/quota_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698