OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <stack> | 5 #include <stack> |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 (*body) = ""; | 121 (*body) = ""; |
122 } | 122 } |
123 } | 123 } |
124 }; | 124 }; |
125 | 125 |
126 class MockHttpServerJobFactory | 126 class MockHttpServerJobFactory |
127 : public net::URLRequestJobFactory::ProtocolHandler { | 127 : public net::URLRequestJobFactory::ProtocolHandler { |
128 public: | 128 public: |
129 virtual net::URLRequestJob* MaybeCreateJob( | 129 virtual net::URLRequestJob* MaybeCreateJob( |
130 net::URLRequest* request, | 130 net::URLRequest* request, |
131 net::NetworkDelegate* network_delegate) const OVERRIDE { | 131 net::NetworkDelegate* network_delegate) const override { |
132 return MockHttpServer::CreateJob(request, network_delegate); | 132 return MockHttpServer::CreateJob(request, network_delegate); |
133 } | 133 } |
134 }; | 134 }; |
135 | 135 |
136 class IOThread : public base::Thread { | 136 class IOThread : public base::Thread { |
137 public: | 137 public: |
138 explicit IOThread(const char* name) | 138 explicit IOThread(const char* name) |
139 : base::Thread(name) { | 139 : base::Thread(name) { |
140 } | 140 } |
141 | 141 |
142 virtual ~IOThread() { | 142 virtual ~IOThread() { |
143 Stop(); | 143 Stop(); |
144 } | 144 } |
145 | 145 |
146 net::URLRequestContext* request_context() { | 146 net::URLRequestContext* request_context() { |
147 return request_context_.get(); | 147 return request_context_.get(); |
148 } | 148 } |
149 | 149 |
150 virtual void Init() OVERRIDE { | 150 virtual void Init() override { |
151 scoped_ptr<net::URLRequestJobFactoryImpl> factory( | 151 scoped_ptr<net::URLRequestJobFactoryImpl> factory( |
152 new net::URLRequestJobFactoryImpl()); | 152 new net::URLRequestJobFactoryImpl()); |
153 factory->SetProtocolHandler("http", new MockHttpServerJobFactory); | 153 factory->SetProtocolHandler("http", new MockHttpServerJobFactory); |
154 job_factory_ = factory.Pass(); | 154 job_factory_ = factory.Pass(); |
155 request_context_.reset(new net::TestURLRequestContext()); | 155 request_context_.reset(new net::TestURLRequestContext()); |
156 request_context_->set_job_factory(job_factory_.get()); | 156 request_context_->set_job_factory(job_factory_.get()); |
157 AppCacheInterceptor::EnsureRegistered(); | 157 AppCacheInterceptor::EnsureRegistered(); |
158 } | 158 } |
159 | 159 |
160 virtual void CleanUp() OVERRIDE { | 160 virtual void CleanUp() override { |
161 request_context_.reset(); | 161 request_context_.reset(); |
162 job_factory_.reset(); | 162 job_factory_.reset(); |
163 } | 163 } |
164 | 164 |
165 private: | 165 private: |
166 scoped_ptr<net::URLRequestJobFactory> job_factory_; | 166 scoped_ptr<net::URLRequestJobFactory> job_factory_; |
167 scoped_ptr<net::URLRequestContext> request_context_; | 167 scoped_ptr<net::URLRequestContext> request_context_; |
168 }; | 168 }; |
169 | 169 |
170 scoped_ptr<IOThread> io_thread; | 170 scoped_ptr<IOThread> io_thread; |
171 scoped_ptr<base::Thread> db_thread; | 171 scoped_ptr<base::Thread> db_thread; |
172 | 172 |
173 } // namespace | 173 } // namespace |
174 | 174 |
175 class AppCacheStorageImplTest : public testing::Test { | 175 class AppCacheStorageImplTest : public testing::Test { |
176 public: | 176 public: |
177 class MockStorageDelegate : public AppCacheStorage::Delegate { | 177 class MockStorageDelegate : public AppCacheStorage::Delegate { |
178 public: | 178 public: |
179 explicit MockStorageDelegate(AppCacheStorageImplTest* test) | 179 explicit MockStorageDelegate(AppCacheStorageImplTest* test) |
180 : loaded_cache_id_(0), stored_group_success_(false), | 180 : loaded_cache_id_(0), stored_group_success_(false), |
181 would_exceed_quota_(false), obsoleted_success_(false), | 181 would_exceed_quota_(false), obsoleted_success_(false), |
182 found_cache_id_(kAppCacheNoCacheId), test_(test) { | 182 found_cache_id_(kAppCacheNoCacheId), test_(test) { |
183 } | 183 } |
184 | 184 |
185 virtual void OnCacheLoaded(AppCache* cache, int64 cache_id) OVERRIDE { | 185 virtual void OnCacheLoaded(AppCache* cache, int64 cache_id) override { |
186 loaded_cache_ = cache; | 186 loaded_cache_ = cache; |
187 loaded_cache_id_ = cache_id; | 187 loaded_cache_id_ = cache_id; |
188 test_->ScheduleNextTask(); | 188 test_->ScheduleNextTask(); |
189 } | 189 } |
190 | 190 |
191 virtual void OnGroupLoaded(AppCacheGroup* group, | 191 virtual void OnGroupLoaded(AppCacheGroup* group, |
192 const GURL& manifest_url) OVERRIDE { | 192 const GURL& manifest_url) override { |
193 loaded_group_ = group; | 193 loaded_group_ = group; |
194 loaded_manifest_url_ = manifest_url; | 194 loaded_manifest_url_ = manifest_url; |
195 loaded_groups_newest_cache_ = group ? group->newest_complete_cache() | 195 loaded_groups_newest_cache_ = group ? group->newest_complete_cache() |
196 : NULL; | 196 : NULL; |
197 test_->ScheduleNextTask(); | 197 test_->ScheduleNextTask(); |
198 } | 198 } |
199 | 199 |
200 virtual void OnGroupAndNewestCacheStored( | 200 virtual void OnGroupAndNewestCacheStored( |
201 AppCacheGroup* group, AppCache* newest_cache, bool success, | 201 AppCacheGroup* group, AppCache* newest_cache, bool success, |
202 bool would_exceed_quota) OVERRIDE { | 202 bool would_exceed_quota) override { |
203 stored_group_ = group; | 203 stored_group_ = group; |
204 stored_group_success_ = success; | 204 stored_group_success_ = success; |
205 would_exceed_quota_ = would_exceed_quota; | 205 would_exceed_quota_ = would_exceed_quota; |
206 test_->ScheduleNextTask(); | 206 test_->ScheduleNextTask(); |
207 } | 207 } |
208 | 208 |
209 virtual void OnGroupMadeObsolete(AppCacheGroup* group, | 209 virtual void OnGroupMadeObsolete(AppCacheGroup* group, |
210 bool success, | 210 bool success, |
211 int response_code) OVERRIDE { | 211 int response_code) override { |
212 obsoleted_group_ = group; | 212 obsoleted_group_ = group; |
213 obsoleted_success_ = success; | 213 obsoleted_success_ = success; |
214 test_->ScheduleNextTask(); | 214 test_->ScheduleNextTask(); |
215 } | 215 } |
216 | 216 |
217 virtual void OnMainResponseFound(const GURL& url, | 217 virtual void OnMainResponseFound(const GURL& url, |
218 const AppCacheEntry& entry, | 218 const AppCacheEntry& entry, |
219 const GURL& namespace_entry_url, | 219 const GURL& namespace_entry_url, |
220 const AppCacheEntry& fallback_entry, | 220 const AppCacheEntry& fallback_entry, |
221 int64 cache_id, | 221 int64 cache_id, |
222 int64 group_id, | 222 int64 group_id, |
223 const GURL& manifest_url) OVERRIDE { | 223 const GURL& manifest_url) override { |
224 found_url_ = url; | 224 found_url_ = url; |
225 found_entry_ = entry; | 225 found_entry_ = entry; |
226 found_namespace_entry_url_ = namespace_entry_url; | 226 found_namespace_entry_url_ = namespace_entry_url; |
227 found_fallback_entry_ = fallback_entry; | 227 found_fallback_entry_ = fallback_entry; |
228 found_cache_id_ = cache_id; | 228 found_cache_id_ = cache_id; |
229 found_group_id_ = group_id; | 229 found_group_id_ = group_id; |
230 found_manifest_url_ = manifest_url; | 230 found_manifest_url_ = manifest_url; |
231 test_->ScheduleNextTask(); | 231 test_->ScheduleNextTask(); |
232 } | 232 } |
233 | 233 |
(...skipping 23 matching lines...) Expand all Loading... |
257 : QuotaManager(true /* is_incognito */, | 257 : QuotaManager(true /* is_incognito */, |
258 base::FilePath(), | 258 base::FilePath(), |
259 io_thread->message_loop_proxy().get(), | 259 io_thread->message_loop_proxy().get(), |
260 db_thread->message_loop_proxy().get(), | 260 db_thread->message_loop_proxy().get(), |
261 NULL), | 261 NULL), |
262 async_(false) {} | 262 async_(false) {} |
263 | 263 |
264 virtual void GetUsageAndQuota( | 264 virtual void GetUsageAndQuota( |
265 const GURL& origin, | 265 const GURL& origin, |
266 storage::StorageType type, | 266 storage::StorageType type, |
267 const GetUsageAndQuotaCallback& callback) OVERRIDE { | 267 const GetUsageAndQuotaCallback& callback) override { |
268 EXPECT_EQ(storage::kStorageTypeTemporary, type); | 268 EXPECT_EQ(storage::kStorageTypeTemporary, type); |
269 if (async_) { | 269 if (async_) { |
270 base::MessageLoop::current()->PostTask( | 270 base::MessageLoop::current()->PostTask( |
271 FROM_HERE, | 271 FROM_HERE, |
272 base::Bind(&MockQuotaManager::CallCallback, | 272 base::Bind(&MockQuotaManager::CallCallback, |
273 base::Unretained(this), | 273 base::Unretained(this), |
274 callback)); | 274 callback)); |
275 return; | 275 return; |
276 } | 276 } |
277 CallCallback(callback); | 277 CallCallback(callback); |
(...skipping 15 matching lines...) Expand all Loading... |
293 : QuotaManagerProxy(NULL, NULL), | 293 : QuotaManagerProxy(NULL, NULL), |
294 notify_storage_accessed_count_(0), | 294 notify_storage_accessed_count_(0), |
295 notify_storage_modified_count_(0), | 295 notify_storage_modified_count_(0), |
296 last_delta_(0), | 296 last_delta_(0), |
297 mock_manager_(new MockQuotaManager) { | 297 mock_manager_(new MockQuotaManager) { |
298 manager_ = mock_manager_.get(); | 298 manager_ = mock_manager_.get(); |
299 } | 299 } |
300 | 300 |
301 virtual void NotifyStorageAccessed(storage::QuotaClient::ID client_id, | 301 virtual void NotifyStorageAccessed(storage::QuotaClient::ID client_id, |
302 const GURL& origin, | 302 const GURL& origin, |
303 storage::StorageType type) OVERRIDE { | 303 storage::StorageType type) override { |
304 EXPECT_EQ(storage::QuotaClient::kAppcache, client_id); | 304 EXPECT_EQ(storage::QuotaClient::kAppcache, client_id); |
305 EXPECT_EQ(storage::kStorageTypeTemporary, type); | 305 EXPECT_EQ(storage::kStorageTypeTemporary, type); |
306 ++notify_storage_accessed_count_; | 306 ++notify_storage_accessed_count_; |
307 last_origin_ = origin; | 307 last_origin_ = origin; |
308 } | 308 } |
309 | 309 |
310 virtual void NotifyStorageModified(storage::QuotaClient::ID client_id, | 310 virtual void NotifyStorageModified(storage::QuotaClient::ID client_id, |
311 const GURL& origin, | 311 const GURL& origin, |
312 storage::StorageType type, | 312 storage::StorageType type, |
313 int64 delta) OVERRIDE { | 313 int64 delta) override { |
314 EXPECT_EQ(storage::QuotaClient::kAppcache, client_id); | 314 EXPECT_EQ(storage::QuotaClient::kAppcache, client_id); |
315 EXPECT_EQ(storage::kStorageTypeTemporary, type); | 315 EXPECT_EQ(storage::kStorageTypeTemporary, type); |
316 ++notify_storage_modified_count_; | 316 ++notify_storage_modified_count_; |
317 last_origin_ = origin; | 317 last_origin_ = origin; |
318 last_delta_ = delta; | 318 last_delta_ = delta; |
319 } | 319 } |
320 | 320 |
321 // Not needed for our tests. | 321 // Not needed for our tests. |
322 virtual void RegisterClient(storage::QuotaClient* client) OVERRIDE {} | 322 virtual void RegisterClient(storage::QuotaClient* client) override {} |
323 virtual void NotifyOriginInUse(const GURL& origin) OVERRIDE {} | 323 virtual void NotifyOriginInUse(const GURL& origin) override {} |
324 virtual void NotifyOriginNoLongerInUse(const GURL& origin) OVERRIDE {} | 324 virtual void NotifyOriginNoLongerInUse(const GURL& origin) override {} |
325 virtual void SetUsageCacheEnabled(storage::QuotaClient::ID client_id, | 325 virtual void SetUsageCacheEnabled(storage::QuotaClient::ID client_id, |
326 const GURL& origin, | 326 const GURL& origin, |
327 storage::StorageType type, | 327 storage::StorageType type, |
328 bool enabled) OVERRIDE {} | 328 bool enabled) override {} |
329 virtual void GetUsageAndQuota( | 329 virtual void GetUsageAndQuota( |
330 base::SequencedTaskRunner* original_task_runner, | 330 base::SequencedTaskRunner* original_task_runner, |
331 const GURL& origin, | 331 const GURL& origin, |
332 storage::StorageType type, | 332 storage::StorageType type, |
333 const GetUsageAndQuotaCallback& callback) OVERRIDE {} | 333 const GetUsageAndQuotaCallback& callback) override {} |
334 | 334 |
335 int notify_storage_accessed_count_; | 335 int notify_storage_accessed_count_; |
336 int notify_storage_modified_count_; | 336 int notify_storage_modified_count_; |
337 GURL last_origin_; | 337 GURL last_origin_; |
338 int last_delta_; | 338 int last_delta_; |
339 scoped_refptr<MockQuotaManager> mock_manager_; | 339 scoped_refptr<MockQuotaManager> mock_manager_; |
340 | 340 |
341 protected: | 341 protected: |
342 virtual ~MockQuotaManagerProxy() {} | 342 virtual ~MockQuotaManagerProxy() {} |
343 }; | 343 }; |
(...skipping 1248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1592 // They rely on running a mock http server on our IO thread, | 1592 // They rely on running a mock http server on our IO thread, |
1593 // and involves other appcache classes to get some code | 1593 // and involves other appcache classes to get some code |
1594 // coverage thruout when Reinitialize happens. | 1594 // coverage thruout when Reinitialize happens. |
1595 | 1595 |
1596 class MockServiceObserver : public AppCacheServiceImpl::Observer { | 1596 class MockServiceObserver : public AppCacheServiceImpl::Observer { |
1597 public: | 1597 public: |
1598 explicit MockServiceObserver(AppCacheStorageImplTest* test) | 1598 explicit MockServiceObserver(AppCacheStorageImplTest* test) |
1599 : test_(test) {} | 1599 : test_(test) {} |
1600 | 1600 |
1601 virtual void OnServiceReinitialized( | 1601 virtual void OnServiceReinitialized( |
1602 AppCacheStorageReference* old_storage_ref) OVERRIDE { | 1602 AppCacheStorageReference* old_storage_ref) override { |
1603 observed_old_storage_ = old_storage_ref; | 1603 observed_old_storage_ = old_storage_ref; |
1604 test_->ScheduleNextTask(); | 1604 test_->ScheduleNextTask(); |
1605 } | 1605 } |
1606 | 1606 |
1607 scoped_refptr<AppCacheStorageReference> observed_old_storage_; | 1607 scoped_refptr<AppCacheStorageReference> observed_old_storage_; |
1608 AppCacheStorageImplTest* test_; | 1608 AppCacheStorageImplTest* test_; |
1609 }; | 1609 }; |
1610 | 1610 |
1611 class MockAppCacheFrontend : public AppCacheFrontend { | 1611 class MockAppCacheFrontend : public AppCacheFrontend { |
1612 public: | 1612 public: |
1613 MockAppCacheFrontend() : error_event_was_raised_(false) {} | 1613 MockAppCacheFrontend() : error_event_was_raised_(false) {} |
1614 | 1614 |
1615 virtual void OnCacheSelected( | 1615 virtual void OnCacheSelected( |
1616 int host_id, const AppCacheInfo& info) OVERRIDE {} | 1616 int host_id, const AppCacheInfo& info) override {} |
1617 virtual void OnStatusChanged(const std::vector<int>& host_ids, | 1617 virtual void OnStatusChanged(const std::vector<int>& host_ids, |
1618 AppCacheStatus status) OVERRIDE {} | 1618 AppCacheStatus status) override {} |
1619 virtual void OnEventRaised(const std::vector<int>& host_ids, | 1619 virtual void OnEventRaised(const std::vector<int>& host_ids, |
1620 AppCacheEventID event_id) OVERRIDE {} | 1620 AppCacheEventID event_id) override {} |
1621 virtual void OnProgressEventRaised( | 1621 virtual void OnProgressEventRaised( |
1622 const std::vector<int>& host_ids, | 1622 const std::vector<int>& host_ids, |
1623 const GURL& url, | 1623 const GURL& url, |
1624 int num_total, int num_complete) OVERRIDE {} | 1624 int num_total, int num_complete) override {} |
1625 virtual void OnErrorEventRaised(const std::vector<int>& host_ids, | 1625 virtual void OnErrorEventRaised(const std::vector<int>& host_ids, |
1626 const AppCacheErrorDetails& details) | 1626 const AppCacheErrorDetails& details) |
1627 OVERRIDE { | 1627 override { |
1628 error_event_was_raised_ = true; | 1628 error_event_was_raised_ = true; |
1629 } | 1629 } |
1630 virtual void OnLogMessage(int host_id, AppCacheLogLevel log_level, | 1630 virtual void OnLogMessage(int host_id, AppCacheLogLevel log_level, |
1631 const std::string& message) OVERRIDE {} | 1631 const std::string& message) override {} |
1632 virtual void OnContentBlocked( | 1632 virtual void OnContentBlocked( |
1633 int host_id, const GURL& manifest_url) OVERRIDE {} | 1633 int host_id, const GURL& manifest_url) override {} |
1634 | 1634 |
1635 bool error_event_was_raised_; | 1635 bool error_event_was_raised_; |
1636 }; | 1636 }; |
1637 | 1637 |
1638 enum ReinitTestCase { | 1638 enum ReinitTestCase { |
1639 CORRUPT_CACHE_ON_INSTALL, | 1639 CORRUPT_CACHE_ON_INSTALL, |
1640 CORRUPT_CACHE_ON_LOAD_EXISTING, | 1640 CORRUPT_CACHE_ON_LOAD_EXISTING, |
1641 CORRUPT_SQL_ON_INSTALL | 1641 CORRUPT_SQL_ON_INSTALL |
1642 }; | 1642 }; |
1643 | 1643 |
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2016 RunTestOnIOThread(&AppCacheStorageImplTest::Reinitialize2); | 2016 RunTestOnIOThread(&AppCacheStorageImplTest::Reinitialize2); |
2017 } | 2017 } |
2018 | 2018 |
2019 TEST_F(AppCacheStorageImplTest, Reinitialize3) { | 2019 TEST_F(AppCacheStorageImplTest, Reinitialize3) { |
2020 RunTestOnIOThread(&AppCacheStorageImplTest::Reinitialize3); | 2020 RunTestOnIOThread(&AppCacheStorageImplTest::Reinitialize3); |
2021 } | 2021 } |
2022 | 2022 |
2023 // That's all folks! | 2023 // That's all folks! |
2024 | 2024 |
2025 } // namespace content | 2025 } // namespace content |
OLD | NEW |