| 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 | 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |