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 "base/bind.h" |
5 #include "base/basictypes.h" | 6 #include "base/basictypes.h" |
6 #include "base/file_util.h" | 7 #include "base/file_util.h" |
7 #include "base/memory/scoped_callback_factory.h" | |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "base/message_loop_proxy.h" | 9 #include "base/message_loop_proxy.h" |
10 #include "base/platform_file.h" | 10 #include "base/platform_file.h" |
11 #include "base/scoped_temp_dir.h" | 11 #include "base/scoped_temp_dir.h" |
12 #include "googleurl/src/gurl.h" | 12 #include "googleurl/src/gurl.h" |
13 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
14 #include "webkit/fileapi/file_system_context.h" | 14 #include "webkit/fileapi/file_system_context.h" |
15 #include "webkit/fileapi/file_system_operation_context.h" | 15 #include "webkit/fileapi/file_system_operation_context.h" |
16 #include "webkit/fileapi/file_system_quota_client.h" | 16 #include "webkit/fileapi/file_system_quota_client.h" |
17 #include "webkit/fileapi/file_system_types.h" | 17 #include "webkit/fileapi/file_system_types.h" |
(...skipping 20 matching lines...) Expand all Loading... |
38 explicit MockFileSystemPathManager(const FilePath& filesystem_path) | 38 explicit MockFileSystemPathManager(const FilePath& filesystem_path) |
39 : FileSystemPathManager(base::MessageLoopProxy::current(), | 39 : FileSystemPathManager(base::MessageLoopProxy::current(), |
40 filesystem_path, NULL, false, true) {} | 40 filesystem_path, NULL, false, true) {} |
41 }; | 41 }; |
42 | 42 |
43 } // namespace | 43 } // namespace |
44 | 44 |
45 class FileSystemQuotaClientTest : public testing::Test { | 45 class FileSystemQuotaClientTest : public testing::Test { |
46 public: | 46 public: |
47 FileSystemQuotaClientTest() | 47 FileSystemQuotaClientTest() |
48 : callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), | 48 : weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), |
49 additional_callback_count_(0), | 49 additional_callback_count_(0), |
50 deletion_status_(quota::kQuotaStatusUnknown) { | 50 deletion_status_(quota::kQuotaStatusUnknown) { |
51 } | 51 } |
52 | 52 |
53 void SetUp() { | 53 void SetUp() { |
54 ASSERT_TRUE(data_dir_.CreateUniqueTempDir()); | 54 ASSERT_TRUE(data_dir_.CreateUniqueTempDir()); |
55 file_system_context_ = | 55 file_system_context_ = |
56 new FileSystemContext( | 56 new FileSystemContext( |
57 base::MessageLoopProxy::current(), | 57 base::MessageLoopProxy::current(), |
58 base::MessageLoopProxy::current(), | 58 base::MessageLoopProxy::current(), |
(...skipping 13 matching lines...) Expand all Loading... |
72 protected: | 72 protected: |
73 FileSystemQuotaClient* NewQuotaClient(bool is_incognito) { | 73 FileSystemQuotaClient* NewQuotaClient(bool is_incognito) { |
74 return new FileSystemQuotaClient( | 74 return new FileSystemQuotaClient( |
75 base::MessageLoopProxy::current(), | 75 base::MessageLoopProxy::current(), |
76 file_system_context_, is_incognito); | 76 file_system_context_, is_incognito); |
77 } | 77 } |
78 | 78 |
79 void GetOriginUsageAsync(FileSystemQuotaClient* quota_client, | 79 void GetOriginUsageAsync(FileSystemQuotaClient* quota_client, |
80 const std::string& origin_url, | 80 const std::string& origin_url, |
81 quota::StorageType type) { | 81 quota::StorageType type) { |
82 quota_client->GetOriginUsage(GURL(origin_url), type, | 82 quota_client->GetOriginUsage( |
83 callback_factory_.NewCallback( | 83 GURL(origin_url), type, |
84 &FileSystemQuotaClientTest::OnGetUsage)); | 84 base::Bind(&FileSystemQuotaClientTest::OnGetUsage, |
| 85 weak_factory_.GetWeakPtr())); |
85 } | 86 } |
86 | 87 |
87 int64 GetOriginUsage(FileSystemQuotaClient* quota_client, | 88 int64 GetOriginUsage(FileSystemQuotaClient* quota_client, |
88 const std::string& origin_url, | 89 const std::string& origin_url, |
89 quota::StorageType type) { | 90 quota::StorageType type) { |
90 GetOriginUsageAsync(quota_client, origin_url, type); | 91 GetOriginUsageAsync(quota_client, origin_url, type); |
91 MessageLoop::current()->RunAllPending(); | 92 MessageLoop::current()->RunAllPending(); |
92 return usage_; | 93 return usage_; |
93 } | 94 } |
94 | 95 |
95 const std::set<GURL>& GetOriginsForType(FileSystemQuotaClient* quota_client, | 96 const std::set<GURL>& GetOriginsForType(FileSystemQuotaClient* quota_client, |
96 quota::StorageType type) { | 97 quota::StorageType type) { |
97 origins_.clear(); | 98 origins_.clear(); |
98 quota_client->GetOriginsForType(type, | 99 quota_client->GetOriginsForType( |
99 callback_factory_.NewCallback( | 100 type, |
100 &FileSystemQuotaClientTest::OnGetOrigins)); | 101 base::Bind(&FileSystemQuotaClientTest::OnGetOrigins, |
| 102 weak_factory_.GetWeakPtr())); |
101 MessageLoop::current()->RunAllPending(); | 103 MessageLoop::current()->RunAllPending(); |
102 return origins_; | 104 return origins_; |
103 } | 105 } |
104 | 106 |
105 const std::set<GURL>& GetOriginsForHost(FileSystemQuotaClient* quota_client, | 107 const std::set<GURL>& GetOriginsForHost(FileSystemQuotaClient* quota_client, |
106 quota::StorageType type, | 108 quota::StorageType type, |
107 const std::string& host) { | 109 const std::string& host) { |
108 origins_.clear(); | 110 origins_.clear(); |
109 quota_client->GetOriginsForHost(type, host, | 111 quota_client->GetOriginsForHost( |
110 callback_factory_.NewCallback( | 112 type, host, |
111 &FileSystemQuotaClientTest::OnGetOrigins)); | 113 base::Bind(&FileSystemQuotaClientTest::OnGetOrigins, |
| 114 weak_factory_.GetWeakPtr())); |
112 MessageLoop::current()->RunAllPending(); | 115 MessageLoop::current()->RunAllPending(); |
113 return origins_; | 116 return origins_; |
114 } | 117 } |
115 | 118 |
116 void RunAdditionalOriginUsageTask(FileSystemQuotaClient* quota_client, | 119 void RunAdditionalOriginUsageTask(FileSystemQuotaClient* quota_client, |
117 const std::string& origin_url, | 120 const std::string& origin_url, |
118 quota::StorageType type) { | 121 quota::StorageType type) { |
119 quota_client->GetOriginUsage(GURL(origin_url), type, | 122 quota_client->GetOriginUsage( |
120 callback_factory_.NewCallback( | 123 GURL(origin_url), type, |
121 &FileSystemQuotaClientTest::OnGetAdditionalUsage)); | 124 base::Bind(&FileSystemQuotaClientTest::OnGetAdditionalUsage, |
| 125 weak_factory_.GetWeakPtr())); |
122 } | 126 } |
123 | 127 |
124 FilePath GetOriginBasePath(const std::string& origin_url, | 128 FilePath GetOriginBasePath(const std::string& origin_url, |
125 quota::StorageType type) { | 129 quota::StorageType type) { |
126 // Note: this test assumes sandbox_provider impl is used for | 130 // Note: this test assumes sandbox_provider impl is used for |
127 // temporary and persistent filesystem. | 131 // temporary and persistent filesystem. |
128 return file_system_context_->path_manager()->sandbox_provider()-> | 132 return file_system_context_->path_manager()->sandbox_provider()-> |
129 GetBaseDirectoryForOriginAndType( | 133 GetBaseDirectoryForOriginAndType( |
130 GURL(origin_url), QuotaStorageTypeToFileSystemType(type), true); | 134 GURL(origin_url), QuotaStorageTypeToFileSystemType(type), true); |
131 } | 135 } |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 } | 231 } |
228 return file_paths_cost; | 232 return file_paths_cost; |
229 } | 233 } |
230 | 234 |
231 void DeleteOriginData(FileSystemQuotaClient* quota_client, | 235 void DeleteOriginData(FileSystemQuotaClient* quota_client, |
232 const std::string& origin, | 236 const std::string& origin, |
233 quota::StorageType type) { | 237 quota::StorageType type) { |
234 deletion_status_ = quota::kQuotaStatusUnknown; | 238 deletion_status_ = quota::kQuotaStatusUnknown; |
235 quota_client->DeleteOriginData( | 239 quota_client->DeleteOriginData( |
236 GURL(origin), type, | 240 GURL(origin), type, |
237 callback_factory_.NewCallback( | 241 base::Bind(&FileSystemQuotaClientTest::OnDeleteOrigin, |
238 &FileSystemQuotaClientTest::OnDeleteOrigin)); | 242 weak_factory_.GetWeakPtr())); |
239 } | 243 } |
240 | 244 |
241 int64 usage() const { return usage_; } | 245 int64 usage() const { return usage_; } |
242 quota::QuotaStatusCode status() { return deletion_status_; } | 246 quota::QuotaStatusCode status() { return deletion_status_; } |
243 int additional_callback_count() const { return additional_callback_count_; } | 247 int additional_callback_count() const { return additional_callback_count_; } |
244 void set_additional_callback_count(int count) { | 248 void set_additional_callback_count(int count) { |
245 additional_callback_count_ = count; | 249 additional_callback_count_ = count; |
246 } | 250 } |
247 | 251 |
248 private: | 252 private: |
(...skipping 10 matching lines...) Expand all Loading... |
259 void OnGetAdditionalUsage(int64 usage_unused) { | 263 void OnGetAdditionalUsage(int64 usage_unused) { |
260 ++additional_callback_count_; | 264 ++additional_callback_count_; |
261 } | 265 } |
262 | 266 |
263 void OnDeleteOrigin(quota::QuotaStatusCode status) { | 267 void OnDeleteOrigin(quota::QuotaStatusCode status) { |
264 deletion_status_ = status; | 268 deletion_status_ = status; |
265 } | 269 } |
266 | 270 |
267 ScopedTempDir data_dir_; | 271 ScopedTempDir data_dir_; |
268 scoped_refptr<FileSystemContext> file_system_context_; | 272 scoped_refptr<FileSystemContext> file_system_context_; |
269 base::ScopedCallbackFactory<FileSystemQuotaClientTest> callback_factory_; | 273 base::WeakPtrFactory<FileSystemQuotaClientTest> weak_factory_; |
270 int64 usage_; | 274 int64 usage_; |
271 int additional_callback_count_; | 275 int additional_callback_count_; |
272 std::set<GURL> origins_; | 276 std::set<GURL> origins_; |
273 quota::StorageType type_; | 277 quota::StorageType type_; |
274 quota::QuotaStatusCode deletion_status_; | 278 quota::QuotaStatusCode deletion_status_; |
275 | 279 |
276 DISALLOW_COPY_AND_ASSIGN(FileSystemQuotaClientTest); | 280 DISALLOW_COPY_AND_ASSIGN(FileSystemQuotaClientTest); |
277 }; | 281 }; |
278 | 282 |
279 TEST_F(FileSystemQuotaClientTest, NoFileSystemTest) { | 283 TEST_F(FileSystemQuotaClientTest, NoFileSystemTest) { |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
594 GetOriginUsage(quota_client.get(), | 598 GetOriginUsage(quota_client.get(), |
595 "https://bar.com/", | 599 "https://bar.com/", |
596 kPersistent)); | 600 kPersistent)); |
597 EXPECT_EQ(64 + file_paths_cost_temporary_bar_https, | 601 EXPECT_EQ(64 + file_paths_cost_temporary_bar_https, |
598 GetOriginUsage(quota_client.get(), | 602 GetOriginUsage(quota_client.get(), |
599 "https://bar.com/", | 603 "https://bar.com/", |
600 kTemporary)); | 604 kTemporary)); |
601 } | 605 } |
602 | 606 |
603 } // namespace fileapi | 607 } // namespace fileapi |
OLD | NEW |