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

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

Issue 284123004: [android_webview] Add more params to request intercepting. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix accidentally broken test Created 6 years, 6 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 f09b5c534327eca620272731a82e4543d4b272e7..e419dd1dfd64f179cef8aae00d051ac480b74814 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
@@ -12,6 +12,7 @@
#include "base/strings/stringprintf.h"
#include "net/base/request_priority.h"
#include "net/http/http_byte_range.h"
+#include "net/http/http_response_headers.h"
#include "net/url_request/url_request_job_factory_impl.h"
#include "net/url_request/url_request_test_util.h"
@@ -93,6 +94,12 @@ class StreamReaderDelegate :
std::string* charset) OVERRIDE {
return false;
}
+
+ virtual void AppendResponseHeaders(
+ JNIEnv* env,
+ net::HttpResponseHeaders* headers) OVERRIDE {
+ // no-op
+ }
};
class NullStreamReaderDelegate : public StreamReaderDelegate {
@@ -106,6 +113,34 @@ class NullStreamReaderDelegate : public StreamReaderDelegate {
}
};
+class HeaderAlteringStreamReaderDelegate : public NullStreamReaderDelegate {
+ public:
+ HeaderAlteringStreamReaderDelegate() {}
+
+ virtual void AppendResponseHeaders(
+ JNIEnv* env,
+ net::HttpResponseHeaders* headers) OVERRIDE {
+ headers->ReplaceStatusLine(kStatusLine);
+ std::string headerLine(kCustomHeaderName);
+ headerLine.append(": ");
+ headerLine.append(kCustomHeaderValue);
+ headers->AddHeader(headerLine);
+ }
+
+ static const int kResponseCode;
+ static const char* kStatusLine;
+ static const char* kCustomHeaderName;
+ static const char* kCustomHeaderValue;
+};
+
+const int HeaderAlteringStreamReaderDelegate::kResponseCode = 401;
+const char* HeaderAlteringStreamReaderDelegate::kStatusLine =
+ "HTTP/1.1 401 Gone";
+const char* HeaderAlteringStreamReaderDelegate::kCustomHeaderName =
+ "X-Test-Header";
+const char* HeaderAlteringStreamReaderDelegate::kCustomHeaderValue =
+ "TestHeaderValue";
+
class MockInputStreamReader : public InputStreamReader {
public:
MockInputStreamReader() : InputStreamReader(new NotImplInputStream()) {}
@@ -245,6 +280,35 @@ TEST_F(AndroidStreamReaderURLRequestJobTest, ReadWithNullStream) {
EXPECT_EQ(404, req_->GetResponseCode());
}
+TEST_F(AndroidStreamReaderURLRequestJobTest, ModifyHeadersAndStatus) {
+ SetUpTestJob(scoped_ptr<InputStreamReader>(),
+ make_scoped_ptr(new HeaderAlteringStreamReaderDelegate())
+ .PassAs<AndroidStreamReaderURLRequestJob::Delegate>());
+ req_->Start();
+
+ // The TestDelegate will quit the message loop on request completion.
+ base::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(HeaderAlteringStreamReaderDelegate::kResponseCode,
+ req_->GetResponseCode());
+ EXPECT_EQ(HeaderAlteringStreamReaderDelegate::kStatusLine,
+ req_->response_headers()->GetStatusLine());
+ EXPECT_TRUE(req_->response_headers()->HasHeader(
+ HeaderAlteringStreamReaderDelegate::kCustomHeaderName));
+ std::string header_value;
+ EXPECT_TRUE(req_->response_headers()->EnumerateHeader(
+ NULL, HeaderAlteringStreamReaderDelegate::kCustomHeaderName,
+ &header_value));
+ EXPECT_EQ(HeaderAlteringStreamReaderDelegate::kCustomHeaderValue,
+ header_value);
+}
+
TEST_F(AndroidStreamReaderURLRequestJobTest, ReadPartOfStream) {
const int bytes_available = 128;
const int offset = 32;
« no previous file with comments | « android_webview/browser/net/android_stream_reader_url_request_job.cc ('k') | android_webview/buildbot/aosp_manifest.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698