Index: net/http/http_stream_parser_unittest.cc |
diff --git a/net/http/http_stream_parser_unittest.cc b/net/http/http_stream_parser_unittest.cc |
index c7c198a164717aea990cf511e915f48fcb1e03be..72a02ee0af3f2f3e6ea8bdd4bad4e669199ed956 100644 |
--- a/net/http/http_stream_parser_unittest.cc |
+++ b/net/http/http_stream_parser_unittest.cc |
@@ -1070,22 +1070,11 @@ TEST(HttpStreamParser, Websocket101Response) { |
// Helper class for constructing HttpStreamParser and running GET requests. |
class SimpleGetRunner { |
public: |
- SimpleGetRunner() |
- : url_("http://localhost"), |
- http_09_on_non_default_ports_enabled_(false), |
- read_buffer_(new GrowableIOBuffer), |
- sequence_number_(0) { |
+ SimpleGetRunner() : read_buffer_(new GrowableIOBuffer), sequence_number_(0) { |
writes_.push_back(MockWrite( |
SYNCHRONOUS, sequence_number_++, "GET / HTTP/1.1\r\n\r\n")); |
} |
- void set_url(const GURL& url) { url_ = url; } |
- void set_http_09_on_non_default_ports_enabled( |
- bool http_09_on_non_default_ports_enabled) { |
- http_09_on_non_default_ports_enabled_ = |
- http_09_on_non_default_ports_enabled; |
- } |
- |
HttpStreamParser* parser() { return parser_.get(); } |
GrowableIOBuffer* read_buffer() { return read_buffer_.get(); } |
HttpResponseInfo* response_info() { return &response_info_; } |
@@ -1110,28 +1099,22 @@ class SimpleGetRunner { |
socket_handle_ = CreateConnectedSocketHandle(data_.get()); |
request_info_.method = "GET"; |
- request_info_.url = url_; |
+ request_info_.url = GURL("http://localhost"); |
request_info_.load_flags = LOAD_NORMAL; |
parser_.reset(new HttpStreamParser( |
socket_handle_.get(), &request_info_, read_buffer(), BoundNetLog())); |
- parser_->set_http_09_on_non_default_ports_enabled( |
- http_09_on_non_default_ports_enabled_); |
- |
TestCompletionCallback callback; |
ASSERT_EQ(OK, parser_->SendRequest("GET / HTTP/1.1\r\n", request_headers_, |
&response_info_, callback.callback())); |
} |
- void ReadHeadersExpectingError(Error error) { |
+ void ReadHeaders() { |
TestCompletionCallback callback; |
- EXPECT_THAT(parser_->ReadResponseHeaders(callback.callback()), |
- IsError(error)); |
+ EXPECT_THAT(parser_->ReadResponseHeaders(callback.callback()), IsOk()); |
} |
- void ReadHeaders() { ReadHeadersExpectingError(OK); } |
- |
void ReadBody(int user_buf_len, int* read_lengths) { |
TestCompletionCallback callback; |
scoped_refptr<IOBuffer> buffer = new IOBuffer(user_buf_len); |
@@ -1148,9 +1131,6 @@ class SimpleGetRunner { |
} |
private: |
- GURL url_; |
- bool http_09_on_non_default_ports_enabled_; |
- |
HttpRequestHeaders request_headers_; |
HttpResponseInfo response_info_; |
HttpRequestInfo request_info_; |
@@ -1163,81 +1143,21 @@ class SimpleGetRunner { |
int sequence_number_; |
}; |
-// Test that HTTP/0.9 works as expected, only on ports where it should be |
-// enabled. |
-TEST(HttpStreamParser, Http09PortTests) { |
- struct TestCase { |
- const char* url; |
- bool http_09_on_non_default_ports_enabled; |
- |
- // Expected result when trying to read headers. |
- Error expected_header_error; |
- }; |
- |
- const TestCase kTestCases[] = { |
- // Default ports should work for HTTP/0.9, regardless of whether the port |
- // is explicitly specified or not. |
- {"http://foo.com/", false, OK}, |
- {"http://foo.com:80/", false, OK}, |
- {"https://foo.com/", false, OK}, |
- {"https://foo.com:443/", false, OK}, |
- |
- // Non-standard ports should not support HTTP/0.9, by default. |
- {"http://foo.com:8080/", false, ERR_INVALID_HTTP_RESPONSE}, |
- {"https://foo.com:8080/", false, ERR_INVALID_HTTP_RESPONSE}, |
- {"http://foo.com:443/", false, ERR_INVALID_HTTP_RESPONSE}, |
- {"https://foo.com:80/", false, ERR_INVALID_HTTP_RESPONSE}, |
- |
- // Allowing non-default ports should not break the default ones. |
- {"http://foo.com/", true, OK}, |
- {"http://foo.com:80/", true, OK}, |
- {"https://foo.com/", true, OK}, |
- {"https://foo.com:443/", true, OK}, |
- |
- // Check that non-default ports works. |
- {"http://foo.com:8080/", true, OK}, |
- {"https://foo.com:8080/", true, OK}, |
- {"http://foo.com:443/", true, OK}, |
- {"https://foo.com:80/", true, OK}, |
- }; |
- |
+// Test that HTTP/0.9 response size is correctly calculated. |
+TEST(HttpStreamParser, ReceivedBytesNoHeaders) { |
std::string response = "hello\r\nworld\r\n"; |
- int response_size = response.size(); |
- for (const auto& test_case : kTestCases) { |
- SimpleGetRunner get_runner; |
- get_runner.set_url(GURL(test_case.url)); |
- get_runner.set_http_09_on_non_default_ports_enabled( |
- test_case.http_09_on_non_default_ports_enabled); |
- get_runner.AddRead(response); |
- get_runner.SetupParserAndSendRequest(); |
- |
- get_runner.ReadHeadersExpectingError(test_case.expected_header_error); |
- if (test_case.expected_header_error != OK) |
- continue; |
- |
- ASSERT_TRUE(get_runner.response_info()->headers); |
- EXPECT_EQ("HTTP/0.9 200 OK", |
- get_runner.response_info()->headers->GetStatusLine()); |
- |
- EXPECT_EQ(0, get_runner.parser()->received_bytes()); |
- int read_lengths[] = {response_size, 0}; |
- get_runner.ReadBody(response_size, read_lengths); |
- EXPECT_EQ(response_size, get_runner.parser()->received_bytes()); |
- EXPECT_EQ(HttpResponseInfo::CONNECTION_INFO_HTTP0_9, |
- get_runner.response_info()->connection_info); |
- } |
-} |
- |
-// Make sure that HTTP/0.9 isn't allowed in the truncated header case on a weird |
-// port. |
-TEST(HttpStreamParser, Http09TruncatedHeaderPortTest) { |
SimpleGetRunner get_runner; |
- get_runner.set_url(GURL("http://foo.com:8080/")); |
- get_runner.AddRead("HT"); |
+ get_runner.AddRead(response); |
get_runner.SetupParserAndSendRequest(); |
- |
- get_runner.ReadHeadersExpectingError(ERR_INVALID_HTTP_RESPONSE); |
+ get_runner.ReadHeaders(); |
+ EXPECT_EQ(0, get_runner.parser()->received_bytes()); |
+ int response_size = response.size(); |
+ int read_lengths[] = {response_size, 0}; |
+ get_runner.ReadBody(response_size, read_lengths); |
+ EXPECT_EQ(response_size, get_runner.parser()->received_bytes()); |
+ EXPECT_EQ(HttpResponseInfo::CONNECTION_INFO_HTTP0_9, |
+ get_runner.response_info()->connection_info); |
} |
// Test basic case where there is no keep-alive or extra data from the socket, |