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 |