| OLD | NEW |
| 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/url_request/url_request_ftp_job.h" | 5 #include "net/url_request/url_request_ftp_job.h" |
| 6 | 6 |
| 7 #include "base/memory/ref_counted.h" | 7 #include "base/memory/ref_counted.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/memory/scoped_vector.h" | 9 #include "base/memory/scoped_vector.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 }; | 116 }; |
| 117 | 117 |
| 118 // Fixture for priority-related tests. Priority matters when there is | 118 // Fixture for priority-related tests. Priority matters when there is |
| 119 // an HTTP proxy. | 119 // an HTTP proxy. |
| 120 class URLRequestFtpJobPriorityTest : public testing::Test { | 120 class URLRequestFtpJobPriorityTest : public testing::Test { |
| 121 protected: | 121 protected: |
| 122 URLRequestFtpJobPriorityTest() | 122 URLRequestFtpJobPriorityTest() |
| 123 : proxy_service_(new SimpleProxyConfigService, NULL, NULL), | 123 : proxy_service_(new SimpleProxyConfigService, NULL, NULL), |
| 124 req_(context_.CreateRequest(GURL("ftp://ftp.example.com"), | 124 req_(context_.CreateRequest(GURL("ftp://ftp.example.com"), |
| 125 DEFAULT_PRIORITY, | 125 DEFAULT_PRIORITY, |
| 126 &delegate_, | 126 &delegate_)) { |
| 127 NULL)) { | |
| 128 context_.set_proxy_service(&proxy_service_); | 127 context_.set_proxy_service(&proxy_service_); |
| 129 context_.set_http_transaction_factory(&network_layer_); | 128 context_.set_http_transaction_factory(&network_layer_); |
| 130 } | 129 } |
| 131 | 130 |
| 132 ProxyService proxy_service_; | 131 ProxyService proxy_service_; |
| 133 MockNetworkLayer network_layer_; | 132 MockNetworkLayer network_layer_; |
| 134 MockFtpTransactionFactory ftp_factory_; | 133 MockFtpTransactionFactory ftp_factory_; |
| 135 FtpAuthCache ftp_auth_cache_; | 134 FtpAuthCache ftp_auth_cache_; |
| 136 TestURLRequestContext context_; | 135 TestURLRequestContext context_; |
| 137 TestDelegate delegate_; | 136 TestDelegate delegate_; |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 MockRead reads[] = { | 257 MockRead reads[] = { |
| 259 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"), | 258 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"), |
| 260 MockRead(ASYNC, 2, "Content-Length: 9\r\n\r\n"), | 259 MockRead(ASYNC, 2, "Content-Length: 9\r\n\r\n"), |
| 261 MockRead(ASYNC, 3, "test.html"), | 260 MockRead(ASYNC, 3, "test.html"), |
| 262 }; | 261 }; |
| 263 | 262 |
| 264 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); | 263 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); |
| 265 | 264 |
| 266 TestDelegate request_delegate; | 265 TestDelegate request_delegate; |
| 267 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( | 266 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( |
| 268 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, | 267 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate)); |
| 269 &request_delegate, NULL)); | |
| 270 url_request->Start(); | 268 url_request->Start(); |
| 271 ASSERT_TRUE(url_request->is_pending()); | 269 ASSERT_TRUE(url_request->is_pending()); |
| 272 socket_data(0)->RunFor(4); | 270 socket_data(0)->RunFor(4); |
| 273 | 271 |
| 274 EXPECT_TRUE(url_request->status().is_success()); | 272 EXPECT_TRUE(url_request->status().is_success()); |
| 275 EXPECT_TRUE(url_request->proxy_server().Equals( | 273 EXPECT_TRUE(url_request->proxy_server().Equals( |
| 276 net::HostPortPair::FromString("localhost:80"))); | 274 net::HostPortPair::FromString("localhost:80"))); |
| 277 EXPECT_EQ(1, network_delegate()->completed_requests()); | 275 EXPECT_EQ(1, network_delegate()->completed_requests()); |
| 278 EXPECT_EQ(0, network_delegate()->error_count()); | 276 EXPECT_EQ(0, network_delegate()->error_count()); |
| 279 EXPECT_FALSE(request_delegate.auth_required_called()); | 277 EXPECT_FALSE(request_delegate.auth_required_called()); |
| 280 EXPECT_EQ("test.html", request_delegate.data_received()); | 278 EXPECT_EQ("test.html", request_delegate.data_received()); |
| 281 } | 279 } |
| 282 | 280 |
| 283 // Regression test for http://crbug.com/237526 . | 281 // Regression test for http://crbug.com/237526 . |
| 284 TEST_F(URLRequestFtpJobTest, FtpProxyRequestOrphanJob) { | 282 TEST_F(URLRequestFtpJobTest, FtpProxyRequestOrphanJob) { |
| 285 // Use a PAC URL so that URLRequestFtpJob's |pac_request_| field is non-NULL. | 283 // Use a PAC URL so that URLRequestFtpJob's |pac_request_| field is non-NULL. |
| 286 request_context()->set_proxy_service( | 284 request_context()->set_proxy_service( |
| 287 new ProxyService( | 285 new ProxyService( |
| 288 new ProxyConfigServiceFixed( | 286 new ProxyConfigServiceFixed( |
| 289 ProxyConfig::CreateFromCustomPacURL(GURL("http://foo"))), | 287 ProxyConfig::CreateFromCustomPacURL(GURL("http://foo"))), |
| 290 new MockAsyncProxyResolver, NULL)); | 288 new MockAsyncProxyResolver, NULL)); |
| 291 | 289 |
| 292 TestDelegate request_delegate; | 290 TestDelegate request_delegate; |
| 293 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( | 291 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( |
| 294 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate, | 292 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate)); |
| 295 NULL)); | |
| 296 url_request->Start(); | 293 url_request->Start(); |
| 297 | 294 |
| 298 // Now |url_request| will be deleted before its completion, | 295 // Now |url_request| will be deleted before its completion, |
| 299 // resulting in it being orphaned. It should not crash. | 296 // resulting in it being orphaned. It should not crash. |
| 300 } | 297 } |
| 301 | 298 |
| 302 TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedProxyAuthNoCredentials) { | 299 TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedProxyAuthNoCredentials) { |
| 303 MockWrite writes[] = { | 300 MockWrite writes[] = { |
| 304 MockWrite(ASYNC, 0, "GET ftp://ftp.example.com/ HTTP/1.1\r\n" | 301 MockWrite(ASYNC, 0, "GET ftp://ftp.example.com/ HTTP/1.1\r\n" |
| 305 "Host: ftp.example.com\r\n" | 302 "Host: ftp.example.com\r\n" |
| 306 "Proxy-Connection: keep-alive\r\n\r\n"), | 303 "Proxy-Connection: keep-alive\r\n\r\n"), |
| 307 }; | 304 }; |
| 308 MockRead reads[] = { | 305 MockRead reads[] = { |
| 309 // No credentials. | 306 // No credentials. |
| 310 MockRead(ASYNC, 1, "HTTP/1.1 407 Proxy Authentication Required\r\n"), | 307 MockRead(ASYNC, 1, "HTTP/1.1 407 Proxy Authentication Required\r\n"), |
| 311 MockRead(ASYNC, 2, "Proxy-Authenticate: Basic " | 308 MockRead(ASYNC, 2, "Proxy-Authenticate: Basic " |
| 312 "realm=\"MyRealm1\"\r\n"), | 309 "realm=\"MyRealm1\"\r\n"), |
| 313 MockRead(ASYNC, 3, "Content-Length: 9\r\n\r\n"), | 310 MockRead(ASYNC, 3, "Content-Length: 9\r\n\r\n"), |
| 314 MockRead(ASYNC, 4, "test.html"), | 311 MockRead(ASYNC, 4, "test.html"), |
| 315 }; | 312 }; |
| 316 | 313 |
| 317 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); | 314 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); |
| 318 | 315 |
| 319 TestDelegate request_delegate; | 316 TestDelegate request_delegate; |
| 320 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( | 317 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( |
| 321 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate, | 318 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate)); |
| 322 NULL)); | |
| 323 url_request->Start(); | 319 url_request->Start(); |
| 324 ASSERT_TRUE(url_request->is_pending()); | 320 ASSERT_TRUE(url_request->is_pending()); |
| 325 socket_data(0)->RunFor(5); | 321 socket_data(0)->RunFor(5); |
| 326 | 322 |
| 327 EXPECT_TRUE(url_request->status().is_success()); | 323 EXPECT_TRUE(url_request->status().is_success()); |
| 328 EXPECT_TRUE(url_request->proxy_server().Equals( | 324 EXPECT_TRUE(url_request->proxy_server().Equals( |
| 329 net::HostPortPair::FromString("localhost:80"))); | 325 net::HostPortPair::FromString("localhost:80"))); |
| 330 EXPECT_EQ(1, network_delegate()->completed_requests()); | 326 EXPECT_EQ(1, network_delegate()->completed_requests()); |
| 331 EXPECT_EQ(0, network_delegate()->error_count()); | 327 EXPECT_EQ(0, network_delegate()->error_count()); |
| 332 EXPECT_TRUE(request_delegate.auth_required_called()); | 328 EXPECT_TRUE(request_delegate.auth_required_called()); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 356 MockRead(ASYNC, 7, "Content-Length: 10\r\n\r\n"), | 352 MockRead(ASYNC, 7, "Content-Length: 10\r\n\r\n"), |
| 357 MockRead(ASYNC, 8, "test2.html"), | 353 MockRead(ASYNC, 8, "test2.html"), |
| 358 }; | 354 }; |
| 359 | 355 |
| 360 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); | 356 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); |
| 361 | 357 |
| 362 TestDelegate request_delegate; | 358 TestDelegate request_delegate; |
| 363 request_delegate.set_credentials( | 359 request_delegate.set_credentials( |
| 364 AuthCredentials(ASCIIToUTF16("myuser"), ASCIIToUTF16("mypass"))); | 360 AuthCredentials(ASCIIToUTF16("myuser"), ASCIIToUTF16("mypass"))); |
| 365 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( | 361 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( |
| 366 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate, | 362 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate)); |
| 367 NULL)); | |
| 368 url_request->Start(); | 363 url_request->Start(); |
| 369 ASSERT_TRUE(url_request->is_pending()); | 364 ASSERT_TRUE(url_request->is_pending()); |
| 370 socket_data(0)->RunFor(9); | 365 socket_data(0)->RunFor(9); |
| 371 | 366 |
| 372 EXPECT_TRUE(url_request->status().is_success()); | 367 EXPECT_TRUE(url_request->status().is_success()); |
| 373 EXPECT_EQ(1, network_delegate()->completed_requests()); | 368 EXPECT_EQ(1, network_delegate()->completed_requests()); |
| 374 EXPECT_EQ(0, network_delegate()->error_count()); | 369 EXPECT_EQ(0, network_delegate()->error_count()); |
| 375 EXPECT_TRUE(request_delegate.auth_required_called()); | 370 EXPECT_TRUE(request_delegate.auth_required_called()); |
| 376 EXPECT_EQ("test2.html", request_delegate.data_received()); | 371 EXPECT_EQ("test2.html", request_delegate.data_received()); |
| 377 } | 372 } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 388 MockRead(ASYNC, 2, "WWW-Authenticate: Basic " | 383 MockRead(ASYNC, 2, "WWW-Authenticate: Basic " |
| 389 "realm=\"MyRealm1\"\r\n"), | 384 "realm=\"MyRealm1\"\r\n"), |
| 390 MockRead(ASYNC, 3, "Content-Length: 9\r\n\r\n"), | 385 MockRead(ASYNC, 3, "Content-Length: 9\r\n\r\n"), |
| 391 MockRead(ASYNC, 4, "test.html"), | 386 MockRead(ASYNC, 4, "test.html"), |
| 392 }; | 387 }; |
| 393 | 388 |
| 394 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); | 389 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); |
| 395 | 390 |
| 396 TestDelegate request_delegate; | 391 TestDelegate request_delegate; |
| 397 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( | 392 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( |
| 398 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate, | 393 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate)); |
| 399 NULL)); | |
| 400 url_request->Start(); | 394 url_request->Start(); |
| 401 ASSERT_TRUE(url_request->is_pending()); | 395 ASSERT_TRUE(url_request->is_pending()); |
| 402 socket_data(0)->RunFor(5); | 396 socket_data(0)->RunFor(5); |
| 403 | 397 |
| 404 EXPECT_TRUE(url_request->status().is_success()); | 398 EXPECT_TRUE(url_request->status().is_success()); |
| 405 EXPECT_EQ(1, network_delegate()->completed_requests()); | 399 EXPECT_EQ(1, network_delegate()->completed_requests()); |
| 406 EXPECT_EQ(0, network_delegate()->error_count()); | 400 EXPECT_EQ(0, network_delegate()->error_count()); |
| 407 EXPECT_TRUE(request_delegate.auth_required_called()); | 401 EXPECT_TRUE(request_delegate.auth_required_called()); |
| 408 EXPECT_EQ("test.html", request_delegate.data_received()); | 402 EXPECT_EQ("test.html", request_delegate.data_received()); |
| 409 } | 403 } |
| (...skipping 21 matching lines...) Expand all Loading... |
| 431 MockRead(ASYNC, 7, "Content-Length: 10\r\n\r\n"), | 425 MockRead(ASYNC, 7, "Content-Length: 10\r\n\r\n"), |
| 432 MockRead(ASYNC, 8, "test2.html"), | 426 MockRead(ASYNC, 8, "test2.html"), |
| 433 }; | 427 }; |
| 434 | 428 |
| 435 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); | 429 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); |
| 436 | 430 |
| 437 TestDelegate request_delegate; | 431 TestDelegate request_delegate; |
| 438 request_delegate.set_credentials( | 432 request_delegate.set_credentials( |
| 439 AuthCredentials(ASCIIToUTF16("myuser"), ASCIIToUTF16("mypass"))); | 433 AuthCredentials(ASCIIToUTF16("myuser"), ASCIIToUTF16("mypass"))); |
| 440 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( | 434 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( |
| 441 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate, | 435 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate)); |
| 442 NULL)); | |
| 443 url_request->Start(); | 436 url_request->Start(); |
| 444 ASSERT_TRUE(url_request->is_pending()); | 437 ASSERT_TRUE(url_request->is_pending()); |
| 445 socket_data(0)->RunFor(9); | 438 socket_data(0)->RunFor(9); |
| 446 | 439 |
| 447 EXPECT_TRUE(url_request->status().is_success()); | 440 EXPECT_TRUE(url_request->status().is_success()); |
| 448 EXPECT_EQ(1, network_delegate()->completed_requests()); | 441 EXPECT_EQ(1, network_delegate()->completed_requests()); |
| 449 EXPECT_EQ(0, network_delegate()->error_count()); | 442 EXPECT_EQ(0, network_delegate()->error_count()); |
| 450 EXPECT_TRUE(request_delegate.auth_required_called()); | 443 EXPECT_TRUE(request_delegate.auth_required_called()); |
| 451 EXPECT_EQ("test2.html", request_delegate.data_received()); | 444 EXPECT_EQ("test2.html", request_delegate.data_received()); |
| 452 } | 445 } |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 496 // Make sure cached FTP credentials are not used for proxy authentication. | 489 // Make sure cached FTP credentials are not used for proxy authentication. |
| 497 request_context()->GetFtpAuthCache()->Add( | 490 request_context()->GetFtpAuthCache()->Add( |
| 498 url.GetOrigin(), | 491 url.GetOrigin(), |
| 499 AuthCredentials(ASCIIToUTF16("userdonotuse"), | 492 AuthCredentials(ASCIIToUTF16("userdonotuse"), |
| 500 ASCIIToUTF16("passworddonotuse"))); | 493 ASCIIToUTF16("passworddonotuse"))); |
| 501 | 494 |
| 502 TestDelegate request_delegate; | 495 TestDelegate request_delegate; |
| 503 request_delegate.set_credentials( | 496 request_delegate.set_credentials( |
| 504 AuthCredentials(ASCIIToUTF16("proxyuser"), ASCIIToUTF16("proxypass"))); | 497 AuthCredentials(ASCIIToUTF16("proxyuser"), ASCIIToUTF16("proxypass"))); |
| 505 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( | 498 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( |
| 506 url, DEFAULT_PRIORITY, &request_delegate, NULL)); | 499 url, DEFAULT_PRIORITY, &request_delegate)); |
| 507 url_request->Start(); | 500 url_request->Start(); |
| 508 ASSERT_TRUE(url_request->is_pending()); | 501 ASSERT_TRUE(url_request->is_pending()); |
| 509 socket_data(0)->RunFor(5); | 502 socket_data(0)->RunFor(5); |
| 510 | 503 |
| 511 request_delegate.set_credentials( | 504 request_delegate.set_credentials( |
| 512 AuthCredentials(ASCIIToUTF16("myuser"), ASCIIToUTF16("mypass"))); | 505 AuthCredentials(ASCIIToUTF16("myuser"), ASCIIToUTF16("mypass"))); |
| 513 socket_data(0)->RunFor(9); | 506 socket_data(0)->RunFor(9); |
| 514 | 507 |
| 515 EXPECT_TRUE(url_request->status().is_success()); | 508 EXPECT_TRUE(url_request->status().is_success()); |
| 516 EXPECT_EQ(1, network_delegate()->completed_requests()); | 509 EXPECT_EQ(1, network_delegate()->completed_requests()); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 529 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"), | 522 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"), |
| 530 MockRead(ASYNC, 2, "Content-Length: 9\r\n"), | 523 MockRead(ASYNC, 2, "Content-Length: 9\r\n"), |
| 531 MockRead(ASYNC, 3, "Set-Cookie: name=value\r\n\r\n"), | 524 MockRead(ASYNC, 3, "Set-Cookie: name=value\r\n\r\n"), |
| 532 MockRead(ASYNC, 4, "test.html"), | 525 MockRead(ASYNC, 4, "test.html"), |
| 533 }; | 526 }; |
| 534 | 527 |
| 535 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); | 528 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); |
| 536 | 529 |
| 537 TestDelegate request_delegate; | 530 TestDelegate request_delegate; |
| 538 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( | 531 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( |
| 539 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate, | 532 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate)); |
| 540 NULL)); | |
| 541 url_request->Start(); | 533 url_request->Start(); |
| 542 ASSERT_TRUE(url_request->is_pending()); | 534 ASSERT_TRUE(url_request->is_pending()); |
| 543 | 535 |
| 544 socket_data(0)->RunFor(5); | 536 socket_data(0)->RunFor(5); |
| 545 | 537 |
| 546 EXPECT_TRUE(url_request->status().is_success()); | 538 EXPECT_TRUE(url_request->status().is_success()); |
| 547 EXPECT_EQ(1, network_delegate()->completed_requests()); | 539 EXPECT_EQ(1, network_delegate()->completed_requests()); |
| 548 EXPECT_EQ(0, network_delegate()->error_count()); | 540 EXPECT_EQ(0, network_delegate()->error_count()); |
| 549 | 541 |
| 550 // Make sure we do not accept cookies. | 542 // Make sure we do not accept cookies. |
| (...skipping 11 matching lines...) Expand all Loading... |
| 562 }; | 554 }; |
| 563 MockRead reads[] = { | 555 MockRead reads[] = { |
| 564 MockRead(SYNCHRONOUS, 1, "HTTP/1.1 302 Found\r\n"), | 556 MockRead(SYNCHRONOUS, 1, "HTTP/1.1 302 Found\r\n"), |
| 565 MockRead(ASYNC, 2, "Location: http://other.example.com/\r\n\r\n"), | 557 MockRead(ASYNC, 2, "Location: http://other.example.com/\r\n\r\n"), |
| 566 }; | 558 }; |
| 567 | 559 |
| 568 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); | 560 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); |
| 569 | 561 |
| 570 TestDelegate request_delegate; | 562 TestDelegate request_delegate; |
| 571 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( | 563 scoped_ptr<URLRequest> url_request(request_context()->CreateRequest( |
| 572 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate, | 564 GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate)); |
| 573 NULL)); | |
| 574 url_request->Start(); | 565 url_request->Start(); |
| 575 EXPECT_TRUE(url_request->is_pending()); | 566 EXPECT_TRUE(url_request->is_pending()); |
| 576 | 567 |
| 577 base::MessageLoop::current()->RunUntilIdle(); | 568 base::MessageLoop::current()->RunUntilIdle(); |
| 578 | 569 |
| 579 EXPECT_TRUE(url_request->is_pending()); | 570 EXPECT_TRUE(url_request->is_pending()); |
| 580 EXPECT_EQ(0, request_delegate.response_started_count()); | 571 EXPECT_EQ(0, request_delegate.response_started_count()); |
| 581 EXPECT_EQ(0, network_delegate()->error_count()); | 572 EXPECT_EQ(0, network_delegate()->error_count()); |
| 582 ASSERT_TRUE(url_request->status().is_success()); | 573 ASSERT_TRUE(url_request->status().is_success()); |
| 583 | 574 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 605 MockRead(ASYNC, 3, "test1.html"), | 596 MockRead(ASYNC, 3, "test1.html"), |
| 606 MockRead(ASYNC, 5, "HTTP/1.1 200 OK\r\n"), | 597 MockRead(ASYNC, 5, "HTTP/1.1 200 OK\r\n"), |
| 607 MockRead(ASYNC, 6, "Content-Length: 10\r\n\r\n"), | 598 MockRead(ASYNC, 6, "Content-Length: 10\r\n\r\n"), |
| 608 MockRead(ASYNC, 7, "test2.html"), | 599 MockRead(ASYNC, 7, "test2.html"), |
| 609 }; | 600 }; |
| 610 | 601 |
| 611 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); | 602 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); |
| 612 | 603 |
| 613 TestDelegate request_delegate1; | 604 TestDelegate request_delegate1; |
| 614 | 605 |
| 615 scoped_ptr<URLRequest> url_request1(request_context()->CreateRequest( | 606 scoped_ptr<URLRequest> url_request1( |
| 616 GURL("ftp://ftp.example.com/first"), DEFAULT_PRIORITY, &request_delegate1, | 607 request_context()->CreateRequest(GURL("ftp://ftp.example.com/first"), |
| 617 NULL)); | 608 DEFAULT_PRIORITY, &request_delegate1)); |
| 618 url_request1->Start(); | 609 url_request1->Start(); |
| 619 ASSERT_TRUE(url_request1->is_pending()); | 610 ASSERT_TRUE(url_request1->is_pending()); |
| 620 socket_data(0)->RunFor(4); | 611 socket_data(0)->RunFor(4); |
| 621 | 612 |
| 622 EXPECT_TRUE(url_request1->status().is_success()); | 613 EXPECT_TRUE(url_request1->status().is_success()); |
| 623 EXPECT_TRUE(url_request1->proxy_server().Equals( | 614 EXPECT_TRUE(url_request1->proxy_server().Equals( |
| 624 net::HostPortPair::FromString("localhost:80"))); | 615 net::HostPortPair::FromString("localhost:80"))); |
| 625 EXPECT_EQ(1, network_delegate()->completed_requests()); | 616 EXPECT_EQ(1, network_delegate()->completed_requests()); |
| 626 EXPECT_EQ(0, network_delegate()->error_count()); | 617 EXPECT_EQ(0, network_delegate()->error_count()); |
| 627 EXPECT_FALSE(request_delegate1.auth_required_called()); | 618 EXPECT_FALSE(request_delegate1.auth_required_called()); |
| 628 EXPECT_EQ("test1.html", request_delegate1.data_received()); | 619 EXPECT_EQ("test1.html", request_delegate1.data_received()); |
| 629 | 620 |
| 630 TestDelegate request_delegate2; | 621 TestDelegate request_delegate2; |
| 631 scoped_ptr<URLRequest> url_request2(request_context()->CreateRequest( | 622 scoped_ptr<URLRequest> url_request2( |
| 632 GURL("ftp://ftp.example.com/second"), DEFAULT_PRIORITY, | 623 request_context()->CreateRequest(GURL("ftp://ftp.example.com/second"), |
| 633 &request_delegate2, NULL)); | 624 DEFAULT_PRIORITY, &request_delegate2)); |
| 634 url_request2->Start(); | 625 url_request2->Start(); |
| 635 ASSERT_TRUE(url_request2->is_pending()); | 626 ASSERT_TRUE(url_request2->is_pending()); |
| 636 socket_data(0)->RunFor(4); | 627 socket_data(0)->RunFor(4); |
| 637 | 628 |
| 638 EXPECT_TRUE(url_request2->status().is_success()); | 629 EXPECT_TRUE(url_request2->status().is_success()); |
| 639 EXPECT_EQ(2, network_delegate()->completed_requests()); | 630 EXPECT_EQ(2, network_delegate()->completed_requests()); |
| 640 EXPECT_EQ(0, network_delegate()->error_count()); | 631 EXPECT_EQ(0, network_delegate()->error_count()); |
| 641 EXPECT_FALSE(request_delegate2.auth_required_called()); | 632 EXPECT_FALSE(request_delegate2.auth_required_called()); |
| 642 EXPECT_EQ("test2.html", request_delegate2.data_received()); | 633 EXPECT_EQ("test2.html", request_delegate2.data_received()); |
| 643 } | 634 } |
| (...skipping 22 matching lines...) Expand all Loading... |
| 666 MockRead reads2[] = { | 657 MockRead reads2[] = { |
| 667 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"), | 658 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"), |
| 668 MockRead(ASYNC, 2, "Content-Length: 10\r\n\r\n"), | 659 MockRead(ASYNC, 2, "Content-Length: 10\r\n\r\n"), |
| 669 MockRead(ASYNC, 3, "test2.html"), | 660 MockRead(ASYNC, 3, "test2.html"), |
| 670 }; | 661 }; |
| 671 | 662 |
| 672 AddSocket(reads1, arraysize(reads1), writes1, arraysize(writes1)); | 663 AddSocket(reads1, arraysize(reads1), writes1, arraysize(writes1)); |
| 673 AddSocket(reads2, arraysize(reads2), writes2, arraysize(writes2)); | 664 AddSocket(reads2, arraysize(reads2), writes2, arraysize(writes2)); |
| 674 | 665 |
| 675 TestDelegate request_delegate1; | 666 TestDelegate request_delegate1; |
| 676 scoped_ptr<URLRequest> url_request1(request_context()->CreateRequest( | 667 scoped_ptr<URLRequest> url_request1( |
| 677 GURL("ftp://ftp.example.com/first"), DEFAULT_PRIORITY, | 668 request_context()->CreateRequest(GURL("ftp://ftp.example.com/first"), |
| 678 &request_delegate1, NULL)); | 669 DEFAULT_PRIORITY, &request_delegate1)); |
| 679 url_request1->Start(); | 670 url_request1->Start(); |
| 680 ASSERT_TRUE(url_request1->is_pending()); | 671 ASSERT_TRUE(url_request1->is_pending()); |
| 681 socket_data(0)->RunFor(4); | 672 socket_data(0)->RunFor(4); |
| 682 | 673 |
| 683 EXPECT_TRUE(url_request1->status().is_success()); | 674 EXPECT_TRUE(url_request1->status().is_success()); |
| 684 EXPECT_EQ(1, network_delegate()->completed_requests()); | 675 EXPECT_EQ(1, network_delegate()->completed_requests()); |
| 685 EXPECT_EQ(0, network_delegate()->error_count()); | 676 EXPECT_EQ(0, network_delegate()->error_count()); |
| 686 EXPECT_FALSE(request_delegate1.auth_required_called()); | 677 EXPECT_FALSE(request_delegate1.auth_required_called()); |
| 687 EXPECT_EQ("test1.html", request_delegate1.data_received()); | 678 EXPECT_EQ("test1.html", request_delegate1.data_received()); |
| 688 | 679 |
| 689 TestDelegate request_delegate2; | 680 TestDelegate request_delegate2; |
| 690 scoped_ptr<URLRequest> url_request2(request_context()->CreateRequest( | 681 scoped_ptr<URLRequest> url_request2( |
| 691 GURL("http://ftp.example.com/second"), DEFAULT_PRIORITY, | 682 request_context()->CreateRequest(GURL("http://ftp.example.com/second"), |
| 692 &request_delegate2, NULL)); | 683 DEFAULT_PRIORITY, &request_delegate2)); |
| 693 url_request2->Start(); | 684 url_request2->Start(); |
| 694 ASSERT_TRUE(url_request2->is_pending()); | 685 ASSERT_TRUE(url_request2->is_pending()); |
| 695 socket_data(1)->RunFor(4); | 686 socket_data(1)->RunFor(4); |
| 696 | 687 |
| 697 EXPECT_TRUE(url_request2->status().is_success()); | 688 EXPECT_TRUE(url_request2->status().is_success()); |
| 698 EXPECT_EQ(2, network_delegate()->completed_requests()); | 689 EXPECT_EQ(2, network_delegate()->completed_requests()); |
| 699 EXPECT_EQ(0, network_delegate()->error_count()); | 690 EXPECT_EQ(0, network_delegate()->error_count()); |
| 700 EXPECT_FALSE(request_delegate2.auth_required_called()); | 691 EXPECT_FALSE(request_delegate2.auth_required_called()); |
| 701 EXPECT_EQ("test2.html", request_delegate2.data_received()); | 692 EXPECT_EQ("test2.html", request_delegate2.data_received()); |
| 702 } | 693 } |
| 703 | 694 |
| 704 } // namespace | 695 } // namespace |
| 705 | 696 |
| 706 } // namespace net | 697 } // namespace net |
| OLD | NEW |