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 "content/common/net/url_fetcher_impl.h" | 5 #include "content/common/net/url_fetcher_impl.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 // dispatches its requests to. When we wish to simulate being used from | 119 // dispatches its requests to. When we wish to simulate being used from |
120 // a UI thread, we dispatch a worker thread to do so. | 120 // a UI thread, we dispatch a worker thread to do so. |
121 MessageLoopForIO io_loop_; | 121 MessageLoopForIO io_loop_; |
122 scoped_refptr<base::MessageLoopProxy> io_message_loop_proxy_; | 122 scoped_refptr<base::MessageLoopProxy> io_message_loop_proxy_; |
123 | 123 |
124 URLFetcherImpl* fetcher_; | 124 URLFetcherImpl* fetcher_; |
125 const scoped_ptr<TestURLRequestContext> context_; | 125 const scoped_ptr<TestURLRequestContext> context_; |
126 }; | 126 }; |
127 | 127 |
128 void URLFetcherTest::CreateFetcher(const GURL& url) { | 128 void URLFetcherTest::CreateFetcher(const GURL& url) { |
129 fetcher_ = new URLFetcherImpl(url, content::URLFetcher::GET, this); | 129 fetcher_ = new URLFetcherImpl(url, net::URLFetcher::GET, this); |
130 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( | 130 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( |
131 io_message_loop_proxy(), request_context())); | 131 io_message_loop_proxy(), request_context())); |
132 fetcher_->Start(); | 132 fetcher_->Start(); |
133 } | 133 } |
134 | 134 |
135 void URLFetcherTest::OnURLFetchComplete(const net::URLFetcher* source) { | 135 void URLFetcherTest::OnURLFetchComplete(const net::URLFetcher* source) { |
136 EXPECT_TRUE(source->GetStatus().is_success()); | 136 EXPECT_TRUE(source->GetStatus().is_success()); |
137 EXPECT_EQ(200, source->GetResponseCode()); // HTTP OK | 137 EXPECT_EQ(200, source->GetResponseCode()); // HTTP OK |
138 | 138 |
139 std::string data; | 139 std::string data; |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 // the URLFetcher should own the temp file, so that we can test | 357 // the URLFetcher should own the temp file, so that we can test |
358 // disowning prevents the file from being deleted. | 358 // disowning prevents the file from being deleted. |
359 bool take_ownership_of_file_; | 359 bool take_ownership_of_file_; |
360 | 360 |
361 // Expected file error code for the test. | 361 // Expected file error code for the test. |
362 // PLATFORM_FILE_OK when expecting success. | 362 // PLATFORM_FILE_OK when expecting success. |
363 base::PlatformFileError expected_file_error_; | 363 base::PlatformFileError expected_file_error_; |
364 }; | 364 }; |
365 | 365 |
366 void URLFetcherPostTest::CreateFetcher(const GURL& url) { | 366 void URLFetcherPostTest::CreateFetcher(const GURL& url) { |
367 fetcher_ = new URLFetcherImpl(url, content::URLFetcher::POST, this); | 367 fetcher_ = new URLFetcherImpl(url, net::URLFetcher::POST, this); |
368 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( | 368 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( |
369 io_message_loop_proxy(), request_context())); | 369 io_message_loop_proxy(), request_context())); |
370 fetcher_->SetUploadData("application/x-www-form-urlencoded", | 370 fetcher_->SetUploadData("application/x-www-form-urlencoded", |
371 "bobsyeruncle"); | 371 "bobsyeruncle"); |
372 fetcher_->Start(); | 372 fetcher_->Start(); |
373 } | 373 } |
374 | 374 |
375 void URLFetcherPostTest::OnURLFetchComplete(const net::URLFetcher* source) { | 375 void URLFetcherPostTest::OnURLFetchComplete(const net::URLFetcher* source) { |
376 std::string data; | 376 std::string data; |
377 EXPECT_TRUE(source->GetResponseAsString(&data)); | 377 EXPECT_TRUE(source->GetResponseAsString(&data)); |
378 EXPECT_EQ(std::string("bobsyeruncle"), data); | 378 EXPECT_EQ(std::string("bobsyeruncle"), data); |
379 URLFetcherTest::OnURLFetchComplete(source); | 379 URLFetcherTest::OnURLFetchComplete(source); |
380 } | 380 } |
381 | 381 |
382 void URLFetcherDownloadProgressTest::CreateFetcher(const GURL& url) { | 382 void URLFetcherDownloadProgressTest::CreateFetcher(const GURL& url) { |
383 fetcher_ = new URLFetcherImpl(url, content::URLFetcher::GET, this); | 383 fetcher_ = new URLFetcherImpl(url, net::URLFetcher::GET, this); |
384 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( | 384 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( |
385 io_message_loop_proxy(), request_context())); | 385 io_message_loop_proxy(), request_context())); |
386 previous_progress_ = 0; | 386 previous_progress_ = 0; |
387 fetcher_->Start(); | 387 fetcher_->Start(); |
388 } | 388 } |
389 | 389 |
390 void URLFetcherDownloadProgressTest::OnURLFetchDownloadProgress( | 390 void URLFetcherDownloadProgressTest::OnURLFetchDownloadProgress( |
391 const net::URLFetcher* source, int64 current, int64 total) { | 391 const net::URLFetcher* source, int64 current, int64 total) { |
392 // Increasing between 0 and total. | 392 // Increasing between 0 and total. |
393 EXPECT_LE(0, current); | 393 EXPECT_LE(0, current); |
394 EXPECT_GE(total, current); | 394 EXPECT_GE(total, current); |
395 EXPECT_LE(previous_progress_, current); | 395 EXPECT_LE(previous_progress_, current); |
396 previous_progress_ = current; | 396 previous_progress_ = current; |
397 EXPECT_EQ(expected_total_, total); | 397 EXPECT_EQ(expected_total_, total); |
398 } | 398 } |
399 | 399 |
400 void URLFetcherDownloadProgressCancelTest::CreateFetcher(const GURL& url) { | 400 void URLFetcherDownloadProgressCancelTest::CreateFetcher(const GURL& url) { |
401 fetcher_ = new URLFetcherImpl(url, content::URLFetcher::GET, this); | 401 fetcher_ = new URLFetcherImpl(url, net::URLFetcher::GET, this); |
402 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( | 402 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( |
403 io_message_loop_proxy(), request_context())); | 403 io_message_loop_proxy(), request_context())); |
404 cancelled_ = false; | 404 cancelled_ = false; |
405 fetcher_->Start(); | 405 fetcher_->Start(); |
406 } | 406 } |
407 | 407 |
408 void URLFetcherDownloadProgressCancelTest::OnURLFetchDownloadProgress( | 408 void URLFetcherDownloadProgressCancelTest::OnURLFetchDownloadProgress( |
409 const net::URLFetcher* source, int64 current, int64 total) { | 409 const net::URLFetcher* source, int64 current, int64 total) { |
410 EXPECT_FALSE(cancelled_); | 410 EXPECT_FALSE(cancelled_); |
411 if (!cancelled_) { | 411 if (!cancelled_) { |
412 delete fetcher_; | 412 delete fetcher_; |
413 cancelled_ = true; | 413 cancelled_ = true; |
414 io_message_loop_proxy()->PostTask(FROM_HERE, MessageLoop::QuitClosure()); | 414 io_message_loop_proxy()->PostTask(FROM_HERE, MessageLoop::QuitClosure()); |
415 } | 415 } |
416 } | 416 } |
417 | 417 |
418 void URLFetcherDownloadProgressCancelTest::OnURLFetchComplete( | 418 void URLFetcherDownloadProgressCancelTest::OnURLFetchComplete( |
419 const net::URLFetcher* source) { | 419 const net::URLFetcher* source) { |
420 // Should have been cancelled. | 420 // Should have been cancelled. |
421 ADD_FAILURE(); | 421 ADD_FAILURE(); |
422 delete fetcher_; | 422 delete fetcher_; |
423 io_message_loop_proxy()->PostTask(FROM_HERE, MessageLoop::QuitClosure()); | 423 io_message_loop_proxy()->PostTask(FROM_HERE, MessageLoop::QuitClosure()); |
424 } | 424 } |
425 | 425 |
426 void URLFetcherUploadProgressTest::CreateFetcher(const GURL& url) { | 426 void URLFetcherUploadProgressTest::CreateFetcher(const GURL& url) { |
427 fetcher_ = new URLFetcherImpl(url, content::URLFetcher::POST, this); | 427 fetcher_ = new URLFetcherImpl(url, net::URLFetcher::POST, this); |
428 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( | 428 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( |
429 io_message_loop_proxy(), request_context())); | 429 io_message_loop_proxy(), request_context())); |
430 previous_progress_ = 0; | 430 previous_progress_ = 0; |
431 // Large enough data to require more than one read from UploadDataStream. | 431 // Large enough data to require more than one read from UploadDataStream. |
432 chunk_.assign(1<<16, 'a'); | 432 chunk_.assign(1<<16, 'a'); |
433 // Use chunked upload to wait for a timer event of progress notification. | 433 // Use chunked upload to wait for a timer event of progress notification. |
434 fetcher_->SetChunkedUpload("application/x-www-form-urlencoded"); | 434 fetcher_->SetChunkedUpload("application/x-www-form-urlencoded"); |
435 fetcher_->Start(); | 435 fetcher_->Start(); |
436 number_of_chunks_added_ = 1; | 436 number_of_chunks_added_ = 1; |
437 fetcher_->AppendChunkToUpload(chunk_, false); | 437 fetcher_->AppendChunkToUpload(chunk_, false); |
(...skipping 25 matching lines...) Expand all Loading... |
463 } | 463 } |
464 | 464 |
465 void URLFetcherSocketAddressTest::OnURLFetchComplete( | 465 void URLFetcherSocketAddressTest::OnURLFetchComplete( |
466 const net::URLFetcher* source) { | 466 const net::URLFetcher* source) { |
467 EXPECT_EQ("127.0.0.1", source->GetSocketAddress().host()); | 467 EXPECT_EQ("127.0.0.1", source->GetSocketAddress().host()); |
468 EXPECT_EQ(expected_port_, source->GetSocketAddress().port()); | 468 EXPECT_EQ(expected_port_, source->GetSocketAddress().port()); |
469 URLFetcherTest::OnURLFetchComplete(source); | 469 URLFetcherTest::OnURLFetchComplete(source); |
470 } | 470 } |
471 | 471 |
472 void URLFetcherProtectTest::CreateFetcher(const GURL& url) { | 472 void URLFetcherProtectTest::CreateFetcher(const GURL& url) { |
473 fetcher_ = new URLFetcherImpl(url, content::URLFetcher::GET, this); | 473 fetcher_ = new URLFetcherImpl(url, net::URLFetcher::GET, this); |
474 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( | 474 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( |
475 io_message_loop_proxy(), request_context())); | 475 io_message_loop_proxy(), request_context())); |
476 start_time_ = Time::Now(); | 476 start_time_ = Time::Now(); |
477 fetcher_->SetMaxRetries(11); | 477 fetcher_->SetMaxRetries(11); |
478 fetcher_->Start(); | 478 fetcher_->Start(); |
479 } | 479 } |
480 | 480 |
481 void URLFetcherProtectTest::OnURLFetchComplete( | 481 void URLFetcherProtectTest::OnURLFetchComplete( |
482 const net::URLFetcher* source) { | 482 const net::URLFetcher* source) { |
483 const TimeDelta one_second = TimeDelta::FromMilliseconds(1000); | 483 const TimeDelta one_second = TimeDelta::FromMilliseconds(1000); |
(...skipping 19 matching lines...) Expand all Loading... |
503 } else { | 503 } else { |
504 // We have already sent 20 requests continuously. And we expect that | 504 // We have already sent 20 requests continuously. And we expect that |
505 // it takes more than 1 second due to the overload protection settings. | 505 // it takes more than 1 second due to the overload protection settings. |
506 EXPECT_TRUE(Time::Now() - start_time_ >= one_second); | 506 EXPECT_TRUE(Time::Now() - start_time_ >= one_second); |
507 URLFetcherTest::OnURLFetchComplete(source); | 507 URLFetcherTest::OnURLFetchComplete(source); |
508 } | 508 } |
509 } | 509 } |
510 } | 510 } |
511 | 511 |
512 void URLFetcherProtectTestPassedThrough::CreateFetcher(const GURL& url) { | 512 void URLFetcherProtectTestPassedThrough::CreateFetcher(const GURL& url) { |
513 fetcher_ = new URLFetcherImpl(url, content::URLFetcher::GET, this); | 513 fetcher_ = new URLFetcherImpl(url, net::URLFetcher::GET, this); |
514 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( | 514 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( |
515 io_message_loop_proxy(), request_context())); | 515 io_message_loop_proxy(), request_context())); |
516 fetcher_->SetAutomaticallyRetryOn5xx(false); | 516 fetcher_->SetAutomaticallyRetryOn5xx(false); |
517 start_time_ = Time::Now(); | 517 start_time_ = Time::Now(); |
518 fetcher_->SetMaxRetries(11); | 518 fetcher_->SetMaxRetries(11); |
519 fetcher_->Start(); | 519 fetcher_->Start(); |
520 } | 520 } |
521 | 521 |
522 void URLFetcherProtectTestPassedThrough::OnURLFetchComplete( | 522 void URLFetcherProtectTestPassedThrough::OnURLFetchComplete( |
523 const net::URLFetcher* source) { | 523 const net::URLFetcher* source) { |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
566 std::string data; | 566 std::string data; |
567 EXPECT_TRUE(source->GetResponseAsString(&data)); | 567 EXPECT_TRUE(source->GetResponseAsString(&data)); |
568 EXPECT_TRUE(data.empty()); | 568 EXPECT_TRUE(data.empty()); |
569 | 569 |
570 // The rest is the same as URLFetcherTest::OnURLFetchComplete. | 570 // The rest is the same as URLFetcherTest::OnURLFetchComplete. |
571 delete fetcher_; | 571 delete fetcher_; |
572 io_message_loop_proxy()->PostTask(FROM_HERE, MessageLoop::QuitClosure()); | 572 io_message_loop_proxy()->PostTask(FROM_HERE, MessageLoop::QuitClosure()); |
573 } | 573 } |
574 | 574 |
575 void URLFetcherCancelTest::CreateFetcher(const GURL& url) { | 575 void URLFetcherCancelTest::CreateFetcher(const GURL& url) { |
576 fetcher_ = new URLFetcherImpl(url, content::URLFetcher::GET, this); | 576 fetcher_ = new URLFetcherImpl(url, net::URLFetcher::GET, this); |
577 CancelTestURLRequestContextGetter* context_getter = | 577 CancelTestURLRequestContextGetter* context_getter = |
578 new CancelTestURLRequestContextGetter(io_message_loop_proxy(), | 578 new CancelTestURLRequestContextGetter(io_message_loop_proxy(), |
579 url); | 579 url); |
580 fetcher_->SetRequestContext(context_getter); | 580 fetcher_->SetRequestContext(context_getter); |
581 fetcher_->SetMaxRetries(2); | 581 fetcher_->SetMaxRetries(2); |
582 fetcher_->Start(); | 582 fetcher_->Start(); |
583 // We need to wait for the creation of the net::URLRequestContext, since we | 583 // We need to wait for the creation of the net::URLRequestContext, since we |
584 // rely on it being destroyed as a signal to end the test. | 584 // rely on it being destroyed as a signal to end the test. |
585 context_getter->WaitForContextCreation(); | 585 context_getter->WaitForContextCreation(); |
586 CancelRequest(); | 586 CancelRequest(); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
620 // same thread that CreateFetcher() did. | 620 // same thread that CreateFetcher() did. |
621 | 621 |
622 io_message_loop_proxy()->PostTask(FROM_HERE, MessageLoop::QuitClosure()); | 622 io_message_loop_proxy()->PostTask(FROM_HERE, MessageLoop::QuitClosure()); |
623 // If the current message loop is not the IO loop, it will be shut down when | 623 // If the current message loop is not the IO loop, it will be shut down when |
624 // the main loop returns and this thread subsequently goes out of scope. | 624 // the main loop returns and this thread subsequently goes out of scope. |
625 } | 625 } |
626 } | 626 } |
627 | 627 |
628 void URLFetcherFileTest::CreateFetcherForFile(const GURL& url, | 628 void URLFetcherFileTest::CreateFetcherForFile(const GURL& url, |
629 const FilePath& file_path) { | 629 const FilePath& file_path) { |
630 fetcher_ = new URLFetcherImpl(url, content::URLFetcher::GET, this); | 630 fetcher_ = new URLFetcherImpl(url, net::URLFetcher::GET, this); |
631 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( | 631 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( |
632 io_message_loop_proxy(), request_context())); | 632 io_message_loop_proxy(), request_context())); |
633 | 633 |
634 // Use the IO message loop to do the file operations in this test. | 634 // Use the IO message loop to do the file operations in this test. |
635 fetcher_->SaveResponseToFileAtPath(file_path, io_message_loop_proxy()); | 635 fetcher_->SaveResponseToFileAtPath(file_path, io_message_loop_proxy()); |
636 fetcher_->Start(); | 636 fetcher_->Start(); |
637 } | 637 } |
638 | 638 |
639 void URLFetcherFileTest::CreateFetcherForTempFile(const GURL& url) { | 639 void URLFetcherFileTest::CreateFetcherForTempFile(const GURL& url) { |
640 fetcher_ = new URLFetcherImpl(url, content::URLFetcher::GET, this); | 640 fetcher_ = new URLFetcherImpl(url, net::URLFetcher::GET, this); |
641 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( | 641 fetcher_->SetRequestContext(new ThrottlingTestURLRequestContextGetter( |
642 io_message_loop_proxy(), request_context())); | 642 io_message_loop_proxy(), request_context())); |
643 | 643 |
644 // Use the IO message loop to do the file operations in this test. | 644 // Use the IO message loop to do the file operations in this test. |
645 fetcher_->SaveResponseToTemporaryFile(io_message_loop_proxy()); | 645 fetcher_->SaveResponseToTemporaryFile(io_message_loop_proxy()); |
646 fetcher_->Start(); | 646 fetcher_->Start(); |
647 } | 647 } |
648 | 648 |
649 void URLFetcherFileTest::OnURLFetchComplete(const net::URLFetcher* source) { | 649 void URLFetcherFileTest::OnURLFetchComplete(const net::URLFetcher* source) { |
650 if (expected_file_error_ == base::PLATFORM_FILE_OK) { | 650 if (expected_file_error_ == base::PLATFORM_FILE_OK) { |
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1146 std::string(kTestServerFilePrefix) + kFileToFetch)); | 1146 std::string(kTestServerFilePrefix) + kFileToFetch)); |
1147 | 1147 |
1148 MessageLoop::current()->Run(); // OnURLFetchComplete() will Quit(). | 1148 MessageLoop::current()->Run(); // OnURLFetchComplete() will Quit(). |
1149 | 1149 |
1150 MessageLoop::current()->RunAllPending(); | 1150 MessageLoop::current()->RunAllPending(); |
1151 ASSERT_FALSE(file_util::PathExists(file_path_)) | 1151 ASSERT_FALSE(file_util::PathExists(file_path_)) |
1152 << file_path_.value() << " not removed."; | 1152 << file_path_.value() << " not removed."; |
1153 } | 1153 } |
1154 | 1154 |
1155 } // namespace. | 1155 } // namespace. |
OLD | NEW |