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

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

Issue 16010007: Move webkit/quota files to webkit/browser/quota or webkit/common/quota (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 6 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_special_storage_policy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5
6 #include <set>
7
8 #include "base/bind.h"
9 #include "base/file_util.h"
10 #include "base/files/scoped_temp_dir.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "base/message_loop.h"
13 #include "base/message_loop_proxy.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "webkit/quota/mock_quota_manager.h"
16 #include "webkit/quota/mock_special_storage_policy.h"
17 #include "webkit/quota/mock_storage_client.h"
18
19 namespace quota {
20
21 const char kTestOrigin1[] = "http://host1:1/";
22 const char kTestOrigin2[] = "http://host2:1/";
23 const char kTestOrigin3[] = "http://host3:1/";
24
25 const GURL kOrigin1(kTestOrigin1);
26 const GURL kOrigin2(kTestOrigin2);
27 const GURL kOrigin3(kTestOrigin3);
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
35 class MockQuotaManagerTest : public testing::Test {
36 public:
37 MockQuotaManagerTest()
38 : weak_factory_(this),
39 deletion_callback_count_(0) {
40 }
41
42 virtual void SetUp() {
43 ASSERT_TRUE(data_dir_.CreateUniqueTempDir());
44 policy_ = new MockSpecialStoragePolicy;
45 manager_ = new MockQuotaManager(
46 false /* is_incognito */,
47 data_dir_.path(),
48 base::MessageLoopProxy::current(),
49 base::MessageLoopProxy::current(),
50 policy_);
51 }
52
53 virtual void TearDown() {
54 // Make sure the quota manager cleans up correctly.
55 manager_ = NULL;
56 base::MessageLoop::current()->RunUntilIdle();
57 }
58
59 void GetModifiedOrigins(StorageType type, base::Time since) {
60 manager_->GetOriginsModifiedSince(
61 type, since,
62 base::Bind(&MockQuotaManagerTest::GotModifiedOrigins,
63 weak_factory_.GetWeakPtr()));
64 }
65
66 void GotModifiedOrigins(const std::set<GURL>& origins, StorageType type) {
67 origins_ = origins;
68 type_ = type;
69 }
70
71 void DeleteOriginData(const GURL& origin, StorageType type,
72 int quota_client_mask) {
73 manager_->DeleteOriginData(
74 origin, type, quota_client_mask,
75 base::Bind(&MockQuotaManagerTest::DeletedOriginData,
76 weak_factory_.GetWeakPtr()));
77 }
78
79 void DeletedOriginData(QuotaStatusCode status) {
80 ++deletion_callback_count_;
81 EXPECT_EQ(quota::kQuotaStatusOk, status);
82 }
83
84 int deletion_callback_count() const {
85 return deletion_callback_count_;
86 }
87
88 MockQuotaManager* manager() const {
89 return manager_.get();
90 }
91
92 const std::set<GURL>& origins() const {
93 return origins_;
94 }
95
96 const StorageType& type() const {
97 return type_;
98 }
99
100 private:
101 base::MessageLoop message_loop_;
102 base::ScopedTempDir data_dir_;
103 base::WeakPtrFactory<MockQuotaManagerTest> weak_factory_;
104 scoped_refptr<MockQuotaManager> manager_;
105 scoped_refptr<MockSpecialStoragePolicy> policy_;
106
107 int deletion_callback_count_;
108
109 std::set<GURL> origins_;
110 StorageType type_;
111
112 DISALLOW_COPY_AND_ASSIGN(MockQuotaManagerTest);
113 };
114
115 TEST_F(MockQuotaManagerTest, BasicOriginManipulation) {
116 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
117 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientDB));
118 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientFile));
119 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientDB));
120 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
121 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
122 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientFile));
123 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientDB));
124
125 manager()->AddOrigin(kOrigin1, kTemporary, kClientFile, base::Time::Now());
126 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
127 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientDB));
128 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientFile));
129 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientDB));
130 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
131 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
132 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientFile));
133 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientDB));
134
135 manager()->AddOrigin(kOrigin1, kPersistent, kClientFile, base::Time::Now());
136 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
137 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientDB));
138 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kPersistent, kClientFile));
139 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientDB));
140 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
141 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
142 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientFile));
143 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientDB));
144
145 manager()->AddOrigin(kOrigin2, kTemporary, kClientFile | kClientDB,
146 base::Time::Now());
147 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
148 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientDB));
149 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kPersistent, kClientFile));
150 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientDB));
151 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
152 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
153 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientFile));
154 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientDB));
155 }
156
157 TEST_F(MockQuotaManagerTest, OriginDeletion) {
158 manager()->AddOrigin(kOrigin1, kTemporary, kClientFile, base::Time::Now());
159 manager()->AddOrigin(kOrigin2, kTemporary, kClientFile | kClientDB,
160 base::Time::Now());
161 manager()->AddOrigin(kOrigin3, kTemporary, kClientFile | kClientDB,
162 base::Time::Now());
163
164 DeleteOriginData(kOrigin2, kTemporary, kClientFile);
165 base::MessageLoop::current()->RunUntilIdle();
166
167 EXPECT_EQ(1, deletion_callback_count());
168 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
169 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
170 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
171 EXPECT_TRUE(manager()->OriginHasData(kOrigin3, kTemporary, kClientFile));
172 EXPECT_TRUE(manager()->OriginHasData(kOrigin3, kTemporary, kClientDB));
173
174 DeleteOriginData(kOrigin3, kTemporary, kClientFile | kClientDB);
175 base::MessageLoop::current()->RunUntilIdle();
176
177 EXPECT_EQ(2, deletion_callback_count());
178 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
179 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
180 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
181 EXPECT_FALSE(manager()->OriginHasData(kOrigin3, kTemporary, kClientFile));
182 EXPECT_FALSE(manager()->OriginHasData(kOrigin3, kTemporary, kClientDB));
183 }
184
185 TEST_F(MockQuotaManagerTest, ModifiedOrigins) {
186 base::Time now = base::Time::Now();
187 base::Time then = base::Time();
188 base::TimeDelta an_hour = base::TimeDelta::FromMilliseconds(3600000);
189 base::TimeDelta a_minute = base::TimeDelta::FromMilliseconds(60000);
190
191 GetModifiedOrigins(kTemporary, then);
192 base::MessageLoop::current()->RunUntilIdle();
193 EXPECT_TRUE(origins().empty());
194
195 manager()->AddOrigin(kOrigin1, kTemporary, kClientFile, now - an_hour);
196
197 GetModifiedOrigins(kTemporary, then);
198 base::MessageLoop::current()->RunUntilIdle();
199
200 EXPECT_EQ(kTemporary, type());
201 EXPECT_EQ(1UL, origins().size());
202 EXPECT_EQ(1UL, origins().count(kOrigin1));
203 EXPECT_EQ(0UL, origins().count(kOrigin2));
204
205 manager()->AddOrigin(kOrigin2, kTemporary, kClientFile, now);
206
207 GetModifiedOrigins(kTemporary, then);
208 base::MessageLoop::current()->RunUntilIdle();
209
210 EXPECT_EQ(kTemporary, type());
211 EXPECT_EQ(2UL, origins().size());
212 EXPECT_EQ(1UL, origins().count(kOrigin1));
213 EXPECT_EQ(1UL, origins().count(kOrigin2));
214
215 GetModifiedOrigins(kTemporary, now - a_minute);
216 base::MessageLoop::current()->RunUntilIdle();
217
218 EXPECT_EQ(kTemporary, type());
219 EXPECT_EQ(1UL, origins().size());
220 EXPECT_EQ(0UL, origins().count(kOrigin1));
221 EXPECT_EQ(1UL, origins().count(kOrigin2));
222 }
223 } // Namespace quota
OLDNEW
« no previous file with comments | « webkit/quota/mock_quota_manager.cc ('k') | webkit/quota/mock_special_storage_policy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698