Index: android_webview/browser/net/android_stream_reader_url_request_job_unittest.cc |
diff --git a/android_webview/browser/net/android_stream_reader_url_request_job_unittest.cc b/android_webview/browser/net/android_stream_reader_url_request_job_unittest.cc |
index f628700262492299ce538148b82caac5eebcf514..fce673ce108a44c22b3ec0047d1d416141614722 100644 |
--- a/android_webview/browser/net/android_stream_reader_url_request_job_unittest.cc |
+++ b/android_webview/browser/net/android_stream_reader_url_request_job_unittest.cc |
@@ -90,6 +90,17 @@ class StreamReaderDelegate : |
} |
}; |
+class NullStreamReaderDelegate : public StreamReaderDelegate { |
+ public: |
+ NullStreamReaderDelegate() {} |
+ |
+ virtual scoped_ptr<InputStream> OpenInputStream( |
+ JNIEnv* env, |
+ net::URLRequest* request) { |
+ return make_scoped_ptr<InputStream>(NULL); |
+ } |
+}; |
+ |
class MockInputStreamReader : public InputStreamReader { |
public: |
MockInputStreamReader() : InputStreamReader(new NotImplInputStream()) {} |
@@ -155,8 +166,14 @@ class AndroidStreamReaderURLRequestJobTest : public Test { |
} |
void SetUpTestJob(scoped_ptr<InputStreamReader> stream_reader) { |
- scoped_ptr<AndroidStreamReaderURLRequestJob::Delegate> |
- stream_reader_delegate(new StreamReaderDelegate()); |
+ SetUpTestJob(stream_reader.Pass(), |
+ make_scoped_ptr(new StreamReaderDelegate()) |
+ .PassAs<AndroidStreamReaderURLRequestJob::Delegate>()); |
+ } |
+ |
+ void SetUpTestJob(scoped_ptr<InputStreamReader> stream_reader, |
+ scoped_ptr<AndroidStreamReaderURLRequestJob::Delegate> |
+ stream_reader_delegate) { |
TestStreamReaderJob* test_stream_reader_job = |
new TestStreamReaderJob( |
req_.get(), |
@@ -203,6 +220,21 @@ TEST_F(AndroidStreamReaderURLRequestJobTest, ReadEmptyStream) { |
EXPECT_FALSE(url_request_delegate_.request_failed()); |
EXPECT_EQ(1, network_delegate_.completed_requests()); |
+ EXPECT_EQ(200, req_->GetResponseCode()); |
+} |
+ |
+TEST_F(AndroidStreamReaderURLRequestJobTest, ReadWithNullStream) { |
+ SetUpTestJob(scoped_ptr<InputStreamReader>(), |
+ make_scoped_ptr(new NullStreamReaderDelegate()) |
+ .PassAs<AndroidStreamReaderURLRequestJob::Delegate>()); |
+ req_->Start(); |
+ |
+ // The TestDelegate will quit the message loop on request completion. |
+ MessageLoop::current()->Run(); |
+ |
+ EXPECT_FALSE(url_request_delegate_.request_failed()); |
+ EXPECT_EQ(1, network_delegate_.completed_requests()); |
+ EXPECT_EQ(404, req_->GetResponseCode()); |
} |
TEST_F(AndroidStreamReaderURLRequestJobTest, ReadPartOfStream) { |