| 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 df7931db662816aeb676ecc141ffbd258e752be1..027615cf5f750baf6a7c6a89de417b6ea906e207 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
|
| @@ -95,6 +95,17 @@ class StreamReaderDelegate :
|
| }
|
| };
|
|
|
| +class NullStreamReaderDelegate : public StreamReaderDelegate {
|
| + public:
|
| + NullStreamReaderDelegate() {}
|
| +
|
| + virtual scoped_ptr<InputStream> OpenInputStream(
|
| + JNIEnv* env,
|
| + const GURL& url) {
|
| + return make_scoped_ptr<InputStream>(NULL);
|
| + }
|
| +};
|
| +
|
| class MockInputStreamReader : public InputStreamReader {
|
| public:
|
| MockInputStreamReader() : InputStreamReader(new NotImplInputStream()) {}
|
| @@ -160,8 +171,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(),
|
| @@ -208,6 +225,26 @@ TEST_F(AndroidStreamReaderURLRequestJobTest, ReadEmptyStream) {
|
|
|
| EXPECT_FALSE(url_request_delegate_.request_failed());
|
| EXPECT_EQ(1, network_delegate_.completed_requests());
|
| + EXPECT_EQ(0, network_delegate_.error_count());
|
| + 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();
|
| +
|
| + // The request_failed() method is named confusingly but all it checks is
|
| + // whether the request got as far as calling NotifyHeadersComplete.
|
| + EXPECT_FALSE(url_request_delegate_.request_failed());
|
| + EXPECT_EQ(1, network_delegate_.completed_requests());
|
| + // A null input stream shouldn't result in an error. See crbug.com/180950.
|
| + EXPECT_EQ(0, network_delegate_.error_count());
|
| + EXPECT_EQ(404, req_->GetResponseCode());
|
| }
|
|
|
| TEST_F(AndroidStreamReaderURLRequestJobTest, ReadPartOfStream) {
|
| @@ -238,6 +275,7 @@ TEST_F(AndroidStreamReaderURLRequestJobTest, ReadPartOfStream) {
|
| EXPECT_FALSE(url_request_delegate_.request_failed());
|
| EXPECT_EQ(bytes_to_read, url_request_delegate_.bytes_received());
|
| EXPECT_EQ(1, network_delegate_.completed_requests());
|
| + EXPECT_EQ(0, network_delegate_.error_count());
|
| }
|
|
|
| TEST_F(AndroidStreamReaderURLRequestJobTest,
|
| @@ -268,6 +306,7 @@ TEST_F(AndroidStreamReaderURLRequestJobTest,
|
| EXPECT_FALSE(url_request_delegate_.request_failed());
|
| EXPECT_EQ(bytes_to_read, url_request_delegate_.bytes_received());
|
| EXPECT_EQ(1, network_delegate_.completed_requests());
|
| + EXPECT_EQ(0, network_delegate_.error_count());
|
| }
|
|
|
| TEST_F(AndroidStreamReaderURLRequestJobTest, DeleteJobMidWaySeek) {
|
|
|