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 "net/http/mock_http_cache.h" | 5 #include "net/http/mock_http_cache.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
9 #include "net/base/completion_callback.h" | 9 #include "net/base/completion_callback.h" |
10 #include "net/base/net_errors.h" | 10 #include "net/base/net_errors.h" |
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 if (soft_failures_) | 377 if (soft_failures_) |
378 it->second->set_fail_requests(); | 378 it->second->set_fail_requests(); |
379 | 379 |
380 if (GetTestModeForEntry(key) & TEST_MODE_SYNC_CACHE_START) | 380 if (GetTestModeForEntry(key) & TEST_MODE_SYNC_CACHE_START) |
381 return net::OK; | 381 return net::OK; |
382 | 382 |
383 CallbackLater(callback, net::OK); | 383 CallbackLater(callback, net::OK); |
384 return net::ERR_IO_PENDING; | 384 return net::ERR_IO_PENDING; |
385 } | 385 } |
386 | 386 |
| 387 int MockDiskCache::OpenDoomedEntry(const std::string& key, |
| 388 disk_cache::Entry** entry, |
| 389 const net::CompletionCallback& callback) { |
| 390 DCHECK(!callback.is_null()); |
| 391 |
| 392 EntryMap::iterator it = entries_.find(key); |
| 393 if (it == entries_.end()) |
| 394 return net::ERR_CACHE_OPEN_FAILURE; |
| 395 if (!it->second->is_doomed()) |
| 396 return net::ERR_CACHE_OPEN_FAILURE; |
| 397 |
| 398 it->second->AddRef(); |
| 399 *entry = it->second; |
| 400 |
| 401 CallbackLater(callback, net::OK); |
| 402 |
| 403 return net::ERR_IO_PENDING; |
| 404 } |
| 405 |
387 int MockDiskCache::CreateEntry(const std::string& key, | 406 int MockDiskCache::CreateEntry(const std::string& key, |
388 disk_cache::Entry** entry, | 407 disk_cache::Entry** entry, |
389 const net::CompletionCallback& callback) { | 408 const net::CompletionCallback& callback) { |
390 DCHECK(!callback.is_null()); | 409 DCHECK(!callback.is_null()); |
391 if (fail_requests_) | 410 if (fail_requests_) |
392 return net::ERR_CACHE_CREATE_FAILURE; | 411 return net::ERR_CACHE_CREATE_FAILURE; |
393 | 412 |
394 EntryMap::iterator it = entries_.find(key); | 413 EntryMap::iterator it = entries_.find(key); |
395 if (it != entries_.end()) { | 414 if (it != entries_.end()) { |
396 if (!it->second->is_doomed()) { | 415 if (!it->second->is_doomed()) { |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
549 return (rv == len); | 568 return (rv == len); |
550 } | 569 } |
551 | 570 |
552 bool MockHttpCache::OpenBackendEntry(const std::string& key, | 571 bool MockHttpCache::OpenBackendEntry(const std::string& key, |
553 disk_cache::Entry** entry) { | 572 disk_cache::Entry** entry) { |
554 net::TestCompletionCallback cb; | 573 net::TestCompletionCallback cb; |
555 int rv = disk_cache()->OpenEntry(key, entry, cb.callback()); | 574 int rv = disk_cache()->OpenEntry(key, entry, cb.callback()); |
556 return (cb.GetResult(rv) == net::OK); | 575 return (cb.GetResult(rv) == net::OK); |
557 } | 576 } |
558 | 577 |
| 578 bool MockHttpCache::OpenBackendDoomedEntry(const std::string& key, |
| 579 disk_cache::Entry** entry) { |
| 580 net::TestCompletionCallback cb; |
| 581 int rv = disk_cache()->OpenDoomedEntry(key, entry, cb.callback()); |
| 582 return (cb.GetResult(rv) == net::OK); |
| 583 } |
| 584 |
559 bool MockHttpCache::CreateBackendEntry(const std::string& key, | 585 bool MockHttpCache::CreateBackendEntry(const std::string& key, |
560 disk_cache::Entry** entry, | 586 disk_cache::Entry** entry, |
561 net::NetLog* net_log) { | 587 net::NetLog* net_log) { |
562 net::TestCompletionCallback cb; | 588 net::TestCompletionCallback cb; |
563 int rv = disk_cache()->CreateEntry(key, entry, cb.callback()); | 589 int rv = disk_cache()->CreateEntry(key, entry, cb.callback()); |
564 return (cb.GetResult(rv) == net::OK); | 590 return (cb.GetResult(rv) == net::OK); |
565 } | 591 } |
566 | 592 |
567 // Static. | 593 // Static. |
568 int MockHttpCache::GetTestMode(int test_mode) { | 594 int MockHttpCache::GetTestMode(int test_mode) { |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
622 void MockBlockingBackendFactory::FinishCreation() { | 648 void MockBlockingBackendFactory::FinishCreation() { |
623 block_ = false; | 649 block_ = false; |
624 if (!callback_.is_null()) { | 650 if (!callback_.is_null()) { |
625 if (!fail_) | 651 if (!fail_) |
626 backend_->reset(new MockDiskCache()); | 652 backend_->reset(new MockDiskCache()); |
627 net::CompletionCallback cb = callback_; | 653 net::CompletionCallback cb = callback_; |
628 callback_.Reset(); | 654 callback_.Reset(); |
629 cb.Run(Result()); // This object can be deleted here. | 655 cb.Run(Result()); // This object can be deleted here. |
630 } | 656 } |
631 } | 657 } |
OLD | NEW |