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

Side by Side Diff: webkit/database/database_quota_client_unittest.cc

Issue 8070001: Use base::Callback in Quota related code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: choke lint Created 9 years, 2 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
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 <map> 5 #include <map>
6 6
7 #include "base/bind.h"
7 #include "base/file_path.h" 8 #include "base/file_path.h"
8 #include "base/memory/scoped_callback_factory.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"
11 #include "base/utf_string_conversions.h" 11 #include "base/utf_string_conversions.h"
12 #include "net/base/net_errors.h" 12 #include "net/base/net_errors.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 #include "webkit/database/database_quota_client.h" 14 #include "webkit/database/database_quota_client.h"
15 #include "webkit/database/database_tracker.h" 15 #include "webkit/database/database_tracker.h"
16 #include "webkit/database/database_util.h" 16 #include "webkit/database/database_util.h"
17 17
18 namespace webkit_database { 18 namespace webkit_database {
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 const GURL kOriginA; 119 const GURL kOriginA;
120 const GURL kOriginB; 120 const GURL kOriginB;
121 const GURL kOriginOther; 121 const GURL kOriginOther;
122 122
123 DatabaseQuotaClientTest() 123 DatabaseQuotaClientTest()
124 : kOriginA("http://host"), 124 : kOriginA("http://host"),
125 kOriginB("http://host:8000"), 125 kOriginB("http://host:8000"),
126 kOriginOther("http://other"), 126 kOriginOther("http://other"),
127 usage_(0), 127 usage_(0),
128 mock_tracker_(new MockDatabaseTracker), 128 mock_tracker_(new MockDatabaseTracker),
129 callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { 129 weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
130 } 130 }
131 131
132 int64 GetOriginUsage( 132 int64 GetOriginUsage(
133 quota::QuotaClient* client, 133 quota::QuotaClient* client,
134 const GURL& origin, 134 const GURL& origin,
135 quota::StorageType type) { 135 quota::StorageType type) {
136 usage_ = 0; 136 usage_ = 0;
137 client->GetOriginUsage(origin, type, 137 client->GetOriginUsage(
138 callback_factory_.NewCallback( 138 origin, type,
139 &DatabaseQuotaClientTest::OnGetOriginUsageComplete)); 139 base::Bind(&DatabaseQuotaClientTest::OnGetOriginUsageComplete,
140 weak_factory_.GetWeakPtr()));
140 MessageLoop::current()->RunAllPending(); 141 MessageLoop::current()->RunAllPending();
141 return usage_; 142 return usage_;
142 } 143 }
143 144
144 const std::set<GURL>& GetOriginsForType( 145 const std::set<GURL>& GetOriginsForType(
145 quota::QuotaClient* client, 146 quota::QuotaClient* client,
146 quota::StorageType type) { 147 quota::StorageType type) {
147 origins_.clear(); 148 origins_.clear();
148 client->GetOriginsForType(type, 149 client->GetOriginsForType(
149 callback_factory_.NewCallback( 150 type,
150 &DatabaseQuotaClientTest::OnGetOriginsComplete)); 151 base::Bind(&DatabaseQuotaClientTest::OnGetOriginsComplete,
152 weak_factory_.GetWeakPtr()));
151 MessageLoop::current()->RunAllPending(); 153 MessageLoop::current()->RunAllPending();
152 return origins_; 154 return origins_;
153 } 155 }
154 156
155 const std::set<GURL>& GetOriginsForHost( 157 const std::set<GURL>& GetOriginsForHost(
156 quota::QuotaClient* client, 158 quota::QuotaClient* client,
157 quota::StorageType type, 159 quota::StorageType type,
158 const std::string& host) { 160 const std::string& host) {
159 origins_.clear(); 161 origins_.clear();
160 client->GetOriginsForHost(type, host, 162 client->GetOriginsForHost(
161 callback_factory_.NewCallback( 163 type, host,
162 &DatabaseQuotaClientTest::OnGetOriginsComplete)); 164 base::Bind(&DatabaseQuotaClientTest::OnGetOriginsComplete,
165 weak_factory_.GetWeakPtr()));
163 MessageLoop::current()->RunAllPending(); 166 MessageLoop::current()->RunAllPending();
164 return origins_; 167 return origins_;
165 } 168 }
166 169
167 bool DeleteOriginData( 170 bool DeleteOriginData(
168 quota::QuotaClient* client, 171 quota::QuotaClient* client,
169 quota::StorageType type, 172 quota::StorageType type,
170 const GURL& origin) { 173 const GURL& origin) {
171 delete_status_ = quota::kQuotaStatusUnknown; 174 delete_status_ = quota::kQuotaStatusUnknown;
172 client->DeleteOriginData(origin, type, 175 client->DeleteOriginData(
173 callback_factory_.NewCallback( 176 origin, type,
174 &DatabaseQuotaClientTest::OnDeleteOriginDataComplete)); 177 base::Bind(&DatabaseQuotaClientTest::OnDeleteOriginDataComplete,
178 weak_factory_.GetWeakPtr()));
175 MessageLoop::current()->RunAllPending(); 179 MessageLoop::current()->RunAllPending();
176 return delete_status_ == quota::kQuotaStatusOk; 180 return delete_status_ == quota::kQuotaStatusOk;
177 } 181 }
178 182
179 MockDatabaseTracker* mock_tracker() { return mock_tracker_.get(); } 183 MockDatabaseTracker* mock_tracker() { return mock_tracker_.get(); }
180 184
181 185
182 private: 186 private:
183 void OnGetOriginUsageComplete(int64 usage) { 187 void OnGetOriginUsageComplete(int64 usage) {
184 usage_ = usage; 188 usage_ = usage;
185 } 189 }
186 190
187 void OnGetOriginsComplete(const std::set<GURL>& origins, 191 void OnGetOriginsComplete(const std::set<GURL>& origins,
188 quota::StorageType type) { 192 quota::StorageType type) {
189 origins_ = origins; 193 origins_ = origins;
190 type_ = type; 194 type_ = type;
191 } 195 }
192 196
193 void OnDeleteOriginDataComplete(quota::QuotaStatusCode status) { 197 void OnDeleteOriginDataComplete(quota::QuotaStatusCode status) {
194 delete_status_ = status; 198 delete_status_ = status;
195 } 199 }
196 200
197 int64 usage_; 201 int64 usage_;
198 std::set<GURL> origins_; 202 std::set<GURL> origins_;
199 quota::StorageType type_; 203 quota::StorageType type_;
200 quota::QuotaStatusCode delete_status_; 204 quota::QuotaStatusCode delete_status_;
201 scoped_refptr<MockDatabaseTracker> mock_tracker_; 205 scoped_refptr<MockDatabaseTracker> mock_tracker_;
202 base::ScopedCallbackFactory<DatabaseQuotaClientTest> callback_factory_; 206 base::WeakPtrFactory<DatabaseQuotaClientTest> weak_factory_;
203 }; 207 };
204 208
205 209
206 TEST_F(DatabaseQuotaClientTest, GetOriginUsage) { 210 TEST_F(DatabaseQuotaClientTest, GetOriginUsage) {
207 DatabaseQuotaClient client( 211 DatabaseQuotaClient client(
208 base::MessageLoopProxy::current(), 212 base::MessageLoopProxy::current(),
209 mock_tracker()); 213 mock_tracker());
210 214
211 EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kTemp)); 215 EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kTemp));
212 EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kPerm)); 216 EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kPerm));
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 mock_tracker()->set_async_delete(false); 278 mock_tracker()->set_async_delete(false);
275 EXPECT_TRUE(DeleteOriginData(&client, kTemp, kOriginA)); 279 EXPECT_TRUE(DeleteOriginData(&client, kTemp, kOriginA));
276 EXPECT_EQ(1, mock_tracker()->delete_called_count()); 280 EXPECT_EQ(1, mock_tracker()->delete_called_count());
277 281
278 mock_tracker()->set_async_delete(true); 282 mock_tracker()->set_async_delete(true);
279 EXPECT_TRUE(DeleteOriginData(&client, kTemp, kOriginA)); 283 EXPECT_TRUE(DeleteOriginData(&client, kTemp, kOriginA));
280 EXPECT_EQ(2, mock_tracker()->delete_called_count()); 284 EXPECT_EQ(2, mock_tracker()->delete_called_count());
281 } 285 }
282 286
283 } // namespace webkit_database 287 } // namespace webkit_database
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698