Index: content/browser/loader/resource_loader_unittest.cc |
diff --git a/content/browser/loader/resource_loader_unittest.cc b/content/browser/loader/resource_loader_unittest.cc |
index 0d2629d140ffc65b1cfb4300c0d79bf66a2bdfeb..80d70fe66c3c6928029134f2062efeb51a0fcf68 100644 |
--- a/content/browser/loader/resource_loader_unittest.cc |
+++ b/content/browser/loader/resource_loader_unittest.cc |
@@ -92,6 +92,8 @@ class ResourceHandlerStub : public ResourceHandler { |
expect_reads_(true), |
cancel_on_read_completed_(false), |
defer_eof_(false), |
+ received_on_will_read_(false), |
+ received_eof_(false), |
received_response_completed_(false), |
total_bytes_downloaded_(0) { |
} |
@@ -168,30 +170,35 @@ class ResourceHandlerStub : public ResourceHandler { |
scoped_refptr<net::IOBuffer>* buf, |
int* buf_size, |
int min_size) OVERRIDE { |
- if (!expect_reads_) { |
- ADD_FAILURE(); |
- return false; |
- } |
+ EXPECT_TRUE(expect_reads_); |
+ EXPECT_FALSE(received_on_will_read_); |
+ EXPECT_FALSE(received_eof_); |
+ EXPECT_FALSE(received_response_completed_); |
*buf = read_buffer_; |
*buf_size = kReadBufSize; |
+ received_on_will_read_ = true; |
return true; |
} |
virtual bool OnReadCompleted(int request_id, |
int bytes_read, |
bool* defer) OVERRIDE { |
- if (!expect_reads_) { |
- ADD_FAILURE(); |
- return false; |
- } |
+ EXPECT_TRUE(received_on_will_read_); |
+ EXPECT_TRUE(expect_reads_); |
+ EXPECT_FALSE(received_response_completed_); |
- if (bytes_read == 0 && defer_eof_) { |
- // Only defer it once; on resumption there will be another EOF. |
- defer_eof_ = false; |
- *defer = true; |
+ if (bytes_read == 0) { |
+ received_eof_ = true; |
+ if (defer_eof_) { |
+ defer_eof_ = false; |
+ *defer = true; |
+ } |
} |
+ // Need another OnWillRead() call before seeing an OnReadCompleted(). |
+ received_on_will_read_ = false; |
+ |
return !cancel_on_read_completed_; |
} |
@@ -200,14 +207,16 @@ class ResourceHandlerStub : public ResourceHandler { |
const std::string& security_info, |
bool* defer) OVERRIDE { |
EXPECT_FALSE(received_response_completed_); |
+ if (status.is_success() && expect_reads_) |
+ EXPECT_TRUE(received_eof_); |
+ |
received_response_completed_ = true; |
status_ = status; |
} |
virtual void OnDataDownloaded(int request_id, |
int bytes_downloaded) OVERRIDE { |
- if (expect_reads_) |
- ADD_FAILURE(); |
+ EXPECT_FALSE(expect_reads_); |
total_bytes_downloaded_ += bytes_downloaded; |
} |
@@ -221,6 +230,8 @@ class ResourceHandlerStub : public ResourceHandler { |
GURL start_url_; |
scoped_refptr<ResourceResponse> response_; |
+ bool received_on_will_read_; |
+ bool received_eof_; |
bool received_response_completed_; |
net::URLRequestStatus status_; |
int total_bytes_downloaded_; |