Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(512)

Side by Side Diff: net/url_request/url_request_unittest.cc

Issue 10855209: Refactoring: ProtocolHandler::MaybeCreateJob takes NetworkDelegate as argument (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: NetworkDelegate fixed almost everywhere Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <windows.h> 8 #include <windows.h>
9 #include <shlobj.h> 9 #include <shlobj.h>
10 #endif 10 #endif
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 }; 371 };
372 372
373 373
374 // A simple Interceptor that returns a pre-built URLRequestJob one time. 374 // A simple Interceptor that returns a pre-built URLRequestJob one time.
375 class TestJobInterceptor : public URLRequestJobFactory::Interceptor { 375 class TestJobInterceptor : public URLRequestJobFactory::Interceptor {
376 public: 376 public:
377 TestJobInterceptor() 377 TestJobInterceptor()
378 : main_intercept_job_(NULL) { 378 : main_intercept_job_(NULL) {
379 } 379 }
380 380
381 virtual URLRequestJob* MaybeIntercept(URLRequest* request) const OVERRIDE { 381 virtual URLRequestJob* MaybeIntercept(
382 URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE {
382 URLRequestJob* job = main_intercept_job_; 383 URLRequestJob* job = main_intercept_job_;
383 main_intercept_job_ = NULL; 384 main_intercept_job_ = NULL;
384 return job; 385 return job;
385 } 386 }
386 387
387 virtual URLRequestJob* MaybeInterceptRedirect( 388 virtual URLRequestJob* MaybeInterceptRedirect(
388 const GURL& location, URLRequest* request) const OVERRIDE { 389 const GURL& location, URLRequest* request) const OVERRIDE {
389 return NULL; 390 return NULL;
390 } 391 }
391 392
(...skipping 3147 matching lines...) Expand 10 before | Expand all | Expand 10 after
3539 3540
3540 TestDelegate d; 3541 TestDelegate d;
3541 URLRequest req(test_server_.GetURL("empty.html"), &d, &default_context_); 3542 URLRequest req(test_server_.GetURL("empty.html"), &d, &default_context_);
3542 req.set_method("POST"); 3543 req.set_method("POST");
3543 req.set_upload(CreateSimpleUploadData(kData).get()); 3544 req.set_upload(CreateSimpleUploadData(kData).get());
3544 HttpRequestHeaders headers; 3545 HttpRequestHeaders headers;
3545 headers.SetHeader(HttpRequestHeaders::kContentLength, 3546 headers.SetHeader(HttpRequestHeaders::kContentLength,
3546 base::UintToString(arraysize(kData) - 1)); 3547 base::UintToString(arraysize(kData) - 1));
3547 req.SetExtraRequestHeaders(headers); 3548 req.SetExtraRequestHeaders(headers);
3548 3549
3549 URLRequestRedirectJob* job = 3550 URLRequestRedirectJob* job = new URLRequestRedirectJob(
3550 new URLRequestRedirectJob(&req, test_server_.GetURL("echo")); 3551 &req, default_context_.network_delegate(), test_server_.GetURL("echo"));
3551 AddTestInterceptor()->set_main_intercept_job(job); 3552 AddTestInterceptor()->set_main_intercept_job(job);
3552 3553
3553 req.Start(); 3554 req.Start();
3554 MessageLoop::current()->Run(); 3555 MessageLoop::current()->Run();
3555 EXPECT_EQ("GET", req.method()); 3556 EXPECT_EQ("GET", req.method());
3556 } 3557 }
3557 3558
3558 TEST_F(URLRequestTestHTTP, InterceptPost307RedirectPost) { 3559 TEST_F(URLRequestTestHTTP, InterceptPost307RedirectPost) {
3559 ASSERT_TRUE(test_server_.Start()); 3560 ASSERT_TRUE(test_server_.Start());
3560 3561
3561 const char kData[] = "hello world"; 3562 const char kData[] = "hello world";
3562 3563
3563 TestDelegate d; 3564 TestDelegate d;
3564 URLRequest req(test_server_.GetURL("empty.html"), &d, &default_context_); 3565 URLRequest req(test_server_.GetURL("empty.html"), &d, &default_context_);
3565 req.set_method("POST"); 3566 req.set_method("POST");
3566 req.set_upload(CreateSimpleUploadData(kData).get()); 3567 req.set_upload(CreateSimpleUploadData(kData).get());
3567 HttpRequestHeaders headers; 3568 HttpRequestHeaders headers;
3568 headers.SetHeader(HttpRequestHeaders::kContentLength, 3569 headers.SetHeader(HttpRequestHeaders::kContentLength,
3569 base::UintToString(arraysize(kData) - 1)); 3570 base::UintToString(arraysize(kData) - 1));
3570 req.SetExtraRequestHeaders(headers); 3571 req.SetExtraRequestHeaders(headers);
3571 3572
3572 URLRequestRedirectJob* job = 3573 URLRequestRedirectJob* job = new URLRequestRedirectJob(
3573 new URLRequestRedirectJob(&req, test_server_.GetURL("echo")); 3574 &req, default_context_.network_delegate(), test_server_.GetURL("echo"));
3574 job->set_redirect_code( 3575 job->set_redirect_code(
3575 URLRequestRedirectJob::REDIRECT_307_TEMPORARY_REDIRECT); 3576 URLRequestRedirectJob::REDIRECT_307_TEMPORARY_REDIRECT);
3576 AddTestInterceptor()->set_main_intercept_job(job); 3577 AddTestInterceptor()->set_main_intercept_job(job);
3577 3578
3578 req.Start(); 3579 req.Start();
3579 MessageLoop::current()->Run(); 3580 MessageLoop::current()->Run();
3580 EXPECT_EQ("POST", req.method()); 3581 EXPECT_EQ("POST", req.method());
3581 EXPECT_EQ(kData, d.data_received()); 3582 EXPECT_EQ(kData, d.data_received());
3582 } 3583 }
3583 3584
3584 // Custom URLRequestJobs for use with interceptor tests 3585 // Custom URLRequestJobs for use with interceptor tests
3585 class RestartTestJob : public URLRequestTestJob { 3586 class RestartTestJob : public URLRequestTestJob {
3586 public: 3587 public:
3587 explicit RestartTestJob(URLRequest* request) 3588 RestartTestJob(URLRequest* request, NetworkDelegate* network_delegate)
3588 : URLRequestTestJob(request, true) {} 3589 : URLRequestTestJob(request, network_delegate, true) {}
3589 protected: 3590 protected:
3590 virtual void StartAsync() { 3591 virtual void StartAsync() {
3591 this->NotifyRestartRequired(); 3592 this->NotifyRestartRequired();
3592 } 3593 }
3593 private: 3594 private:
3594 ~RestartTestJob() {} 3595 ~RestartTestJob() {}
3595 }; 3596 };
3596 3597
3597 class CancelTestJob : public URLRequestTestJob { 3598 class CancelTestJob : public URLRequestTestJob {
3598 public: 3599 public:
3599 explicit CancelTestJob(URLRequest* request) 3600 explicit CancelTestJob(URLRequest* request, NetworkDelegate* network_delegate)
3600 : URLRequestTestJob(request, true) {} 3601 : URLRequestTestJob(request, network_delegate, true) {}
3601 protected: 3602 protected:
3602 virtual void StartAsync() { 3603 virtual void StartAsync() {
3603 request_->Cancel(); 3604 request_->Cancel();
3604 } 3605 }
3605 private: 3606 private:
3606 ~CancelTestJob() {} 3607 ~CancelTestJob() {}
3607 }; 3608 };
3608 3609
3609 class CancelThenRestartTestJob : public URLRequestTestJob { 3610 class CancelThenRestartTestJob : public URLRequestTestJob {
3610 public: 3611 public:
3611 explicit CancelThenRestartTestJob(URLRequest* request) 3612 explicit CancelThenRestartTestJob(URLRequest* request,
3612 : URLRequestTestJob(request, true) { 3613 NetworkDelegate* network_delegate)
3614 : URLRequestTestJob(request, network_delegate, true) {
3613 } 3615 }
3614 protected: 3616 protected:
3615 virtual void StartAsync() { 3617 virtual void StartAsync() {
3616 request_->Cancel(); 3618 request_->Cancel();
3617 this->NotifyRestartRequired(); 3619 this->NotifyRestartRequired();
3618 } 3620 }
3619 private: 3621 private:
3620 ~CancelThenRestartTestJob() {} 3622 ~CancelThenRestartTestJob() {}
3621 }; 3623 };
3622 3624
(...skipping 11 matching lines...) Expand all
3634 did_simulate_error_main_(false), 3636 did_simulate_error_main_(false),
3635 did_intercept_redirect_(false), did_cancel_redirect_(false), 3637 did_intercept_redirect_(false), did_cancel_redirect_(false),
3636 did_intercept_final_(false), did_cancel_final_(false) { 3638 did_intercept_final_(false), did_cancel_final_(false) {
3637 URLRequest::Deprecated::RegisterRequestInterceptor(this); 3639 URLRequest::Deprecated::RegisterRequestInterceptor(this);
3638 } 3640 }
3639 3641
3640 ~TestInterceptor() { 3642 ~TestInterceptor() {
3641 URLRequest::Deprecated::UnregisterRequestInterceptor(this); 3643 URLRequest::Deprecated::UnregisterRequestInterceptor(this);
3642 } 3644 }
3643 3645
3644 virtual URLRequestJob* MaybeIntercept(URLRequest* request) { 3646 virtual URLRequestJob* MaybeIntercept(URLRequest* request,
3647 NetworkDelegate* network_delegate) {
3645 if (restart_main_request_) { 3648 if (restart_main_request_) {
3646 restart_main_request_ = false; 3649 restart_main_request_ = false;
3647 did_restart_main_ = true; 3650 did_restart_main_ = true;
3648 return new RestartTestJob(request); 3651 return new RestartTestJob(request, network_delegate);
3649 } 3652 }
3650 if (cancel_main_request_) { 3653 if (cancel_main_request_) {
3651 cancel_main_request_ = false; 3654 cancel_main_request_ = false;
3652 did_cancel_main_ = true; 3655 did_cancel_main_ = true;
3653 return new CancelTestJob(request); 3656 return new CancelTestJob(request, network_delegate);
3654 } 3657 }
3655 if (cancel_then_restart_main_request_) { 3658 if (cancel_then_restart_main_request_) {
3656 cancel_then_restart_main_request_ = false; 3659 cancel_then_restart_main_request_ = false;
3657 did_cancel_then_restart_main_ = true; 3660 did_cancel_then_restart_main_ = true;
3658 return new CancelThenRestartTestJob(request); 3661 return new CancelThenRestartTestJob(request, network_delegate);
3659 } 3662 }
3660 if (simulate_main_network_error_) { 3663 if (simulate_main_network_error_) {
3661 simulate_main_network_error_ = false; 3664 simulate_main_network_error_ = false;
3662 did_simulate_error_main_ = true; 3665 did_simulate_error_main_ = true;
3663 // will error since the requeted url is not one of its canned urls 3666 // will error since the requeted url is not one of its canned urls
3664 return new URLRequestTestJob(request, true); 3667 return new URLRequestTestJob(request, network_delegate, true);
3665 } 3668 }
3666 if (!intercept_main_request_) 3669 if (!intercept_main_request_)
3667 return NULL; 3670 return NULL;
3668 intercept_main_request_ = false; 3671 intercept_main_request_ = false;
3669 did_intercept_main_ = true; 3672 did_intercept_main_ = true;
3670 return new URLRequestTestJob(request, 3673 return new URLRequestTestJob(request,
3671 main_headers_, 3674 network_delegate,
3672 main_data_, 3675 main_headers_,
3673 true); 3676 main_data_,
3677 true);
3674 } 3678 }
3675 3679
3676 virtual URLRequestJob* MaybeInterceptRedirect(URLRequest* request, 3680 virtual URLRequestJob* MaybeInterceptRedirect(
3677 const GURL& location) { 3681 URLRequest* request,
3682 NetworkDelegate* network_delegate,
3683 const GURL& location) {
3678 if (cancel_redirect_request_) { 3684 if (cancel_redirect_request_) {
3679 cancel_redirect_request_ = false; 3685 cancel_redirect_request_ = false;
3680 did_cancel_redirect_ = true; 3686 did_cancel_redirect_ = true;
3681 return new CancelTestJob(request); 3687 return new CancelTestJob(request, network_delegate);
3682 } 3688 }
3683 if (!intercept_redirect_) 3689 if (!intercept_redirect_)
3684 return NULL; 3690 return NULL;
3685 intercept_redirect_ = false; 3691 intercept_redirect_ = false;
3686 did_intercept_redirect_ = true; 3692 did_intercept_redirect_ = true;
3687 return new URLRequestTestJob(request, 3693 return new URLRequestTestJob(request,
3688 redirect_headers_, 3694 network_delegate,
3689 redirect_data_, 3695 redirect_headers_,
3690 true); 3696 redirect_data_,
3697 true);
3691 } 3698 }
3692 3699
3693 virtual URLRequestJob* MaybeInterceptResponse(URLRequest* request) { 3700 virtual URLRequestJob* MaybeInterceptResponse(
3701 URLRequest* request, NetworkDelegate* network_delegate) {
3694 if (cancel_final_request_) { 3702 if (cancel_final_request_) {
3695 cancel_final_request_ = false; 3703 cancel_final_request_ = false;
3696 did_cancel_final_ = true; 3704 did_cancel_final_ = true;
3697 return new CancelTestJob(request); 3705 return new CancelTestJob(request, network_delegate);
3698 } 3706 }
3699 if (!intercept_final_response_) 3707 if (!intercept_final_response_)
3700 return NULL; 3708 return NULL;
3701 intercept_final_response_ = false; 3709 intercept_final_response_ = false;
3702 did_intercept_final_ = true; 3710 did_intercept_final_ = true;
3703 return new URLRequestTestJob(request, 3711 return new URLRequestTestJob(request,
3704 final_headers_, 3712 network_delegate,
3705 final_data_, 3713 final_headers_,
3706 true); 3714 final_data_,
3715 true);
3707 } 3716 }
3708 3717
3709 // Whether to intercept the main request, and if so the response to return. 3718 // Whether to intercept the main request, and if so the response to return.
3710 bool intercept_main_request_; 3719 bool intercept_main_request_;
3711 std::string main_headers_; 3720 std::string main_headers_;
3712 std::string main_data_; 3721 std::string main_data_;
3713 3722
3714 // Other actions we take at MaybeIntercept time 3723 // Other actions we take at MaybeIntercept time
3715 bool restart_main_request_; 3724 bool restart_main_request_;
3716 bool cancel_main_request_; 3725 bool cancel_main_request_;
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after
4140 }; 4149 };
4141 4150
4142 // Make sure an FTP request using an unsafe ports fails. 4151 // Make sure an FTP request using an unsafe ports fails.
4143 TEST_F(URLRequestTestFTP, UnsafePort) { 4152 TEST_F(URLRequestTestFTP, UnsafePort) {
4144 ASSERT_TRUE(test_server_.Start()); 4153 ASSERT_TRUE(test_server_.Start());
4145 4154
4146 URLRequestJobFactory job_factory; 4155 URLRequestJobFactory job_factory;
4147 4156
4148 GURL url("ftp://127.0.0.1:7"); 4157 GURL url("ftp://127.0.0.1:7");
4149 FtpProtocolHandler ftp_protocol_handler( 4158 FtpProtocolHandler ftp_protocol_handler(
4150 default_context_.network_delegate(),
4151 default_context_.ftp_transaction_factory(), 4159 default_context_.ftp_transaction_factory(),
4152 default_context_.ftp_auth_cache()); 4160 default_context_.ftp_auth_cache());
4153 job_factory.SetProtocolHandler( 4161 job_factory.SetProtocolHandler(
4154 "ftp", 4162 "ftp",
4155 new FtpProtocolHandler(default_context_.network_delegate(), 4163 new FtpProtocolHandler(default_context_.ftp_transaction_factory(),
4156 default_context_.ftp_transaction_factory(),
4157 default_context_.ftp_auth_cache())); 4164 default_context_.ftp_auth_cache()));
4158 default_context_.set_job_factory(&job_factory); 4165 default_context_.set_job_factory(&job_factory);
4159 4166
4160 TestDelegate d; 4167 TestDelegate d;
4161 { 4168 {
4162 URLRequest r(url, &d, &default_context_); 4169 URLRequest r(url, &d, &default_context_);
4163 r.Start(); 4170 r.Start();
4164 EXPECT_TRUE(r.is_pending()); 4171 EXPECT_TRUE(r.is_pending());
4165 4172
4166 MessageLoop::current()->Run(); 4173 MessageLoop::current()->Run();
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
4658 req.SetExtraRequestHeaders(headers); 4665 req.SetExtraRequestHeaders(headers);
4659 req.Start(); 4666 req.Start();
4660 MessageLoop::current()->Run(); 4667 MessageLoop::current()->Run();
4661 // If the net tests are being run with ChromeFrame then we need to allow for 4668 // If the net tests are being run with ChromeFrame then we need to allow for
4662 // the 'chromeframe' suffix which is added to the user agent before the 4669 // the 'chromeframe' suffix which is added to the user agent before the
4663 // closing parentheses. 4670 // closing parentheses.
4664 EXPECT_TRUE(StartsWithASCII(d.data_received(), "Lynx (textmode", true)); 4671 EXPECT_TRUE(StartsWithASCII(d.data_received(), "Lynx (textmode", true));
4665 } 4672 }
4666 4673
4667 } // namespace net 4674 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698