Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1823)

Unified Diff: android_webview/browser/net/android_stream_reader_url_request_job_unittest.cc

Issue 12531002: [android_webview] Make intercepted URLRequests have status codes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix unit test Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698