OLD | NEW |
---|---|
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/url_request/url_request_http_job.h" | 5 #include "net/url_request/url_request_http_job.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <cstddef> | 9 #include <cstddef> |
10 | 10 |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
128 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, | 128 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, |
129 &delegate) | 129 &delegate) |
130 .Pass(); | 130 .Pass(); |
131 | 131 |
132 request->Start(); | 132 request->Start(); |
133 ASSERT_TRUE(request->is_pending()); | 133 ASSERT_TRUE(request->is_pending()); |
134 base::RunLoop().Run(); | 134 base::RunLoop().Run(); |
135 | 135 |
136 EXPECT_TRUE(request->status().is_success()); | 136 EXPECT_TRUE(request->status().is_success()); |
137 EXPECT_EQ(12, request->received_response_content_length()); | 137 EXPECT_EQ(12, request->received_response_content_length()); |
138 EXPECT_EQ(137, request->GetTotalSentBytes()); | |
139 EXPECT_EQ(51, request->GetTotalReceivedBytes()); | |
mmenke
2015/09/04 15:21:49
Can't we just calculate the received bytes from th
sclittle
2015/09/04 22:03:10
Done.
| |
138 EXPECT_EQ(51, network_delegate_.total_network_bytes_received()); | 140 EXPECT_EQ(51, network_delegate_.total_network_bytes_received()); |
139 } | 141 } |
140 | 142 |
141 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 143 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
142 TestContentLengthSuccessfulHttp09Request) { | 144 TestContentLengthSuccessfulHttp09Request) { |
143 MockRead reads[] = {MockRead("Test Content"), | 145 MockRead reads[] = {MockRead("Test Content"), |
144 MockRead(net::SYNCHRONOUS, net::OK)}; | 146 MockRead(net::SYNCHRONOUS, net::OK)}; |
145 | 147 |
146 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); | 148 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); |
147 socket_factory_.AddSocketDataProvider(&socket_data); | 149 socket_factory_.AddSocketDataProvider(&socket_data); |
148 | 150 |
149 TestDelegate delegate; | 151 TestDelegate delegate; |
150 scoped_ptr<URLRequest> request = | 152 scoped_ptr<URLRequest> request = |
151 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, | 153 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, |
152 &delegate) | 154 &delegate) |
153 .Pass(); | 155 .Pass(); |
154 | 156 |
155 request->Start(); | 157 request->Start(); |
156 ASSERT_TRUE(request->is_pending()); | 158 ASSERT_TRUE(request->is_pending()); |
157 base::RunLoop().Run(); | 159 base::RunLoop().Run(); |
158 | 160 |
159 EXPECT_TRUE(request->status().is_success()); | 161 EXPECT_TRUE(request->status().is_success()); |
160 EXPECT_EQ(12, request->received_response_content_length()); | 162 EXPECT_EQ(12, request->received_response_content_length()); |
163 EXPECT_EQ(137, request->GetTotalSentBytes()); | |
164 EXPECT_EQ(12, request->GetTotalReceivedBytes()); | |
161 EXPECT_EQ(12, network_delegate_.total_network_bytes_received()); | 165 EXPECT_EQ(12, network_delegate_.total_network_bytes_received()); |
162 } | 166 } |
163 | 167 |
164 TEST_F(URLRequestHttpJobWithMockSocketsTest, TestContentLengthAbortedRequest) { | 168 TEST_F(URLRequestHttpJobWithMockSocketsTest, TestContentLengthAbortedRequest) { |
165 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" | 169 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" |
166 "Content-Length: 20\r\n\r\n"), | 170 "Content-Length: 20\r\n\r\n"), |
167 MockRead("Test Content"), | 171 MockRead("Test Content"), |
168 MockRead(net::SYNCHRONOUS, net::ERR_FAILED)}; | 172 MockRead(net::SYNCHRONOUS, net::ERR_FAILED)}; |
169 | 173 |
170 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); | 174 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); |
171 socket_factory_.AddSocketDataProvider(&socket_data); | 175 socket_factory_.AddSocketDataProvider(&socket_data); |
172 | 176 |
173 TestDelegate delegate; | 177 TestDelegate delegate; |
174 scoped_ptr<URLRequest> request = | 178 scoped_ptr<URLRequest> request = |
175 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, | 179 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, |
176 &delegate) | 180 &delegate) |
177 .Pass(); | 181 .Pass(); |
178 | 182 |
179 request->Start(); | 183 request->Start(); |
180 ASSERT_TRUE(request->is_pending()); | 184 ASSERT_TRUE(request->is_pending()); |
181 base::RunLoop().Run(); | 185 base::RunLoop().Run(); |
182 | 186 |
183 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status()); | 187 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status()); |
184 EXPECT_EQ(12, request->received_response_content_length()); | 188 EXPECT_EQ(12, request->received_response_content_length()); |
189 EXPECT_EQ(137, request->GetTotalSentBytes()); | |
190 EXPECT_EQ(51, request->GetTotalReceivedBytes()); | |
185 EXPECT_EQ(51, network_delegate_.total_network_bytes_received()); | 191 EXPECT_EQ(51, network_delegate_.total_network_bytes_received()); |
186 } | 192 } |
187 | 193 |
188 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 194 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
189 TestContentLengthCancelledRequest) { | 195 TestContentLengthCancelledRequest) { |
190 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" | 196 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" |
191 "Content-Length: 20\r\n\r\n"), | 197 "Content-Length: 20\r\n\r\n"), |
192 MockRead("Test Content"), | 198 MockRead("Test Content"), |
193 MockRead(net::SYNCHRONOUS, net::ERR_IO_PENDING)}; | 199 MockRead(net::SYNCHRONOUS, net::ERR_IO_PENDING)}; |
194 | 200 |
195 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); | 201 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); |
196 socket_factory_.AddSocketDataProvider(&socket_data); | 202 socket_factory_.AddSocketDataProvider(&socket_data); |
197 | 203 |
198 TestDelegate delegate; | 204 TestDelegate delegate; |
199 scoped_ptr<URLRequest> request = | 205 scoped_ptr<URLRequest> request = |
200 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, | 206 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, |
201 &delegate) | 207 &delegate) |
202 .Pass(); | 208 .Pass(); |
203 | 209 |
204 delegate.set_cancel_in_received_data(true); | 210 delegate.set_cancel_in_received_data(true); |
205 request->Start(); | 211 request->Start(); |
206 base::RunLoop().RunUntilIdle(); | 212 base::RunLoop().RunUntilIdle(); |
207 | 213 |
208 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); | 214 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); |
209 EXPECT_EQ(12, request->received_response_content_length()); | 215 EXPECT_EQ(12, request->received_response_content_length()); |
216 EXPECT_EQ(137, request->GetTotalSentBytes()); | |
217 EXPECT_EQ(51, request->GetTotalReceivedBytes()); | |
210 EXPECT_EQ(51, network_delegate_.total_network_bytes_received()); | 218 EXPECT_EQ(51, network_delegate_.total_network_bytes_received()); |
211 } | 219 } |
212 | 220 |
213 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 221 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
214 TestNetworkBytesRedirectedRequest) { | 222 TestNetworkBytesRedirectedRequest) { |
215 MockRead redirect_read( | 223 MockRead redirect_read( |
216 "HTTP/1.1 302 Found\r\n" | 224 "HTTP/1.1 302 Found\r\n" |
217 "Location: http://www.example.com\r\n\r\n"); | 225 "Location: http://www.example.com\r\n\r\n"); |
218 StaticSocketDataProvider redirect_socket_data(&redirect_read, 1, nullptr, 0); | 226 StaticSocketDataProvider redirect_socket_data(&redirect_read, 1, nullptr, 0); |
219 socket_factory_.AddSocketDataProvider(&redirect_socket_data); | 227 socket_factory_.AddSocketDataProvider(&redirect_socket_data); |
(...skipping 10 matching lines...) Expand all Loading... | |
230 context_->CreateRequest(GURL("http://www.redirect.com"), DEFAULT_PRIORITY, | 238 context_->CreateRequest(GURL("http://www.redirect.com"), DEFAULT_PRIORITY, |
231 &delegate) | 239 &delegate) |
232 .Pass(); | 240 .Pass(); |
233 | 241 |
234 request->Start(); | 242 request->Start(); |
235 ASSERT_TRUE(request->is_pending()); | 243 ASSERT_TRUE(request->is_pending()); |
236 base::RunLoop().RunUntilIdle(); | 244 base::RunLoop().RunUntilIdle(); |
237 | 245 |
238 EXPECT_TRUE(request->status().is_success()); | 246 EXPECT_TRUE(request->status().is_success()); |
239 EXPECT_EQ(12, request->received_response_content_length()); | 247 EXPECT_EQ(12, request->received_response_content_length()); |
248 EXPECT_EQ(137, request->GetTotalSentBytes()); | |
249 EXPECT_EQ(51, request->GetTotalReceivedBytes()); | |
mmenke
2015/09/04 15:21:49
Think these are worth a comment (Basically the opp
sclittle
2015/09/04 22:03:10
Done.
| |
250 // Should include the redirect as well as the final response. | |
240 EXPECT_EQ(107, network_delegate_.total_network_bytes_received()); | 251 EXPECT_EQ(107, network_delegate_.total_network_bytes_received()); |
mmenke
2015/09/04 15:21:49
We should do the same for bytes sent, to make sure
sclittle
2015/09/04 22:03:10
Yeah, that will come later in a separate CL when I
| |
241 } | 252 } |
242 | 253 |
243 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 254 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
244 TestNetworkBytesCancelledAfterHeaders) { | 255 TestNetworkBytesCancelledAfterHeaders) { |
245 MockRead read("HTTP/1.1 200 OK\r\n\r\n"); | 256 MockRead read("HTTP/1.1 200 OK\r\n\r\n"); |
246 StaticSocketDataProvider socket_data(&read, 1, nullptr, 0); | 257 StaticSocketDataProvider socket_data(&read, 1, nullptr, 0); |
247 socket_factory_.AddSocketDataProvider(&socket_data); | 258 socket_factory_.AddSocketDataProvider(&socket_data); |
248 | 259 |
249 TestDelegate delegate; | 260 TestDelegate delegate; |
250 scoped_ptr<URLRequest> request = | 261 scoped_ptr<URLRequest> request = |
251 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, | 262 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, |
252 &delegate) | 263 &delegate) |
253 .Pass(); | 264 .Pass(); |
254 | 265 |
255 delegate.set_cancel_in_response_started(true); | 266 delegate.set_cancel_in_response_started(true); |
256 request->Start(); | 267 request->Start(); |
257 base::RunLoop().RunUntilIdle(); | 268 base::RunLoop().RunUntilIdle(); |
258 | 269 |
259 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); | 270 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); |
271 EXPECT_EQ(0, request->received_response_content_length()); | |
272 EXPECT_EQ(137, request->GetTotalSentBytes()); | |
273 EXPECT_EQ(19, request->GetTotalReceivedBytes()); | |
260 EXPECT_EQ(19, network_delegate_.total_network_bytes_received()); | 274 EXPECT_EQ(19, network_delegate_.total_network_bytes_received()); |
261 } | 275 } |
262 | 276 |
263 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 277 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
264 TestNetworkBytesCancelledImmediately) { | 278 TestNetworkBytesCancelledImmediately) { |
265 StaticSocketDataProvider socket_data(nullptr, 0, nullptr, 0); | 279 StaticSocketDataProvider socket_data(nullptr, 0, nullptr, 0); |
266 socket_factory_.AddSocketDataProvider(&socket_data); | 280 socket_factory_.AddSocketDataProvider(&socket_data); |
267 | 281 |
268 TestDelegate delegate; | 282 TestDelegate delegate; |
269 scoped_ptr<URLRequest> request = | 283 scoped_ptr<URLRequest> request = |
270 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, | 284 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, |
271 &delegate) | 285 &delegate) |
272 .Pass(); | 286 .Pass(); |
273 | 287 |
274 request->Start(); | 288 request->Start(); |
275 request->Cancel(); | 289 request->Cancel(); |
276 base::RunLoop().RunUntilIdle(); | 290 base::RunLoop().RunUntilIdle(); |
277 | 291 |
278 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); | 292 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); |
293 EXPECT_EQ(0, request->received_response_content_length()); | |
294 EXPECT_EQ(0, request->GetTotalSentBytes()); | |
295 EXPECT_EQ(0, request->GetTotalReceivedBytes()); | |
279 EXPECT_EQ(0, network_delegate_.total_network_bytes_received()); | 296 EXPECT_EQ(0, network_delegate_.total_network_bytes_received()); |
280 } | 297 } |
281 | 298 |
282 TEST_F(URLRequestHttpJobWithMockSocketsTest, BackoffHeader) { | 299 TEST_F(URLRequestHttpJobWithMockSocketsTest, BackoffHeader) { |
283 MockWrite writes[] = {MockWrite( | 300 MockWrite writes[] = {MockWrite( |
284 "GET / HTTP/1.1\r\n" | 301 "GET / HTTP/1.1\r\n" |
285 "Host: www.example.com\r\n" | 302 "Host: www.example.com\r\n" |
286 "Connection: keep-alive\r\n" | 303 "Connection: keep-alive\r\n" |
287 "User-Agent:\r\n" | 304 "User-Agent:\r\n" |
288 "Accept-Encoding: gzip, deflate\r\n" | 305 "Accept-Encoding: gzip, deflate\r\n" |
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
665 req_->SetLoadFlags(LOAD_DISABLE_CACHE); | 682 req_->SetLoadFlags(LOAD_DISABLE_CACHE); |
666 job->Start(); | 683 job->Start(); |
667 base::RunLoop().RunUntilIdle(); | 684 base::RunLoop().RunUntilIdle(); |
668 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status()); | 685 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status()); |
669 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called()); | 686 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called()); |
670 } | 687 } |
671 | 688 |
672 } // namespace | 689 } // namespace |
673 | 690 |
674 } // namespace net | 691 } // namespace net |
OLD | NEW |