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

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: Latest merge 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
« no previous file with comments | « net/url_request/url_request_test_job.cc ('k') | webkit/appcache/appcache_interceptor.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
390 URLRequest* request,
391 NetworkDelegate* network_delegate) const OVERRIDE {
389 return NULL; 392 return NULL;
390 } 393 }
391 394
392 virtual URLRequestJob* MaybeInterceptResponse( 395 virtual URLRequestJob* MaybeInterceptResponse(
393 URLRequest* request) const OVERRIDE { 396 URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE {
394 return NULL; 397 return NULL;
395 } 398 }
396 399
397 void set_main_intercept_job(URLRequestJob* job) { 400 void set_main_intercept_job(URLRequestJob* job) {
398 main_intercept_job_ = job; 401 main_intercept_job_ = job;
399 } 402 }
400 403
401 private: 404 private:
402 mutable URLRequestJob* main_intercept_job_; 405 mutable URLRequestJob* main_intercept_job_;
403 }; 406 };
(...skipping 3149 matching lines...) Expand 10 before | Expand all | Expand 10 after
3553 3556
3554 TestDelegate d; 3557 TestDelegate d;
3555 URLRequest req(test_server_.GetURL("empty.html"), &d, &default_context_); 3558 URLRequest req(test_server_.GetURL("empty.html"), &d, &default_context_);
3556 req.set_method("POST"); 3559 req.set_method("POST");
3557 req.set_upload(CreateSimpleUploadData(kData).get()); 3560 req.set_upload(CreateSimpleUploadData(kData).get());
3558 HttpRequestHeaders headers; 3561 HttpRequestHeaders headers;
3559 headers.SetHeader(HttpRequestHeaders::kContentLength, 3562 headers.SetHeader(HttpRequestHeaders::kContentLength,
3560 base::UintToString(arraysize(kData) - 1)); 3563 base::UintToString(arraysize(kData) - 1));
3561 req.SetExtraRequestHeaders(headers); 3564 req.SetExtraRequestHeaders(headers);
3562 3565
3563 URLRequestRedirectJob* job = 3566 URLRequestRedirectJob* job = new URLRequestRedirectJob(
3564 new URLRequestRedirectJob(&req, test_server_.GetURL("echo")); 3567 &req, default_context_.network_delegate(), test_server_.GetURL("echo"));
3565 AddTestInterceptor()->set_main_intercept_job(job); 3568 AddTestInterceptor()->set_main_intercept_job(job);
3566 3569
3567 req.Start(); 3570 req.Start();
3568 MessageLoop::current()->Run(); 3571 MessageLoop::current()->Run();
3569 EXPECT_EQ("GET", req.method()); 3572 EXPECT_EQ("GET", req.method());
3570 } 3573 }
3571 3574
3572 TEST_F(URLRequestTestHTTP, InterceptPost307RedirectPost) { 3575 TEST_F(URLRequestTestHTTP, InterceptPost307RedirectPost) {
3573 ASSERT_TRUE(test_server_.Start()); 3576 ASSERT_TRUE(test_server_.Start());
3574 3577
3575 const char kData[] = "hello world"; 3578 const char kData[] = "hello world";
3576 3579
3577 TestDelegate d; 3580 TestDelegate d;
3578 URLRequest req(test_server_.GetURL("empty.html"), &d, &default_context_); 3581 URLRequest req(test_server_.GetURL("empty.html"), &d, &default_context_);
3579 req.set_method("POST"); 3582 req.set_method("POST");
3580 req.set_upload(CreateSimpleUploadData(kData).get()); 3583 req.set_upload(CreateSimpleUploadData(kData).get());
3581 HttpRequestHeaders headers; 3584 HttpRequestHeaders headers;
3582 headers.SetHeader(HttpRequestHeaders::kContentLength, 3585 headers.SetHeader(HttpRequestHeaders::kContentLength,
3583 base::UintToString(arraysize(kData) - 1)); 3586 base::UintToString(arraysize(kData) - 1));
3584 req.SetExtraRequestHeaders(headers); 3587 req.SetExtraRequestHeaders(headers);
3585 3588
3586 URLRequestRedirectJob* job = 3589 URLRequestRedirectJob* job = new URLRequestRedirectJob(
3587 new URLRequestRedirectJob(&req, test_server_.GetURL("echo")); 3590 &req, default_context_.network_delegate(), test_server_.GetURL("echo"));
3588 job->set_redirect_code( 3591 job->set_redirect_code(
3589 URLRequestRedirectJob::REDIRECT_307_TEMPORARY_REDIRECT); 3592 URLRequestRedirectJob::REDIRECT_307_TEMPORARY_REDIRECT);
3590 AddTestInterceptor()->set_main_intercept_job(job); 3593 AddTestInterceptor()->set_main_intercept_job(job);
3591 3594
3592 req.Start(); 3595 req.Start();
3593 MessageLoop::current()->Run(); 3596 MessageLoop::current()->Run();
3594 EXPECT_EQ("POST", req.method()); 3597 EXPECT_EQ("POST", req.method());
3595 EXPECT_EQ(kData, d.data_received()); 3598 EXPECT_EQ(kData, d.data_received());
3596 } 3599 }
3597 3600
3598 // Custom URLRequestJobs for use with interceptor tests 3601 // Custom URLRequestJobs for use with interceptor tests
3599 class RestartTestJob : public URLRequestTestJob { 3602 class RestartTestJob : public URLRequestTestJob {
3600 public: 3603 public:
3601 explicit RestartTestJob(URLRequest* request) 3604 RestartTestJob(URLRequest* request, NetworkDelegate* network_delegate)
3602 : URLRequestTestJob(request, true) {} 3605 : URLRequestTestJob(request, network_delegate, true) {}
3603 protected: 3606 protected:
3604 virtual void StartAsync() { 3607 virtual void StartAsync() {
3605 this->NotifyRestartRequired(); 3608 this->NotifyRestartRequired();
3606 } 3609 }
3607 private: 3610 private:
3608 ~RestartTestJob() {} 3611 ~RestartTestJob() {}
3609 }; 3612 };
3610 3613
3611 class CancelTestJob : public URLRequestTestJob { 3614 class CancelTestJob : public URLRequestTestJob {
3612 public: 3615 public:
3613 explicit CancelTestJob(URLRequest* request) 3616 explicit CancelTestJob(URLRequest* request, NetworkDelegate* network_delegate)
3614 : URLRequestTestJob(request, true) {} 3617 : URLRequestTestJob(request, network_delegate, true) {}
3615 protected: 3618 protected:
3616 virtual void StartAsync() { 3619 virtual void StartAsync() {
3617 request_->Cancel(); 3620 request_->Cancel();
3618 } 3621 }
3619 private: 3622 private:
3620 ~CancelTestJob() {} 3623 ~CancelTestJob() {}
3621 }; 3624 };
3622 3625
3623 class CancelThenRestartTestJob : public URLRequestTestJob { 3626 class CancelThenRestartTestJob : public URLRequestTestJob {
3624 public: 3627 public:
3625 explicit CancelThenRestartTestJob(URLRequest* request) 3628 explicit CancelThenRestartTestJob(URLRequest* request,
3626 : URLRequestTestJob(request, true) { 3629 NetworkDelegate* network_delegate)
3630 : URLRequestTestJob(request, network_delegate, true) {
3627 } 3631 }
3628 protected: 3632 protected:
3629 virtual void StartAsync() { 3633 virtual void StartAsync() {
3630 request_->Cancel(); 3634 request_->Cancel();
3631 this->NotifyRestartRequired(); 3635 this->NotifyRestartRequired();
3632 } 3636 }
3633 private: 3637 private:
3634 ~CancelThenRestartTestJob() {} 3638 ~CancelThenRestartTestJob() {}
3635 }; 3639 };
3636 3640
(...skipping 11 matching lines...) Expand all
3648 did_simulate_error_main_(false), 3652 did_simulate_error_main_(false),
3649 did_intercept_redirect_(false), did_cancel_redirect_(false), 3653 did_intercept_redirect_(false), did_cancel_redirect_(false),
3650 did_intercept_final_(false), did_cancel_final_(false) { 3654 did_intercept_final_(false), did_cancel_final_(false) {
3651 URLRequest::Deprecated::RegisterRequestInterceptor(this); 3655 URLRequest::Deprecated::RegisterRequestInterceptor(this);
3652 } 3656 }
3653 3657
3654 ~TestInterceptor() { 3658 ~TestInterceptor() {
3655 URLRequest::Deprecated::UnregisterRequestInterceptor(this); 3659 URLRequest::Deprecated::UnregisterRequestInterceptor(this);
3656 } 3660 }
3657 3661
3658 virtual URLRequestJob* MaybeIntercept(URLRequest* request) { 3662 virtual URLRequestJob* MaybeIntercept(URLRequest* request,
3663 NetworkDelegate* network_delegate) {
3659 if (restart_main_request_) { 3664 if (restart_main_request_) {
3660 restart_main_request_ = false; 3665 restart_main_request_ = false;
3661 did_restart_main_ = true; 3666 did_restart_main_ = true;
3662 return new RestartTestJob(request); 3667 return new RestartTestJob(request, network_delegate);
3663 } 3668 }
3664 if (cancel_main_request_) { 3669 if (cancel_main_request_) {
3665 cancel_main_request_ = false; 3670 cancel_main_request_ = false;
3666 did_cancel_main_ = true; 3671 did_cancel_main_ = true;
3667 return new CancelTestJob(request); 3672 return new CancelTestJob(request, network_delegate);
3668 } 3673 }
3669 if (cancel_then_restart_main_request_) { 3674 if (cancel_then_restart_main_request_) {
3670 cancel_then_restart_main_request_ = false; 3675 cancel_then_restart_main_request_ = false;
3671 did_cancel_then_restart_main_ = true; 3676 did_cancel_then_restart_main_ = true;
3672 return new CancelThenRestartTestJob(request); 3677 return new CancelThenRestartTestJob(request, network_delegate);
3673 } 3678 }
3674 if (simulate_main_network_error_) { 3679 if (simulate_main_network_error_) {
3675 simulate_main_network_error_ = false; 3680 simulate_main_network_error_ = false;
3676 did_simulate_error_main_ = true; 3681 did_simulate_error_main_ = true;
3677 // will error since the requeted url is not one of its canned urls 3682 // will error since the requeted url is not one of its canned urls
3678 return new URLRequestTestJob(request, true); 3683 return new URLRequestTestJob(request, network_delegate, true);
3679 } 3684 }
3680 if (!intercept_main_request_) 3685 if (!intercept_main_request_)
3681 return NULL; 3686 return NULL;
3682 intercept_main_request_ = false; 3687 intercept_main_request_ = false;
3683 did_intercept_main_ = true; 3688 did_intercept_main_ = true;
3684 return new URLRequestTestJob(request, 3689 return new URLRequestTestJob(request,
3685 main_headers_, 3690 network_delegate,
3686 main_data_, 3691 main_headers_,
3687 true); 3692 main_data_,
3693 true);
3688 } 3694 }
3689 3695
3690 virtual URLRequestJob* MaybeInterceptRedirect(URLRequest* request, 3696 virtual URLRequestJob* MaybeInterceptRedirect(
3691 const GURL& location) { 3697 URLRequest* request,
3698 NetworkDelegate* network_delegate,
3699 const GURL& location) {
3692 if (cancel_redirect_request_) { 3700 if (cancel_redirect_request_) {
3693 cancel_redirect_request_ = false; 3701 cancel_redirect_request_ = false;
3694 did_cancel_redirect_ = true; 3702 did_cancel_redirect_ = true;
3695 return new CancelTestJob(request); 3703 return new CancelTestJob(request, network_delegate);
3696 } 3704 }
3697 if (!intercept_redirect_) 3705 if (!intercept_redirect_)
3698 return NULL; 3706 return NULL;
3699 intercept_redirect_ = false; 3707 intercept_redirect_ = false;
3700 did_intercept_redirect_ = true; 3708 did_intercept_redirect_ = true;
3701 return new URLRequestTestJob(request, 3709 return new URLRequestTestJob(request,
3702 redirect_headers_, 3710 network_delegate,
3703 redirect_data_, 3711 redirect_headers_,
3704 true); 3712 redirect_data_,
3713 true);
3705 } 3714 }
3706 3715
3707 virtual URLRequestJob* MaybeInterceptResponse(URLRequest* request) { 3716 virtual URLRequestJob* MaybeInterceptResponse(
3717 URLRequest* request, NetworkDelegate* network_delegate) {
3708 if (cancel_final_request_) { 3718 if (cancel_final_request_) {
3709 cancel_final_request_ = false; 3719 cancel_final_request_ = false;
3710 did_cancel_final_ = true; 3720 did_cancel_final_ = true;
3711 return new CancelTestJob(request); 3721 return new CancelTestJob(request, network_delegate);
3712 } 3722 }
3713 if (!intercept_final_response_) 3723 if (!intercept_final_response_)
3714 return NULL; 3724 return NULL;
3715 intercept_final_response_ = false; 3725 intercept_final_response_ = false;
3716 did_intercept_final_ = true; 3726 did_intercept_final_ = true;
3717 return new URLRequestTestJob(request, 3727 return new URLRequestTestJob(request,
3718 final_headers_, 3728 network_delegate,
3719 final_data_, 3729 final_headers_,
3720 true); 3730 final_data_,
3731 true);
3721 } 3732 }
3722 3733
3723 // Whether to intercept the main request, and if so the response to return. 3734 // Whether to intercept the main request, and if so the response to return.
3724 bool intercept_main_request_; 3735 bool intercept_main_request_;
3725 std::string main_headers_; 3736 std::string main_headers_;
3726 std::string main_data_; 3737 std::string main_data_;
3727 3738
3728 // Other actions we take at MaybeIntercept time 3739 // Other actions we take at MaybeIntercept time
3729 bool restart_main_request_; 3740 bool restart_main_request_;
3730 bool cancel_main_request_; 3741 bool cancel_main_request_;
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after
4154 }; 4165 };
4155 4166
4156 // Make sure an FTP request using an unsafe ports fails. 4167 // Make sure an FTP request using an unsafe ports fails.
4157 TEST_F(URLRequestTestFTP, UnsafePort) { 4168 TEST_F(URLRequestTestFTP, UnsafePort) {
4158 ASSERT_TRUE(test_server_.Start()); 4169 ASSERT_TRUE(test_server_.Start());
4159 4170
4160 URLRequestJobFactory job_factory; 4171 URLRequestJobFactory job_factory;
4161 4172
4162 GURL url("ftp://127.0.0.1:7"); 4173 GURL url("ftp://127.0.0.1:7");
4163 FtpProtocolHandler ftp_protocol_handler( 4174 FtpProtocolHandler ftp_protocol_handler(
4164 default_context_.network_delegate(),
4165 default_context_.ftp_transaction_factory(), 4175 default_context_.ftp_transaction_factory(),
4166 default_context_.ftp_auth_cache()); 4176 default_context_.ftp_auth_cache());
4167 job_factory.SetProtocolHandler( 4177 job_factory.SetProtocolHandler(
4168 "ftp", 4178 "ftp",
4169 new FtpProtocolHandler(default_context_.network_delegate(), 4179 new FtpProtocolHandler(default_context_.ftp_transaction_factory(),
4170 default_context_.ftp_transaction_factory(),
4171 default_context_.ftp_auth_cache())); 4180 default_context_.ftp_auth_cache()));
4172 default_context_.set_job_factory(&job_factory); 4181 default_context_.set_job_factory(&job_factory);
4173 4182
4174 TestDelegate d; 4183 TestDelegate d;
4175 { 4184 {
4176 URLRequest r(url, &d, &default_context_); 4185 URLRequest r(url, &d, &default_context_);
4177 r.Start(); 4186 r.Start();
4178 EXPECT_TRUE(r.is_pending()); 4187 EXPECT_TRUE(r.is_pending());
4179 4188
4180 MessageLoop::current()->Run(); 4189 MessageLoop::current()->Run();
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
4672 req.SetExtraRequestHeaders(headers); 4681 req.SetExtraRequestHeaders(headers);
4673 req.Start(); 4682 req.Start();
4674 MessageLoop::current()->Run(); 4683 MessageLoop::current()->Run();
4675 // If the net tests are being run with ChromeFrame then we need to allow for 4684 // If the net tests are being run with ChromeFrame then we need to allow for
4676 // the 'chromeframe' suffix which is added to the user agent before the 4685 // the 'chromeframe' suffix which is added to the user agent before the
4677 // closing parentheses. 4686 // closing parentheses.
4678 EXPECT_TRUE(StartsWithASCII(d.data_received(), "Lynx (textmode", true)); 4687 EXPECT_TRUE(StartsWithASCII(d.data_received(), "Lynx (textmode", true));
4679 } 4688 }
4680 4689
4681 } // namespace net 4690 } // namespace net
OLDNEW
« no previous file with comments | « net/url_request/url_request_test_job.cc ('k') | webkit/appcache/appcache_interceptor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698