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

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

Issue 7839029: QuotaManager::DeleteOriginData now allows deletion of specific QuotaClients (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Kinuko's feedback (modulo kMockStart) 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/mock_quota_manager.cc ('k') | webkit/quota/mock_storage_client.h » ('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) 2011 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 5
6 #include <set> 6 #include <set>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "base/message_loop.h" 11 #include "base/message_loop.h"
12 #include "base/message_loop_proxy.h" 12 #include "base/message_loop_proxy.h"
13 #include "base/scoped_temp_dir.h" 13 #include "base/scoped_temp_dir.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "webkit/quota/mock_quota_manager.h" 15 #include "webkit/quota/mock_quota_manager.h"
16 #include "webkit/quota/mock_special_storage_policy.h" 16 #include "webkit/quota/mock_special_storage_policy.h"
17 #include "webkit/quota/mock_storage_client.h" 17 #include "webkit/quota/mock_storage_client.h"
18 18
19 namespace quota { 19 namespace quota {
20 20
21 const char kTestOrigin1[] = "http://host1:1/"; 21 const char kTestOrigin1[] = "http://host1:1/";
22 const char kTestOrigin2[] = "http://host2:1/"; 22 const char kTestOrigin2[] = "http://host2:1/";
23 const char kTestOrigin3[] = "http://host3:1/"; 23 const char kTestOrigin3[] = "http://host3:1/";
24 24
25 const GURL kOrigin1(kTestOrigin1); 25 const GURL kOrigin1(kTestOrigin1);
26 const GURL kOrigin2(kTestOrigin2); 26 const GURL kOrigin2(kTestOrigin2);
27 const GURL kOrigin3(kTestOrigin3); 27 const GURL kOrigin3(kTestOrigin3);
28 28
29 const StorageType kTemporary = kStorageTypeTemporary;
30 const StorageType kPersistent = kStorageTypePersistent;
31
32 const QuotaClient::ID kClientFile = QuotaClient::kFileSystem;
33 const QuotaClient::ID kClientDB = QuotaClient::kIndexedDatabase;
34
29 class MockQuotaManagerTest : public testing::Test { 35 class MockQuotaManagerTest : public testing::Test {
30 public: 36 public:
31 MockQuotaManagerTest() 37 MockQuotaManagerTest()
32 : weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), 38 : weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
33 deletion_callback_count_(0) { 39 deletion_callback_count_(0) {
34 } 40 }
35 41
36 void SetUp() { 42 void SetUp() {
37 ASSERT_TRUE(data_dir_.CreateUniqueTempDir()); 43 ASSERT_TRUE(data_dir_.CreateUniqueTempDir());
38 policy_ = new MockSpecialStoragePolicy; 44 policy_ = new MockSpecialStoragePolicy;
(...skipping 16 matching lines...) Expand all
55 type, since, 61 type, since,
56 base::Bind(&MockQuotaManagerTest::GotModifiedOrigins, 62 base::Bind(&MockQuotaManagerTest::GotModifiedOrigins,
57 weak_factory_.GetWeakPtr())); 63 weak_factory_.GetWeakPtr()));
58 } 64 }
59 65
60 void GotModifiedOrigins(const std::set<GURL>& origins, StorageType type) { 66 void GotModifiedOrigins(const std::set<GURL>& origins, StorageType type) {
61 origins_ = origins; 67 origins_ = origins;
62 type_ = type; 68 type_ = type;
63 } 69 }
64 70
65 void DeleteOriginData(const GURL& origin, StorageType type) { 71 void DeleteOriginData(const GURL& origin, StorageType type,
72 int quota_client_mask) {
66 manager_->DeleteOriginData( 73 manager_->DeleteOriginData(
67 origin, type, 74 origin, type, quota_client_mask,
68 base::Bind(&MockQuotaManagerTest::DeletedOriginData, 75 base::Bind(&MockQuotaManagerTest::DeletedOriginData,
69 weak_factory_.GetWeakPtr())); 76 weak_factory_.GetWeakPtr()));
70 } 77 }
71 78
72 void DeletedOriginData(QuotaStatusCode status) { 79 void DeletedOriginData(QuotaStatusCode status) {
73 ++deletion_callback_count_; 80 ++deletion_callback_count_;
74 EXPECT_EQ(quota::kQuotaStatusOk, status); 81 EXPECT_EQ(quota::kQuotaStatusOk, status);
75 } 82 }
76 83
77 int deletion_callback_count() const { 84 int deletion_callback_count() const {
(...skipping 20 matching lines...) Expand all
98 105
99 int deletion_callback_count_; 106 int deletion_callback_count_;
100 107
101 std::set<GURL> origins_; 108 std::set<GURL> origins_;
102 StorageType type_; 109 StorageType type_;
103 110
104 DISALLOW_COPY_AND_ASSIGN(MockQuotaManagerTest); 111 DISALLOW_COPY_AND_ASSIGN(MockQuotaManagerTest);
105 }; 112 };
106 113
107 TEST_F(MockQuotaManagerTest, BasicOriginManipulation) { 114 TEST_F(MockQuotaManagerTest, BasicOriginManipulation) {
108 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 115 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
109 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 116 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientDB));
110 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); 117 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientFile));
111 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); 118 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientDB));
119 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
120 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
121 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientFile));
122 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientDB));
112 123
113 manager()->AddOrigin(kOrigin1, kStorageTypeTemporary, base::Time::Now()); 124 manager()->AddOrigin(kOrigin1, kTemporary, kClientFile, base::Time::Now());
114 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 125 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
115 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 126 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientDB));
116 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); 127 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientFile));
117 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); 128 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientDB));
129 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
130 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
131 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientFile));
132 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientDB));
118 133
119 manager()->AddOrigin(kOrigin1, kStorageTypePersistent, base::Time::Now()); 134 manager()->AddOrigin(kOrigin1, kPersistent, kClientFile, base::Time::Now());
120 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 135 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
121 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 136 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientDB));
122 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); 137 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kPersistent, kClientFile));
123 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); 138 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientDB));
139 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
140 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
141 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientFile));
142 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientDB));
124 143
125 manager()->AddOrigin(kOrigin2, kStorageTypeTemporary, base::Time::Now()); 144 manager()->AddOrigin(kOrigin2, kTemporary, kClientFile | kClientDB,
126 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 145 base::Time::Now());
127 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 146 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
128 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); 147 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientDB));
129 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); 148 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kPersistent, kClientFile));
149 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientDB));
150 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
151 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
152 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientFile));
153 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientDB));
130 } 154 }
131 155
132 TEST_F(MockQuotaManagerTest, OriginDeletion) { 156 TEST_F(MockQuotaManagerTest, OriginDeletion) {
133 manager()->AddOrigin(kOrigin1, kStorageTypeTemporary, base::Time::Now()); 157 manager()->AddOrigin(kOrigin1, kTemporary, kClientFile, base::Time::Now());
134 manager()->AddOrigin(kOrigin2, kStorageTypeTemporary, base::Time::Now()); 158 manager()->AddOrigin(kOrigin2, kTemporary, kClientFile | kClientDB,
159 base::Time::Now());
160 manager()->AddOrigin(kOrigin3, kTemporary, kClientFile | kClientDB,
161 base::Time::Now());
135 162
136 DeleteOriginData(kOrigin2, kStorageTypeTemporary); 163 DeleteOriginData(kOrigin2, kTemporary, kClientFile);
137 MessageLoop::current()->RunAllPending(); 164 MessageLoop::current()->RunAllPending();
138 165
139 EXPECT_EQ(1, deletion_callback_count()); 166 EXPECT_EQ(1, deletion_callback_count());
140 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 167 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
141 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 168 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
169 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
170 EXPECT_TRUE(manager()->OriginHasData(kOrigin3, kTemporary, kClientFile));
171 EXPECT_TRUE(manager()->OriginHasData(kOrigin3, kTemporary, kClientDB));
172
173 DeleteOriginData(kOrigin3, kTemporary, kClientFile | kClientDB);
174 MessageLoop::current()->RunAllPending();
175
176 EXPECT_EQ(2, deletion_callback_count());
177 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
178 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
179 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
180 EXPECT_FALSE(manager()->OriginHasData(kOrigin3, kTemporary, kClientFile));
181 EXPECT_FALSE(manager()->OriginHasData(kOrigin3, kTemporary, kClientDB));
142 } 182 }
143 183
144 TEST_F(MockQuotaManagerTest, ModifiedOrigins) { 184 TEST_F(MockQuotaManagerTest, ModifiedOrigins) {
145 base::Time now = base::Time::Now(); 185 base::Time now = base::Time::Now();
146 base::Time then = base::Time(); 186 base::Time then = base::Time();
147 base::TimeDelta an_hour = base::TimeDelta::FromMilliseconds(3600000); 187 base::TimeDelta an_hour = base::TimeDelta::FromMilliseconds(3600000);
148 base::TimeDelta a_minute = base::TimeDelta::FromMilliseconds(60000); 188 base::TimeDelta a_minute = base::TimeDelta::FromMilliseconds(60000);
149 189
150 GetModifiedOrigins(kStorageTypeTemporary, then); 190 GetModifiedOrigins(kTemporary, then);
151 MessageLoop::current()->RunAllPending(); 191 MessageLoop::current()->RunAllPending();
152 EXPECT_TRUE(origins().empty()); 192 EXPECT_TRUE(origins().empty());
153 193
154 manager()->AddOrigin(kOrigin1, kStorageTypeTemporary, now - an_hour); 194 manager()->AddOrigin(kOrigin1, kTemporary, kClientFile, now - an_hour);
155 195
156 GetModifiedOrigins(kStorageTypeTemporary, then); 196 GetModifiedOrigins(kTemporary, then);
157 MessageLoop::current()->RunAllPending(); 197 MessageLoop::current()->RunAllPending();
158 198
159 EXPECT_EQ(kStorageTypeTemporary, type()); 199 EXPECT_EQ(kTemporary, type());
160 EXPECT_EQ(1UL, origins().size()); 200 EXPECT_EQ(1UL, origins().size());
161 EXPECT_EQ(1UL, origins().count(kOrigin1)); 201 EXPECT_EQ(1UL, origins().count(kOrigin1));
162 EXPECT_EQ(0UL, origins().count(kOrigin2)); 202 EXPECT_EQ(0UL, origins().count(kOrigin2));
163 203
164 manager()->AddOrigin(kOrigin2, kStorageTypeTemporary, now); 204 manager()->AddOrigin(kOrigin2, kTemporary, kClientFile, now);
165 205
166 GetModifiedOrigins(kStorageTypeTemporary, then); 206 GetModifiedOrigins(kTemporary, then);
167 MessageLoop::current()->RunAllPending(); 207 MessageLoop::current()->RunAllPending();
168 208
169 EXPECT_EQ(kStorageTypeTemporary, type()); 209 EXPECT_EQ(kTemporary, type());
170 EXPECT_EQ(2UL, origins().size()); 210 EXPECT_EQ(2UL, origins().size());
171 EXPECT_EQ(1UL, origins().count(kOrigin1)); 211 EXPECT_EQ(1UL, origins().count(kOrigin1));
172 EXPECT_EQ(1UL, origins().count(kOrigin2)); 212 EXPECT_EQ(1UL, origins().count(kOrigin2));
173 213
174 GetModifiedOrigins(kStorageTypeTemporary, now - a_minute); 214 GetModifiedOrigins(kTemporary, now - a_minute);
175 MessageLoop::current()->RunAllPending(); 215 MessageLoop::current()->RunAllPending();
176 216
177 EXPECT_EQ(kStorageTypeTemporary, type()); 217 EXPECT_EQ(kTemporary, type());
178 EXPECT_EQ(1UL, origins().size()); 218 EXPECT_EQ(1UL, origins().size());
179 EXPECT_EQ(0UL, origins().count(kOrigin1)); 219 EXPECT_EQ(0UL, origins().count(kOrigin1));
180 EXPECT_EQ(1UL, origins().count(kOrigin2)); 220 EXPECT_EQ(1UL, origins().count(kOrigin2));
181 } 221 }
182 } // Namespace quota 222 } // Namespace quota
OLDNEW
« no previous file with comments | « webkit/quota/mock_quota_manager.cc ('k') | webkit/quota/mock_storage_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698