Chromium Code Reviews| 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 #include <memory> | 10 #include <memory> |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 260 request->GetTotalSentBytes()); | 260 request->GetTotalSentBytes()); |
| 261 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 261 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
| 262 request->GetTotalReceivedBytes()); | 262 request->GetTotalReceivedBytes()); |
| 263 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 263 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 264 network_delegate_.total_network_bytes_sent()); | 264 network_delegate_.total_network_bytes_sent()); |
| 265 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 265 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
| 266 network_delegate_.total_network_bytes_received()); | 266 network_delegate_.total_network_bytes_received()); |
| 267 } | 267 } |
| 268 | 268 |
| 269 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 269 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
| 270 TestRawHeaderSizeSuccessfullRequest) { | |
| 271 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; | |
| 272 | |
| 273 const std::string& response_header = | |
| 274 "HTTP/1.1 200 OK\r\n" | |
| 275 "Content-Length: 12\r\n\r\n"; | |
| 276 const std::string& content_data = "Test Content"; | |
| 277 | |
| 278 MockRead reads[] = {MockRead(response_header.c_str()), | |
| 279 MockRead(content_data.c_str()), | |
| 280 MockRead(net::SYNCHRONOUS, net::OK)}; | |
| 281 | |
| 282 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes, | |
| 283 arraysize(writes)); | |
| 284 socket_factory_.AddSocketDataProvider(&socket_data); | |
| 285 | |
| 286 TestDelegate delegate; | |
| 287 std::unique_ptr<URLRequest> request = context_->CreateRequest( | |
| 288 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); | |
| 289 | |
| 290 request->Start(); | |
| 291 ASSERT_TRUE(request->is_pending()); | |
| 292 base::RunLoop().Run(); | |
| 293 | |
| 294 EXPECT_TRUE(request->status().is_success()); | |
| 295 EXPECT_EQ((int)content_data.size(), | |
|
mmenke
2016/09/07 15:18:21
C-style casts are forbidden. static_casts. Goes
allada
2016/09/07 18:14:57
Done.
| |
| 296 request->received_response_content_length()); | |
| 297 EXPECT_EQ((int)response_header.size(), request->raw_header_size()); | |
| 298 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | |
| 299 request->GetTotalReceivedBytes()); | |
| 300 } | |
| 301 | |
| 302 TEST_F(URLRequestHttpJobWithMockSocketsTest, | |
| 303 TestRawHeaderSizeSuccessfull100ContinueRequest) { | |
| 304 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; | |
| 305 | |
| 306 const std::string& continue_header = "HTTP/1.1 100 Continue\r\n\r\n"; | |
| 307 const std::string& response_header = | |
| 308 "HTTP/1.1 200 OK\r\n" | |
| 309 "Content-Length: 12\r\n\r\n"; | |
| 310 const std::string& content_data = "Test Content"; | |
| 311 | |
| 312 MockRead reads[] = { | |
| 313 MockRead(continue_header.c_str()), MockRead(response_header.c_str()), | |
| 314 MockRead(content_data.c_str()), MockRead(net::SYNCHRONOUS, net::OK)}; | |
| 315 | |
| 316 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes, | |
| 317 arraysize(writes)); | |
| 318 socket_factory_.AddSocketDataProvider(&socket_data); | |
| 319 | |
| 320 TestDelegate delegate; | |
| 321 std::unique_ptr<URLRequest> request = context_->CreateRequest( | |
| 322 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); | |
| 323 | |
| 324 request->Start(); | |
| 325 ASSERT_TRUE(request->is_pending()); | |
| 326 base::RunLoop().Run(); | |
| 327 | |
| 328 EXPECT_TRUE(request->status().is_success()); | |
| 329 EXPECT_EQ((int)content_data.size(), | |
| 330 request->received_response_content_length()); | |
| 331 EXPECT_EQ((int)(continue_header.size() + response_header.size()), | |
| 332 request->raw_header_size()); | |
| 333 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | |
| 334 request->GetTotalReceivedBytes()); | |
| 335 } | |
| 336 | |
| 337 TEST_F(URLRequestHttpJobWithMockSocketsTest, | |
| 338 TestRawHeaderSizeFailureTruncatedHeaders) { | |
| 339 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; | |
| 340 MockRead reads[] = {MockRead("HTTP/1.0 200 OK\r\n" | |
| 341 "Content-Len"), | |
| 342 MockRead(net::SYNCHRONOUS, net::OK)}; | |
| 343 | |
| 344 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes, | |
| 345 arraysize(writes)); | |
| 346 socket_factory_.AddSocketDataProvider(&socket_data); | |
| 347 | |
| 348 TestDelegate delegate; | |
| 349 std::unique_ptr<URLRequest> request = context_->CreateRequest( | |
| 350 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); | |
| 351 | |
| 352 delegate.set_cancel_in_response_started(true); | |
| 353 request->Start(); | |
| 354 base::RunLoop().RunUntilIdle(); | |
| 355 | |
| 356 EXPECT_EQ(URLRequestStatus::SUCCESS, request->status().status()); | |
|
mmenke
2016/09/07 15:18:21
Sorry, I meant EXPECT_EQ(ERR_<whatever>, request->
allada
2016/09/07 18:14:57
Done.
| |
| 357 EXPECT_EQ(0, request->received_response_content_length()); | |
| 358 EXPECT_EQ(28, request->raw_header_size()); | |
| 359 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | |
| 360 request->GetTotalReceivedBytes()); | |
| 361 } | |
| 362 | |
| 363 TEST_F(URLRequestHttpJobWithMockSocketsTest, | |
| 364 TestRawHeaderSizeSuccessfullContinuiousRead) { | |
| 365 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; | |
| 366 const std::string& header_data = | |
| 367 "HTTP/1.1 200 OK\r\n" | |
| 368 "Content-Length: 12\r\n\r\n"; | |
| 369 const std::string& content_data = "Test Content"; | |
| 370 std::string single_read_content = header_data; | |
| 371 single_read_content.append(content_data); | |
| 372 MockRead reads[] = {MockRead(single_read_content.c_str())}; | |
| 373 | |
| 374 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes, | |
| 375 arraysize(writes)); | |
| 376 socket_factory_.AddSocketDataProvider(&socket_data); | |
| 377 | |
| 378 TestDelegate delegate; | |
| 379 std::unique_ptr<URLRequest> request = context_->CreateRequest( | |
| 380 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); | |
| 381 | |
| 382 request->Start(); | |
| 383 base::RunLoop().Run(); | |
| 384 | |
| 385 EXPECT_EQ(URLRequestStatus::SUCCESS, request->status().status()); | |
| 386 EXPECT_EQ((int)content_data.size(), | |
| 387 request->received_response_content_length()); | |
| 388 EXPECT_EQ((int)header_data.size(), request->raw_header_size()); | |
| 389 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | |
| 390 request->GetTotalReceivedBytes()); | |
| 391 } | |
| 392 | |
| 393 TEST_F(URLRequestHttpJobWithMockSocketsTest, | |
| 270 TestNetworkBytesRedirectedRequest) { | 394 TestNetworkBytesRedirectedRequest) { |
| 271 MockWrite redirect_writes[] = { | 395 MockWrite redirect_writes[] = { |
| 272 MockWrite("GET / HTTP/1.1\r\n" | 396 MockWrite("GET / HTTP/1.1\r\n" |
| 273 "Host: www.redirect.com\r\n" | 397 "Host: www.redirect.com\r\n" |
| 274 "Connection: keep-alive\r\n" | 398 "Connection: keep-alive\r\n" |
| 275 "User-Agent:\r\n" | 399 "User-Agent:\r\n" |
| 276 "Accept-Encoding: gzip, deflate\r\n" | 400 "Accept-Encoding: gzip, deflate\r\n" |
| 277 "Accept-Language: en-us,fr\r\n\r\n")}; | 401 "Accept-Language: en-us,fr\r\n\r\n")}; |
| 278 | 402 |
| 279 MockRead redirect_reads[] = { | 403 MockRead redirect_reads[] = { |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 295 socket_factory_.AddSocketDataProvider(&final_socket_data); | 419 socket_factory_.AddSocketDataProvider(&final_socket_data); |
| 296 | 420 |
| 297 TestDelegate delegate; | 421 TestDelegate delegate; |
| 298 std::unique_ptr<URLRequest> request = context_->CreateRequest( | 422 std::unique_ptr<URLRequest> request = context_->CreateRequest( |
| 299 GURL("http://www.redirect.com"), DEFAULT_PRIORITY, &delegate); | 423 GURL("http://www.redirect.com"), DEFAULT_PRIORITY, &delegate); |
| 300 | 424 |
| 301 request->Start(); | 425 request->Start(); |
| 302 ASSERT_TRUE(request->is_pending()); | 426 ASSERT_TRUE(request->is_pending()); |
| 303 base::RunLoop().RunUntilIdle(); | 427 base::RunLoop().RunUntilIdle(); |
| 304 | 428 |
| 305 EXPECT_TRUE(request->status().is_success()); | 429 EXPECT_EQ(URLRequestStatus::SUCCESS, request->status().status()); |
| 306 EXPECT_EQ(12, request->received_response_content_length()); | 430 EXPECT_EQ(12, request->received_response_content_length()); |
| 307 // Should not include the redirect. | 431 // Should not include the redirect. |
| 308 EXPECT_EQ(CountWriteBytes(final_writes, arraysize(final_writes)), | 432 EXPECT_EQ(CountWriteBytes(final_writes, arraysize(final_writes)), |
| 309 request->GetTotalSentBytes()); | 433 request->GetTotalSentBytes()); |
| 310 EXPECT_EQ(CountReadBytes(final_reads, arraysize(final_reads)), | 434 EXPECT_EQ(CountReadBytes(final_reads, arraysize(final_reads)), |
| 311 request->GetTotalReceivedBytes()); | 435 request->GetTotalReceivedBytes()); |
| 312 // Should include the redirect as well as the final response. | 436 // Should include the redirect as well as the final response. |
| 313 EXPECT_EQ(CountWriteBytes(redirect_writes, arraysize(redirect_writes)) + | 437 EXPECT_EQ(CountWriteBytes(redirect_writes, arraysize(redirect_writes)) + |
| 314 CountWriteBytes(final_writes, arraysize(final_writes)), | 438 CountWriteBytes(final_writes, arraysize(final_writes)), |
| 315 network_delegate_.total_network_bytes_sent()); | 439 network_delegate_.total_network_bytes_sent()); |
| (...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 818 base::RunLoop().RunUntilIdle(); | 942 base::RunLoop().RunUntilIdle(); |
| 819 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status()); | 943 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status()); |
| 820 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called()); | 944 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called()); |
| 821 } | 945 } |
| 822 | 946 |
| 823 #endif // defined(ENABLE_WEBSOCKETS) | 947 #endif // defined(ENABLE_WEBSOCKETS) |
| 824 | 948 |
| 825 } // namespace | 949 } // namespace |
| 826 | 950 |
| 827 } // namespace net | 951 } // namespace net |
| OLD | NEW |