| OLD | NEW |
| 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 <map> | 5 #include <map> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/message_loop/message_loop_proxy.h" | 10 #include "base/message_loop/message_loop_proxy.h" |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 base::MessageLoop message_loop_; | 203 base::MessageLoop message_loop_; |
| 204 int64 usage_; | 204 int64 usage_; |
| 205 std::set<GURL> origins_; | 205 std::set<GURL> origins_; |
| 206 quota::QuotaStatusCode delete_status_; | 206 quota::QuotaStatusCode delete_status_; |
| 207 scoped_refptr<MockDatabaseTracker> mock_tracker_; | 207 scoped_refptr<MockDatabaseTracker> mock_tracker_; |
| 208 base::WeakPtrFactory<DatabaseQuotaClientTest> weak_factory_; | 208 base::WeakPtrFactory<DatabaseQuotaClientTest> weak_factory_; |
| 209 }; | 209 }; |
| 210 | 210 |
| 211 | 211 |
| 212 TEST_F(DatabaseQuotaClientTest, GetOriginUsage) { | 212 TEST_F(DatabaseQuotaClientTest, GetOriginUsage) { |
| 213 DatabaseQuotaClient client( | 213 DatabaseQuotaClient client(base::MessageLoopProxy::current().get(), |
| 214 base::MessageLoopProxy::current(), | 214 mock_tracker()); |
| 215 mock_tracker()); | |
| 216 | 215 |
| 217 EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kTemp)); | 216 EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kTemp)); |
| 218 EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kPerm)); | 217 EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kPerm)); |
| 219 | 218 |
| 220 mock_tracker()->AddMockDatabase(kOriginA, "fooDB", 1000); | 219 mock_tracker()->AddMockDatabase(kOriginA, "fooDB", 1000); |
| 221 EXPECT_EQ(1000, GetOriginUsage(&client, kOriginA, kTemp)); | 220 EXPECT_EQ(1000, GetOriginUsage(&client, kOriginA, kTemp)); |
| 222 EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kPerm)); | 221 EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kPerm)); |
| 223 | 222 |
| 224 EXPECT_EQ(0, GetOriginUsage(&client, kOriginB, kPerm)); | 223 EXPECT_EQ(0, GetOriginUsage(&client, kOriginB, kPerm)); |
| 225 EXPECT_EQ(0, GetOriginUsage(&client, kOriginB, kTemp)); | 224 EXPECT_EQ(0, GetOriginUsage(&client, kOriginB, kTemp)); |
| 226 } | 225 } |
| 227 | 226 |
| 228 TEST_F(DatabaseQuotaClientTest, GetOriginsForHost) { | 227 TEST_F(DatabaseQuotaClientTest, GetOriginsForHost) { |
| 229 DatabaseQuotaClient client( | 228 DatabaseQuotaClient client(base::MessageLoopProxy::current().get(), |
| 230 base::MessageLoopProxy::current(), | 229 mock_tracker()); |
| 231 mock_tracker()); | |
| 232 | 230 |
| 233 EXPECT_EQ(kOriginA.host(), kOriginB.host()); | 231 EXPECT_EQ(kOriginA.host(), kOriginB.host()); |
| 234 EXPECT_NE(kOriginA.host(), kOriginOther.host()); | 232 EXPECT_NE(kOriginA.host(), kOriginOther.host()); |
| 235 | 233 |
| 236 std::set<GURL> origins = GetOriginsForHost(&client, kTemp, kOriginA.host()); | 234 std::set<GURL> origins = GetOriginsForHost(&client, kTemp, kOriginA.host()); |
| 237 EXPECT_TRUE(origins.empty()); | 235 EXPECT_TRUE(origins.empty()); |
| 238 | 236 |
| 239 mock_tracker()->AddMockDatabase(kOriginA, "fooDB", 1000); | 237 mock_tracker()->AddMockDatabase(kOriginA, "fooDB", 1000); |
| 240 origins = GetOriginsForHost(&client, kTemp, kOriginA.host()); | 238 origins = GetOriginsForHost(&client, kTemp, kOriginA.host()); |
| 241 EXPECT_EQ(origins.size(), 1ul); | 239 EXPECT_EQ(origins.size(), 1ul); |
| 242 EXPECT_TRUE(origins.find(kOriginA) != origins.end()); | 240 EXPECT_TRUE(origins.find(kOriginA) != origins.end()); |
| 243 | 241 |
| 244 mock_tracker()->AddMockDatabase(kOriginB, "barDB", 1000); | 242 mock_tracker()->AddMockDatabase(kOriginB, "barDB", 1000); |
| 245 origins = GetOriginsForHost(&client, kTemp, kOriginA.host()); | 243 origins = GetOriginsForHost(&client, kTemp, kOriginA.host()); |
| 246 EXPECT_EQ(origins.size(), 2ul); | 244 EXPECT_EQ(origins.size(), 2ul); |
| 247 EXPECT_TRUE(origins.find(kOriginA) != origins.end()); | 245 EXPECT_TRUE(origins.find(kOriginA) != origins.end()); |
| 248 EXPECT_TRUE(origins.find(kOriginB) != origins.end()); | 246 EXPECT_TRUE(origins.find(kOriginB) != origins.end()); |
| 249 | 247 |
| 250 EXPECT_TRUE(GetOriginsForHost(&client, kPerm, kOriginA.host()).empty()); | 248 EXPECT_TRUE(GetOriginsForHost(&client, kPerm, kOriginA.host()).empty()); |
| 251 EXPECT_TRUE(GetOriginsForHost(&client, kTemp, kOriginOther.host()).empty()); | 249 EXPECT_TRUE(GetOriginsForHost(&client, kTemp, kOriginOther.host()).empty()); |
| 252 } | 250 } |
| 253 | 251 |
| 254 TEST_F(DatabaseQuotaClientTest, GetOriginsForType) { | 252 TEST_F(DatabaseQuotaClientTest, GetOriginsForType) { |
| 255 DatabaseQuotaClient client( | 253 DatabaseQuotaClient client(base::MessageLoopProxy::current().get(), |
| 256 base::MessageLoopProxy::current(), | 254 mock_tracker()); |
| 257 mock_tracker()); | |
| 258 | 255 |
| 259 EXPECT_TRUE(GetOriginsForType(&client, kTemp).empty()); | 256 EXPECT_TRUE(GetOriginsForType(&client, kTemp).empty()); |
| 260 EXPECT_TRUE(GetOriginsForType(&client, kPerm).empty()); | 257 EXPECT_TRUE(GetOriginsForType(&client, kPerm).empty()); |
| 261 | 258 |
| 262 mock_tracker()->AddMockDatabase(kOriginA, "fooDB", 1000); | 259 mock_tracker()->AddMockDatabase(kOriginA, "fooDB", 1000); |
| 263 std::set<GURL> origins = GetOriginsForType(&client, kTemp); | 260 std::set<GURL> origins = GetOriginsForType(&client, kTemp); |
| 264 EXPECT_EQ(origins.size(), 1ul); | 261 EXPECT_EQ(origins.size(), 1ul); |
| 265 EXPECT_TRUE(origins.find(kOriginA) != origins.end()); | 262 EXPECT_TRUE(origins.find(kOriginA) != origins.end()); |
| 266 | 263 |
| 267 EXPECT_TRUE(GetOriginsForType(&client, kPerm).empty()); | 264 EXPECT_TRUE(GetOriginsForType(&client, kPerm).empty()); |
| 268 } | 265 } |
| 269 | 266 |
| 270 TEST_F(DatabaseQuotaClientTest, DeleteOriginData) { | 267 TEST_F(DatabaseQuotaClientTest, DeleteOriginData) { |
| 271 DatabaseQuotaClient client( | 268 DatabaseQuotaClient client(base::MessageLoopProxy::current().get(), |
| 272 base::MessageLoopProxy::current(), | 269 mock_tracker()); |
| 273 mock_tracker()); | |
| 274 | 270 |
| 275 // Perm deletions are short circuited in the Client and | 271 // Perm deletions are short circuited in the Client and |
| 276 // should not reach the DatabaseTracker. | 272 // should not reach the DatabaseTracker. |
| 277 EXPECT_TRUE(DeleteOriginData(&client, kPerm, kOriginA)); | 273 EXPECT_TRUE(DeleteOriginData(&client, kPerm, kOriginA)); |
| 278 EXPECT_EQ(0, mock_tracker()->delete_called_count()); | 274 EXPECT_EQ(0, mock_tracker()->delete_called_count()); |
| 279 | 275 |
| 280 mock_tracker()->set_async_delete(false); | 276 mock_tracker()->set_async_delete(false); |
| 281 EXPECT_TRUE(DeleteOriginData(&client, kTemp, kOriginA)); | 277 EXPECT_TRUE(DeleteOriginData(&client, kTemp, kOriginA)); |
| 282 EXPECT_EQ(1, mock_tracker()->delete_called_count()); | 278 EXPECT_EQ(1, mock_tracker()->delete_called_count()); |
| 283 | 279 |
| 284 mock_tracker()->set_async_delete(true); | 280 mock_tracker()->set_async_delete(true); |
| 285 EXPECT_TRUE(DeleteOriginData(&client, kTemp, kOriginA)); | 281 EXPECT_TRUE(DeleteOriginData(&client, kTemp, kOriginA)); |
| 286 EXPECT_EQ(2, mock_tracker()->delete_called_count()); | 282 EXPECT_EQ(2, mock_tracker()->delete_called_count()); |
| 287 } | 283 } |
| 288 | 284 |
| 289 } // namespace webkit_database | 285 } // namespace webkit_database |
| OLD | NEW |