Index: net/http/mock_http_cache.cc |
diff --git a/net/http/mock_http_cache.cc b/net/http/mock_http_cache.cc |
index 85ffa74584efe289123c9f7d8da4691427d60e12..a3d55b17e6b57fbf7d32003bc6a1cfd6bce93579 100644 |
--- a/net/http/mock_http_cache.cc |
+++ b/net/http/mock_http_cache.cc |
@@ -50,14 +50,10 @@ struct MockDiskEntry::CallbackInfo { |
int result; |
}; |
-MockDiskEntry::MockDiskEntry() |
- : test_mode_(0), doomed_(false), sparse_(false), |
- fail_requests_(false), busy_(false), delayed_(false) { |
-} |
- |
MockDiskEntry::MockDiskEntry(const std::string& key) |
: key_(key), doomed_(false), sparse_(false), |
- fail_requests_(false), busy_(false), delayed_(false) { |
+ fail_requests_(false), fail_sparse_requests_(false), busy_(false), |
+ delayed_(false) { |
test_mode_ = GetTestModeForEntry(key); |
} |
@@ -139,6 +135,8 @@ int MockDiskEntry::WriteData( |
int MockDiskEntry::ReadSparseData(int64 offset, net::IOBuffer* buf, int buf_len, |
const net::CompletionCallback& callback) { |
DCHECK(!callback.is_null()); |
+ if (fail_sparse_requests_) |
+ return net::ERR_NOT_IMPLEMENTED; |
if (!sparse_ || busy_) |
return net::ERR_CACHE_OPERATION_NOT_SUPPORTED; |
if (offset < 0) |
@@ -169,6 +167,8 @@ int MockDiskEntry::WriteSparseData(int64 offset, net::IOBuffer* buf, |
int buf_len, |
const net::CompletionCallback& callback) { |
DCHECK(!callback.is_null()); |
+ if (fail_sparse_requests_) |
+ return net::ERR_NOT_IMPLEMENTED; |
if (busy_) |
return net::ERR_CACHE_OPERATION_NOT_SUPPORTED; |
if (!sparse_) { |
@@ -237,6 +237,8 @@ int MockDiskEntry::GetAvailableRange(int64 offset, int len, int64* start, |
} |
bool MockDiskEntry::CouldBeSparse() const { |
+ if (fail_sparse_requests_) |
+ return false; |
return sparse_; |
} |
@@ -245,6 +247,8 @@ void MockDiskEntry::CancelSparseIO() { |
} |
int MockDiskEntry::ReadyForSparseIO(const net::CompletionCallback& callback) { |
+ if (fail_sparse_requests_) |
+ return net::ERR_NOT_IMPLEMENTED; |
if (!cancel_) |
return net::OK; |
@@ -333,7 +337,8 @@ bool MockDiskEntry::ignore_callbacks_ = false; |
MockDiskCache::MockDiskCache() |
: open_count_(0), create_count_(0), fail_requests_(false), |
- soft_failures_(false), double_create_check_(true) { |
+ soft_failures_(false), double_create_check_(true), |
+ fail_sparse_requests_(false) { |
} |
MockDiskCache::~MockDiskCache() { |
@@ -411,6 +416,9 @@ int MockDiskCache::CreateEntry(const std::string& key, |
if (soft_failures_) |
new_entry->set_fail_requests(); |
+ if (fail_sparse_requests_) |
+ new_entry->set_fail_sparse_requests(); |
+ |
if (GetTestModeForEntry(key) & TEST_MODE_SYNC_CACHE_START) |
return net::OK; |