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 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 request->Start(); | 142 request->Start(); |
143 ASSERT_TRUE(request->is_pending()); | 143 ASSERT_TRUE(request->is_pending()); |
144 base::RunLoop().Run(); | 144 base::RunLoop().Run(); |
145 | 145 |
146 EXPECT_TRUE(request->status().is_success()); | 146 EXPECT_TRUE(request->status().is_success()); |
147 EXPECT_EQ(12, request->received_response_content_length()); | 147 EXPECT_EQ(12, request->received_response_content_length()); |
148 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 148 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
149 request->GetTotalSentBytes()); | 149 request->GetTotalSentBytes()); |
150 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 150 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
151 request->GetTotalReceivedBytes()); | 151 request->GetTotalReceivedBytes()); |
| 152 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 153 network_delegate_.total_network_bytes_sent()); |
152 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 154 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
153 network_delegate_.total_network_bytes_received()); | 155 network_delegate_.total_network_bytes_received()); |
154 } | 156 } |
155 | 157 |
156 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 158 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
157 TestContentLengthSuccessfulHttp09Request) { | 159 TestContentLengthSuccessfulHttp09Request) { |
158 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; | 160 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; |
159 MockRead reads[] = {MockRead("Test Content"), | 161 MockRead reads[] = {MockRead("Test Content"), |
160 MockRead(net::SYNCHRONOUS, net::OK)}; | 162 MockRead(net::SYNCHRONOUS, net::OK)}; |
161 | 163 |
162 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); | 164 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); |
163 socket_factory_.AddSocketDataProvider(&socket_data); | 165 socket_factory_.AddSocketDataProvider(&socket_data); |
164 | 166 |
165 TestDelegate delegate; | 167 TestDelegate delegate; |
166 scoped_ptr<URLRequest> request = | 168 scoped_ptr<URLRequest> request = |
167 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, | 169 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, |
168 &delegate) | 170 &delegate) |
169 .Pass(); | 171 .Pass(); |
170 | 172 |
171 request->Start(); | 173 request->Start(); |
172 ASSERT_TRUE(request->is_pending()); | 174 ASSERT_TRUE(request->is_pending()); |
173 base::RunLoop().Run(); | 175 base::RunLoop().Run(); |
174 | 176 |
175 EXPECT_TRUE(request->status().is_success()); | 177 EXPECT_TRUE(request->status().is_success()); |
176 EXPECT_EQ(12, request->received_response_content_length()); | 178 EXPECT_EQ(12, request->received_response_content_length()); |
177 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 179 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
178 request->GetTotalSentBytes()); | 180 request->GetTotalSentBytes()); |
179 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 181 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
180 request->GetTotalReceivedBytes()); | 182 request->GetTotalReceivedBytes()); |
| 183 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 184 network_delegate_.total_network_bytes_sent()); |
181 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 185 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
182 network_delegate_.total_network_bytes_received()); | 186 network_delegate_.total_network_bytes_received()); |
183 } | 187 } |
184 | 188 |
185 TEST_F(URLRequestHttpJobWithMockSocketsTest, TestContentLengthFailedRequest) { | 189 TEST_F(URLRequestHttpJobWithMockSocketsTest, TestContentLengthFailedRequest) { |
186 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; | 190 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; |
187 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" | 191 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" |
188 "Content-Length: 20\r\n\r\n"), | 192 "Content-Length: 20\r\n\r\n"), |
189 MockRead("Test Content"), | 193 MockRead("Test Content"), |
190 MockRead(net::SYNCHRONOUS, net::ERR_FAILED)}; | 194 MockRead(net::SYNCHRONOUS, net::ERR_FAILED)}; |
(...skipping 11 matching lines...) Expand all Loading... |
202 request->Start(); | 206 request->Start(); |
203 ASSERT_TRUE(request->is_pending()); | 207 ASSERT_TRUE(request->is_pending()); |
204 base::RunLoop().Run(); | 208 base::RunLoop().Run(); |
205 | 209 |
206 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status()); | 210 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status()); |
207 EXPECT_EQ(12, request->received_response_content_length()); | 211 EXPECT_EQ(12, request->received_response_content_length()); |
208 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 212 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
209 request->GetTotalSentBytes()); | 213 request->GetTotalSentBytes()); |
210 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 214 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
211 request->GetTotalReceivedBytes()); | 215 request->GetTotalReceivedBytes()); |
| 216 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 217 network_delegate_.total_network_bytes_sent()); |
212 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 218 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
213 network_delegate_.total_network_bytes_received()); | 219 network_delegate_.total_network_bytes_received()); |
214 } | 220 } |
215 | 221 |
216 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 222 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
217 TestContentLengthCancelledRequest) { | 223 TestContentLengthCancelledRequest) { |
218 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; | 224 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; |
219 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" | 225 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" |
220 "Content-Length: 20\r\n\r\n"), | 226 "Content-Length: 20\r\n\r\n"), |
221 MockRead("Test Content"), | 227 MockRead("Test Content"), |
(...skipping 12 matching lines...) Expand all Loading... |
234 delegate.set_cancel_in_received_data(true); | 240 delegate.set_cancel_in_received_data(true); |
235 request->Start(); | 241 request->Start(); |
236 base::RunLoop().RunUntilIdle(); | 242 base::RunLoop().RunUntilIdle(); |
237 | 243 |
238 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); | 244 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); |
239 EXPECT_EQ(12, request->received_response_content_length()); | 245 EXPECT_EQ(12, request->received_response_content_length()); |
240 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 246 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
241 request->GetTotalSentBytes()); | 247 request->GetTotalSentBytes()); |
242 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 248 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
243 request->GetTotalReceivedBytes()); | 249 request->GetTotalReceivedBytes()); |
| 250 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 251 network_delegate_.total_network_bytes_sent()); |
244 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 252 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
245 network_delegate_.total_network_bytes_received()); | 253 network_delegate_.total_network_bytes_received()); |
246 } | 254 } |
247 | 255 |
248 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 256 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
249 TestNetworkBytesRedirectedRequest) { | 257 TestNetworkBytesRedirectedRequest) { |
250 MockWrite redirect_writes[] = { | 258 MockWrite redirect_writes[] = { |
251 MockWrite("GET / HTTP/1.1\r\n" | 259 MockWrite("GET / HTTP/1.1\r\n" |
252 "Host: www.redirect.com\r\n" | 260 "Host: www.redirect.com\r\n" |
253 "Connection: keep-alive\r\n" | 261 "Connection: keep-alive\r\n" |
(...skipping 30 matching lines...) Expand all Loading... |
284 base::RunLoop().RunUntilIdle(); | 292 base::RunLoop().RunUntilIdle(); |
285 | 293 |
286 EXPECT_TRUE(request->status().is_success()); | 294 EXPECT_TRUE(request->status().is_success()); |
287 EXPECT_EQ(12, request->received_response_content_length()); | 295 EXPECT_EQ(12, request->received_response_content_length()); |
288 // Should not include the redirect. | 296 // Should not include the redirect. |
289 EXPECT_EQ(CountWriteBytes(final_writes, arraysize(final_writes)), | 297 EXPECT_EQ(CountWriteBytes(final_writes, arraysize(final_writes)), |
290 request->GetTotalSentBytes()); | 298 request->GetTotalSentBytes()); |
291 EXPECT_EQ(CountReadBytes(final_reads, arraysize(final_reads)), | 299 EXPECT_EQ(CountReadBytes(final_reads, arraysize(final_reads)), |
292 request->GetTotalReceivedBytes()); | 300 request->GetTotalReceivedBytes()); |
293 // Should include the redirect as well as the final response. | 301 // Should include the redirect as well as the final response. |
| 302 EXPECT_EQ(CountWriteBytes(redirect_writes, arraysize(redirect_writes)) + |
| 303 CountWriteBytes(final_writes, arraysize(final_writes)), |
| 304 network_delegate_.total_network_bytes_sent()); |
294 EXPECT_EQ(CountReadBytes(redirect_reads, arraysize(redirect_reads)) + | 305 EXPECT_EQ(CountReadBytes(redirect_reads, arraysize(redirect_reads)) + |
295 CountReadBytes(final_reads, arraysize(final_reads)), | 306 CountReadBytes(final_reads, arraysize(final_reads)), |
296 network_delegate_.total_network_bytes_received()); | 307 network_delegate_.total_network_bytes_received()); |
297 } | 308 } |
298 | 309 |
299 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 310 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
300 TestNetworkBytesCancelledAfterHeaders) { | 311 TestNetworkBytesCancelledAfterHeaders) { |
301 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; | 312 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; |
302 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n\r\n")}; | 313 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n\r\n")}; |
303 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes, | 314 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes, |
304 arraysize(writes)); | 315 arraysize(writes)); |
305 socket_factory_.AddSocketDataProvider(&socket_data); | 316 socket_factory_.AddSocketDataProvider(&socket_data); |
306 | 317 |
307 TestDelegate delegate; | 318 TestDelegate delegate; |
308 scoped_ptr<URLRequest> request = | 319 scoped_ptr<URLRequest> request = |
309 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, | 320 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, |
310 &delegate) | 321 &delegate) |
311 .Pass(); | 322 .Pass(); |
312 | 323 |
313 delegate.set_cancel_in_response_started(true); | 324 delegate.set_cancel_in_response_started(true); |
314 request->Start(); | 325 request->Start(); |
315 base::RunLoop().RunUntilIdle(); | 326 base::RunLoop().RunUntilIdle(); |
316 | 327 |
317 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); | 328 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); |
318 EXPECT_EQ(0, request->received_response_content_length()); | 329 EXPECT_EQ(0, request->received_response_content_length()); |
319 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 330 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
320 request->GetTotalSentBytes()); | 331 request->GetTotalSentBytes()); |
321 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 332 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
322 request->GetTotalReceivedBytes()); | 333 request->GetTotalReceivedBytes()); |
| 334 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 335 network_delegate_.total_network_bytes_sent()); |
323 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 336 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
324 network_delegate_.total_network_bytes_received()); | 337 network_delegate_.total_network_bytes_received()); |
325 } | 338 } |
326 | 339 |
327 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 340 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
328 TestNetworkBytesCancelledImmediately) { | 341 TestNetworkBytesCancelledImmediately) { |
329 StaticSocketDataProvider socket_data(nullptr, 0, nullptr, 0); | 342 StaticSocketDataProvider socket_data(nullptr, 0, nullptr, 0); |
330 socket_factory_.AddSocketDataProvider(&socket_data); | 343 socket_factory_.AddSocketDataProvider(&socket_data); |
331 | 344 |
332 TestDelegate delegate; | 345 TestDelegate delegate; |
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
774 req_->SetLoadFlags(LOAD_DISABLE_CACHE); | 787 req_->SetLoadFlags(LOAD_DISABLE_CACHE); |
775 job->Start(); | 788 job->Start(); |
776 base::RunLoop().RunUntilIdle(); | 789 base::RunLoop().RunUntilIdle(); |
777 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status()); | 790 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status()); |
778 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called()); | 791 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called()); |
779 } | 792 } |
780 | 793 |
781 } // namespace | 794 } // namespace |
782 | 795 |
783 } // namespace net | 796 } // namespace net |
OLD | NEW |