OLD | NEW |
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 #include <set> |
6 | 7 |
| 8 #include "base/bind.h" |
7 #include "base/memory/scoped_callback_factory.h" | 9 #include "base/memory/scoped_callback_factory.h" |
8 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
9 #include "base/message_loop_proxy.h" | 11 #include "base/message_loop_proxy.h" |
10 #include "net/base/net_errors.h" | 12 #include "net/base/net_errors.h" |
11 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
12 #include "webkit/appcache/appcache_quota_client.h" | 14 #include "webkit/appcache/appcache_quota_client.h" |
13 #include "webkit/appcache/mock_appcache_service.h" | 15 #include "webkit/appcache/mock_appcache_service.h" |
14 | 16 |
15 namespace appcache { | 17 namespace appcache { |
16 | 18 |
(...skipping 10 matching lines...) Expand all Loading... |
27 | 29 |
28 AppCacheQuotaClientTest() | 30 AppCacheQuotaClientTest() |
29 : kOriginA("http://host"), | 31 : kOriginA("http://host"), |
30 kOriginB("http://host:8000"), | 32 kOriginB("http://host:8000"), |
31 kOriginOther("http://other"), | 33 kOriginOther("http://other"), |
32 usage_(0), | 34 usage_(0), |
33 delete_status_(quota::kQuotaStatusUnknown), | 35 delete_status_(quota::kQuotaStatusUnknown), |
34 num_get_origin_usage_completions_(0), | 36 num_get_origin_usage_completions_(0), |
35 num_get_origins_completions_(0), | 37 num_get_origins_completions_(0), |
36 num_delete_origins_completions_(0), | 38 num_delete_origins_completions_(0), |
37 callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { | 39 weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { |
38 } | 40 } |
39 | 41 |
40 int64 GetOriginUsage( | 42 int64 GetOriginUsage( |
41 quota::QuotaClient* client, | 43 quota::QuotaClient* client, |
42 const GURL& origin, | 44 const GURL& origin, |
43 quota::StorageType type) { | 45 quota::StorageType type) { |
44 usage_ = -1; | 46 usage_ = -1; |
45 AsyncGetOriginUsage(client, origin, type); | 47 AsyncGetOriginUsage(client, origin, type); |
46 MessageLoop::current()->RunAllPending(); | 48 MessageLoop::current()->RunAllPending(); |
47 return usage_; | 49 return usage_; |
(...skipping 25 matching lines...) Expand all Loading... |
73 delete_status_ = quota::kQuotaStatusUnknown; | 75 delete_status_ = quota::kQuotaStatusUnknown; |
74 AsyncDeleteOriginData(client, type, origin); | 76 AsyncDeleteOriginData(client, type, origin); |
75 MessageLoop::current()->RunAllPending(); | 77 MessageLoop::current()->RunAllPending(); |
76 return delete_status_; | 78 return delete_status_; |
77 } | 79 } |
78 | 80 |
79 void AsyncGetOriginUsage( | 81 void AsyncGetOriginUsage( |
80 quota::QuotaClient* client, | 82 quota::QuotaClient* client, |
81 const GURL& origin, | 83 const GURL& origin, |
82 quota::StorageType type) { | 84 quota::StorageType type) { |
83 client->GetOriginUsage(origin, type, | 85 client->GetOriginUsage( |
84 callback_factory_.NewCallback( | 86 origin, type, |
85 &AppCacheQuotaClientTest::OnGetOriginUsageComplete)); | 87 base::Bind(&AppCacheQuotaClientTest::OnGetOriginUsageComplete, |
| 88 weak_factory_.GetWeakPtr())); |
86 } | 89 } |
87 | 90 |
88 void AsyncGetOriginsForType( | 91 void AsyncGetOriginsForType( |
89 quota::QuotaClient* client, | 92 quota::QuotaClient* client, |
90 quota::StorageType type) { | 93 quota::StorageType type) { |
91 client->GetOriginsForType(type, | 94 client->GetOriginsForType( |
92 callback_factory_.NewCallback( | 95 type, |
93 &AppCacheQuotaClientTest::OnGetOriginsComplete)); | 96 base::Bind(&AppCacheQuotaClientTest::OnGetOriginsComplete, |
| 97 weak_factory_.GetWeakPtr())); |
94 } | 98 } |
95 | 99 |
96 void AsyncGetOriginsForHost( | 100 void AsyncGetOriginsForHost( |
97 quota::QuotaClient* client, | 101 quota::QuotaClient* client, |
98 quota::StorageType type, | 102 quota::StorageType type, |
99 const std::string& host) { | 103 const std::string& host) { |
100 client->GetOriginsForHost(type, host, | 104 client->GetOriginsForHost( |
101 callback_factory_.NewCallback( | 105 type, host, |
102 &AppCacheQuotaClientTest::OnGetOriginsComplete)); | 106 base::Bind(&AppCacheQuotaClientTest::OnGetOriginsComplete, |
| 107 weak_factory_.GetWeakPtr())); |
103 } | 108 } |
104 | 109 |
105 void AsyncDeleteOriginData( | 110 void AsyncDeleteOriginData( |
106 quota::QuotaClient* client, | 111 quota::QuotaClient* client, |
107 quota::StorageType type, | 112 quota::StorageType type, |
108 const GURL& origin) { | 113 const GURL& origin) { |
109 client->DeleteOriginData(origin, type, | 114 client->DeleteOriginData( |
110 callback_factory_.NewCallback( | 115 origin, type, |
111 &AppCacheQuotaClientTest::OnDeleteOriginDataComplete)); | 116 base::Bind(&AppCacheQuotaClientTest::OnDeleteOriginDataComplete, |
| 117 weak_factory_.GetWeakPtr())); |
112 } | 118 } |
113 | 119 |
114 void SetUsageMapEntry(const GURL& origin, int64 usage) { | 120 void SetUsageMapEntry(const GURL& origin, int64 usage) { |
115 mock_service_.storage()->usage_map_[origin] = usage; | 121 mock_service_.storage()->usage_map_[origin] = usage; |
116 } | 122 } |
117 | 123 |
118 AppCacheQuotaClient* CreateClient() { | 124 AppCacheQuotaClient* CreateClient() { |
119 return new AppCacheQuotaClient(&mock_service_); | 125 return new AppCacheQuotaClient(&mock_service_); |
120 } | 126 } |
121 | 127 |
(...skipping 28 matching lines...) Expand all Loading... |
150 } | 156 } |
151 | 157 |
152 int64 usage_; | 158 int64 usage_; |
153 std::set<GURL> origins_; | 159 std::set<GURL> origins_; |
154 quota::StorageType type_; | 160 quota::StorageType type_; |
155 quota::QuotaStatusCode delete_status_; | 161 quota::QuotaStatusCode delete_status_; |
156 int num_get_origin_usage_completions_; | 162 int num_get_origin_usage_completions_; |
157 int num_get_origins_completions_; | 163 int num_get_origins_completions_; |
158 int num_delete_origins_completions_; | 164 int num_delete_origins_completions_; |
159 MockAppCacheService mock_service_; | 165 MockAppCacheService mock_service_; |
160 base::ScopedCallbackFactory<AppCacheQuotaClientTest> callback_factory_; | 166 base::WeakPtrFactory<AppCacheQuotaClientTest> weak_factory_; |
161 }; | 167 }; |
162 | 168 |
163 | 169 |
164 TEST_F(AppCacheQuotaClientTest, BasicCreateDestroy) { | 170 TEST_F(AppCacheQuotaClientTest, BasicCreateDestroy) { |
165 AppCacheQuotaClient* client = CreateClient(); | 171 AppCacheQuotaClient* client = CreateClient(); |
166 Call_NotifyAppCacheReady(client); | 172 Call_NotifyAppCacheReady(client); |
167 Call_OnQuotaManagerDestroyed(client); | 173 Call_OnQuotaManagerDestroyed(client); |
168 Call_NotifyAppCacheDestroyed(client); | 174 Call_NotifyAppCacheDestroyed(client); |
169 } | 175 } |
170 | 176 |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
423 // A real completion callback from the service should | 429 // A real completion callback from the service should |
424 // be dropped if it comes in after NotifyAppCacheDestroyed. | 430 // be dropped if it comes in after NotifyAppCacheDestroyed. |
425 MessageLoop::current()->RunAllPending(); | 431 MessageLoop::current()->RunAllPending(); |
426 EXPECT_EQ(1, num_delete_origins_completions_); | 432 EXPECT_EQ(1, num_delete_origins_completions_); |
427 EXPECT_EQ(quota::kQuotaErrorAbort, delete_status_); | 433 EXPECT_EQ(quota::kQuotaErrorAbort, delete_status_); |
428 | 434 |
429 Call_OnQuotaManagerDestroyed(client); | 435 Call_OnQuotaManagerDestroyed(client); |
430 } | 436 } |
431 | 437 |
432 } // namespace appcache | 438 } // namespace appcache |
OLD | NEW |