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

Side by Side Diff: net/http/http_stream_parser_unittest.cc

Issue 2247003003: Revert HTTP/0.9 removal (https://codereview.chromium.org/2144803002/) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add back new error code Created 4 years, 4 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 unified diff | Download patch
« no previous file with comments | « net/http/http_stream_parser.cc ('k') | net/url_request/url_request_http_job_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/http/http_stream_parser.h" 5 #include "net/http/http_stream_parser.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 1109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1120 HttpRequestInfo request_info_; 1120 HttpRequestInfo request_info_;
1121 scoped_refptr<GrowableIOBuffer> read_buffer_; 1121 scoped_refptr<GrowableIOBuffer> read_buffer_;
1122 std::vector<MockRead> reads_; 1122 std::vector<MockRead> reads_;
1123 std::vector<MockWrite> writes_; 1123 std::vector<MockWrite> writes_;
1124 std::unique_ptr<ClientSocketHandle> socket_handle_; 1124 std::unique_ptr<ClientSocketHandle> socket_handle_;
1125 std::unique_ptr<SequencedSocketData> data_; 1125 std::unique_ptr<SequencedSocketData> data_;
1126 std::unique_ptr<HttpStreamParser> parser_; 1126 std::unique_ptr<HttpStreamParser> parser_;
1127 int sequence_number_; 1127 int sequence_number_;
1128 }; 1128 };
1129 1129
1130 // Test that HTTP/0.9 response correctly results in an error. 1130 // Test that HTTP/0.9 response size is correctly calculated.
1131 TEST(HttpStreamParser, ReceivedBytesNoHeaders) { 1131 TEST(HttpStreamParser, ReceivedBytesNoHeaders) {
1132 MockWrite writes[] = { 1132 std::string response = "hello\r\nworld\r\n";
1133 MockWrite(SYNCHRONOUS, 0, "GET / HTTP/1.1\r\n\r\n"),
1134 };
1135 1133
1136 MockRead reads[] = { 1134 SimpleGetRunner get_runner;
1137 MockRead(SYNCHRONOUS, 1, "hello\r\nworld\r\n"), 1135 get_runner.AddRead(response);
1138 MockRead(SYNCHRONOUS, OK, 2), 1136 get_runner.SetupParserAndSendRequest();
1139 }; 1137 get_runner.ReadHeaders();
1140 1138 EXPECT_EQ(0, get_runner.parser()->received_bytes());
1141 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); 1139 int response_size = response.size();
1142 std::unique_ptr<ClientSocketHandle> socket_handle = 1140 int read_lengths[] = {response_size, 0};
1143 CreateConnectedSocketHandle(&data); 1141 get_runner.ReadBody(response_size, read_lengths);
1144 1142 EXPECT_EQ(response_size, get_runner.parser()->received_bytes());
1145 HttpRequestInfo request; 1143 EXPECT_EQ(HttpResponseInfo::CONNECTION_INFO_HTTP0_9,
1146 request.method = "GET"; 1144 get_runner.response_info()->connection_info);
1147 request.url = GURL("http://localhost");
1148
1149 HttpStreamParser parser(socket_handle.get(), &request, new GrowableIOBuffer(),
1150 BoundNetLog());
1151
1152 HttpRequestHeaders headers;
1153 HttpResponseInfo response;
1154 TestCompletionCallback callback;
1155 int result = parser.SendRequest("GET / HTTP/1.1\r\n", headers, &response,
1156 callback.callback());
1157 EXPECT_THAT(callback.GetResult(result), IsOk());
1158 result = parser.ReadResponseHeaders(callback.callback());
1159 EXPECT_THAT(callback.GetResult(result), IsError(ERR_INVALID_HTTP_RESPONSE));
1160 } 1145 }
1161 1146
1162 // Test basic case where there is no keep-alive or extra data from the socket, 1147 // Test basic case where there is no keep-alive or extra data from the socket,
1163 // and the entire response is received in a single read. 1148 // and the entire response is received in a single read.
1164 TEST(HttpStreamParser, ReceivedBytesNormal) { 1149 TEST(HttpStreamParser, ReceivedBytesNormal) {
1165 std::string headers = 1150 std::string headers =
1166 "HTTP/1.0 200 OK\r\n" 1151 "HTTP/1.0 200 OK\r\n"
1167 "Content-Length: 7\r\n\r\n"; 1152 "Content-Length: 7\r\n\r\n";
1168 std::string body = "content"; 1153 std::string body = "content";
1169 std::string response = headers + body; 1154 std::string response = headers + body;
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
1423 ASSERT_EQ(kBodySize, parser.ReadResponseBody( 1408 ASSERT_EQ(kBodySize, parser.ReadResponseBody(
1424 body_buffer.get(), kBodySize, callback.callback())); 1409 body_buffer.get(), kBodySize, callback.callback()));
1425 1410
1426 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), parser.sent_bytes()); 1411 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), parser.sent_bytes());
1427 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), parser.received_bytes()); 1412 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), parser.received_bytes());
1428 } 1413 }
1429 1414
1430 } // namespace 1415 } // namespace
1431 1416
1432 } // namespace net 1417 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_stream_parser.cc ('k') | net/url_request/url_request_http_job_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698