Index: net/url_request/url_request_simple_job_unittest.cc |
diff --git a/net/url_request/url_request_simple_job_unittest.cc b/net/url_request/url_request_simple_job_unittest.cc |
index 439995a3b8ebdc0121e81462025d83d9d1181c79..5c1b1a92da937559bd4013dc7dce230e256ec92c 100644 |
--- a/net/url_request/url_request_simple_job_unittest.cc |
+++ b/net/url_request/url_request_simple_job_unittest.cc |
@@ -65,7 +65,7 @@ class MockSimpleJob : public URLRequestSimpleJob { |
DISALLOW_COPY_AND_ASSIGN(MockSimpleJob); |
}; |
-class CancelURLRequestDelegate : public URLRequest::Delegate { |
+class CancelURLRequestDelegate : public TestDelegate { |
davidben
2015/08/05 18:56:39
Any reason this CancelURLRequestDelegate calls Rea
mmenke
2015/08/05 20:00:24
Carelessness on my part, while iterating to get th
|
public: |
CancelURLRequestDelegate() |
: buf_(new IOBuffer(kBufferSize)), run_loop_(new base::RunLoop) {} |
@@ -78,7 +78,10 @@ class CancelURLRequestDelegate : public URLRequest::Delegate { |
run_loop_->Quit(); |
} |
- void OnReadCompleted(URLRequest* request, int bytes_read) override {} |
+ void OnReadCompleted(URLRequest* request, int bytes_read) override { |
+ // Read should have been cancelled. |
+ EXPECT_EQ(-1, bytes_read); |
+ } |
void WaitUntilHeadersReceived() const { run_loop_->Run(); } |
@@ -208,7 +211,18 @@ TEST_F(URLRequestSimpleJobTest, EmptyDataRequest) { |
EXPECT_EQ("", delegate_.data_received()); |
} |
-TEST_F(URLRequestSimpleJobTest, CancelAfterFirstRead) { |
+TEST_F(URLRequestSimpleJobTest, CancelBeforeResponseStarts) { |
+ request_ = |
+ context_.CreateRequest(GURL("data:cancel"), DEFAULT_PRIORITY, &delegate_); |
+ request_->Start(); |
+ request_->Cancel(); |
+ |
+ base::RunLoop().RunUntilIdle(); |
+ EXPECT_EQ(URLRequestStatus::CANCELED, request_->status().status()); |
+ EXPECT_EQ(1, delegate_.response_started_count()); |
+} |
+ |
+TEST_F(URLRequestSimpleJobTest, CancelAfterFirstReadStarted) { |
scoped_ptr<CancelURLRequestDelegate> cancel_delegate( |
new CancelURLRequestDelegate()); |
request_ = context_.CreateRequest(GURL("data:cancel"), DEFAULT_PRIORITY, |
@@ -222,6 +236,8 @@ TEST_F(URLRequestSimpleJobTest, CancelAfterFirstRead) { |
EXPECT_TRUE(task_runner_->PostTaskAndReply( |
FROM_HERE, base::Bind(&base::DoNothing), run_loop.QuitClosure())); |
run_loop.Run(); |
+ |
+ EXPECT_EQ(URLRequestStatus::CANCELED, request_->status().status()); |
} |
} // namespace net |