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

Side by Side Diff: content/browser/loader/resource_loader_unittest.cc

Issue 1545243002: Convert Pass()→std::move() in //content/browser (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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
« no previous file with comments | « content/browser/loader/resource_loader.cc ('k') | content/browser/loader/resource_scheduler.cc » ('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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/browser/loader/resource_loader.h" 5 #include "content/browser/loader/resource_loader.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <utility>
9 10
10 #include "base/files/file.h" 11 #include "base/files/file.h"
11 #include "base/files/file_util.h" 12 #include "base/files/file_util.h"
12 #include "base/location.h" 13 #include "base/location.h"
13 #include "base/macros.h" 14 #include "base/macros.h"
14 #include "base/memory/scoped_ptr.h" 15 #include "base/memory/scoped_ptr.h"
15 #include "base/memory/weak_ptr.h" 16 #include "base/memory/weak_ptr.h"
16 #include "base/run_loop.h" 17 #include "base/run_loop.h"
17 #include "base/single_thread_task_runner.h" 18 #include "base/single_thread_task_runner.h"
18 #include "base/thread_task_runner_handle.h" 19 #include "base/thread_task_runner_handle.h"
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 } 444 }
444 445
445 void SelectClientCertificate( 446 void SelectClientCertificate(
446 WebContents* web_contents, 447 WebContents* web_contents,
447 net::SSLCertRequestInfo* cert_request_info, 448 net::SSLCertRequestInfo* cert_request_info,
448 scoped_ptr<ClientCertificateDelegate> delegate) override { 449 scoped_ptr<ClientCertificateDelegate> delegate) override {
449 EXPECT_FALSE(delegate_.get()); 450 EXPECT_FALSE(delegate_.get());
450 451
451 ++call_count_; 452 ++call_count_;
452 passed_certs_ = cert_request_info->client_certs; 453 passed_certs_ = cert_request_info->client_certs;
453 delegate_ = delegate.Pass(); 454 delegate_ = std::move(delegate);
454 select_certificate_run_loop_.Quit(); 455 select_certificate_run_loop_.Quit();
455 } 456 }
456 457
457 int call_count() { return call_count_; } 458 int call_count() { return call_count_; }
458 net::CertificateList passed_certs() { return passed_certs_; } 459 net::CertificateList passed_certs() { return passed_certs_; }
459 460
460 void ContinueWithCertificate(net::X509Certificate* cert) { 461 void ContinueWithCertificate(net::X509Certificate* cert) {
461 delegate_->ContinueWithCertificate(cert); 462 delegate_->ContinueWithCertificate(cert);
462 delegate_.reset(); 463 delegate_.reset();
463 } 464 }
464 465
465 void CancelCertificateSelection() { delegate_.reset(); } 466 void CancelCertificateSelection() { delegate_.reset(); }
466 467
467 private: 468 private:
468 net::CertificateList passed_certs_; 469 net::CertificateList passed_certs_;
469 int call_count_; 470 int call_count_;
470 scoped_ptr<ClientCertificateDelegate> delegate_; 471 scoped_ptr<ClientCertificateDelegate> delegate_;
471 472
472 base::RunLoop select_certificate_run_loop_; 473 base::RunLoop select_certificate_run_loop_;
473 474
474 DISALLOW_COPY_AND_ASSIGN(SelectCertificateBrowserClient); 475 DISALLOW_COPY_AND_ASSIGN(SelectCertificateBrowserClient);
475 }; 476 };
476 477
477 class ResourceContextStub : public MockResourceContext { 478 class ResourceContextStub : public MockResourceContext {
478 public: 479 public:
479 explicit ResourceContextStub(net::URLRequestContext* test_request_context) 480 explicit ResourceContextStub(net::URLRequestContext* test_request_context)
480 : MockResourceContext(test_request_context) {} 481 : MockResourceContext(test_request_context) {}
481 482
482 scoped_ptr<net::ClientCertStore> CreateClientCertStore() override { 483 scoped_ptr<net::ClientCertStore> CreateClientCertStore() override {
483 return dummy_cert_store_.Pass(); 484 return std::move(dummy_cert_store_);
484 } 485 }
485 486
486 void SetClientCertStore(scoped_ptr<net::ClientCertStore> store) { 487 void SetClientCertStore(scoped_ptr<net::ClientCertStore> store) {
487 dummy_cert_store_ = store.Pass(); 488 dummy_cert_store_ = std::move(store);
488 } 489 }
489 490
490 private: 491 private:
491 scoped_ptr<net::ClientCertStore> dummy_cert_store_; 492 scoped_ptr<net::ClientCertStore> dummy_cert_store_;
492 }; 493 };
493 494
494 // Wraps a ChunkedUploadDataStream to behave as non-chunked to enable upload 495 // Wraps a ChunkedUploadDataStream to behave as non-chunked to enable upload
495 // progress reporting. 496 // progress reporting.
496 class NonChunkedUploadDataStream : public net::UploadDataStream { 497 class NonChunkedUploadDataStream : public net::UploadDataStream {
497 public: 498 public:
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 } 555 }
555 556
556 virtual scoped_ptr<net::URLRequestJobFactory::ProtocolHandler> 557 virtual scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
557 CreateProtocolHandler() { 558 CreateProtocolHandler() {
558 return net::URLRequestTestJob::CreateProtocolHandler(); 559 return net::URLRequestTestJob::CreateProtocolHandler();
559 } 560 }
560 561
561 virtual scoped_ptr<ResourceHandler> WrapResourceHandler( 562 virtual scoped_ptr<ResourceHandler> WrapResourceHandler(
562 scoped_ptr<ResourceHandlerStub> leaf_handler, 563 scoped_ptr<ResourceHandlerStub> leaf_handler,
563 net::URLRequest* request) { 564 net::URLRequest* request) {
564 return leaf_handler.Pass(); 565 return std::move(leaf_handler);
565 } 566 }
566 567
567 // Replaces loader_ with a new one for |request|. 568 // Replaces loader_ with a new one for |request|.
568 void SetUpResourceLoader(scoped_ptr<net::URLRequest> request) { 569 void SetUpResourceLoader(scoped_ptr<net::URLRequest> request) {
569 raw_ptr_to_request_ = request.get(); 570 raw_ptr_to_request_ = request.get();
570 571
571 RenderFrameHost* rfh = web_contents_->GetMainFrame(); 572 RenderFrameHost* rfh = web_contents_->GetMainFrame();
572 ResourceRequestInfo::AllocateForTesting( 573 ResourceRequestInfo::AllocateForTesting(
573 request.get(), RESOURCE_TYPE_MAIN_FRAME, &resource_context_, 574 request.get(), RESOURCE_TYPE_MAIN_FRAME, &resource_context_,
574 rfh->GetProcess()->GetID(), rfh->GetRenderViewHost()->GetRoutingID(), 575 rfh->GetProcess()->GetID(), rfh->GetRenderViewHost()->GetRoutingID(),
575 rfh->GetRoutingID(), true /* is_main_frame */, 576 rfh->GetRoutingID(), true /* is_main_frame */,
576 false /* parent_is_main_frame */, true /* allow_download */, 577 false /* parent_is_main_frame */, true /* allow_download */,
577 false /* is_async */, false /* is_using_lofi_ */); 578 false /* is_async */, false /* is_using_lofi_ */);
578 scoped_ptr<ResourceHandlerStub> resource_handler( 579 scoped_ptr<ResourceHandlerStub> resource_handler(
579 new ResourceHandlerStub(request.get())); 580 new ResourceHandlerStub(request.get()));
580 raw_ptr_resource_handler_ = resource_handler.get(); 581 raw_ptr_resource_handler_ = resource_handler.get();
581 loader_.reset(new ResourceLoader( 582 loader_.reset(new ResourceLoader(
582 request.Pass(), 583 std::move(request),
583 WrapResourceHandler(resource_handler.Pass(), raw_ptr_to_request_), 584 WrapResourceHandler(std::move(resource_handler), raw_ptr_to_request_),
584 this)); 585 this));
585 } 586 }
586 587
587 void SetUp() override { 588 void SetUp() override {
588 job_factory_.SetProtocolHandler("test", CreateProtocolHandler()); 589 job_factory_.SetProtocolHandler("test", CreateProtocolHandler());
589 590
590 browser_context_.reset(new TestBrowserContext()); 591 browser_context_.reset(new TestBrowserContext());
591 scoped_refptr<SiteInstance> site_instance = 592 scoped_refptr<SiteInstance> site_instance =
592 SiteInstance::Create(browser_context_.get()); 593 SiteInstance::Create(browser_context_.get());
593 web_contents_.reset( 594 web_contents_.reset(
594 TestWebContents::Create(browser_context_.get(), site_instance.get())); 595 TestWebContents::Create(browser_context_.get(), site_instance.get()));
595 596
596 scoped_ptr<net::URLRequest> request( 597 scoped_ptr<net::URLRequest> request(
597 resource_context_.GetRequestContext()->CreateRequest( 598 resource_context_.GetRequestContext()->CreateRequest(
598 test_url(), 599 test_url(),
599 net::DEFAULT_PRIORITY, 600 net::DEFAULT_PRIORITY,
600 nullptr /* delegate */)); 601 nullptr /* delegate */));
601 SetUpResourceLoader(request.Pass()); 602 SetUpResourceLoader(std::move(request));
602 } 603 }
603 604
604 void TearDown() override { 605 void TearDown() override {
605 // Destroy the WebContents and pump the event loop before destroying 606 // Destroy the WebContents and pump the event loop before destroying
606 // |rvh_test_enabler_| and |thread_bundle_|. This lets asynchronous cleanup 607 // |rvh_test_enabler_| and |thread_bundle_|. This lets asynchronous cleanup
607 // tasks complete. 608 // tasks complete.
608 web_contents_.reset(); 609 web_contents_.reset();
609 base::RunLoop().RunUntilIdle(); 610 base::RunLoop().RunUntilIdle();
610 } 611 }
611 612
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 687
687 // Tests that client certificates are requested with ClientCertStore lookup. 688 // Tests that client certificates are requested with ClientCertStore lookup.
688 TEST_F(ClientCertResourceLoaderTest, WithStoreLookup) { 689 TEST_F(ClientCertResourceLoaderTest, WithStoreLookup) {
689 // Set up the test client cert store. 690 // Set up the test client cert store.
690 int store_request_count; 691 int store_request_count;
691 std::vector<std::string> store_requested_authorities; 692 std::vector<std::string> store_requested_authorities;
692 net::CertificateList dummy_certs(1, scoped_refptr<net::X509Certificate>( 693 net::CertificateList dummy_certs(1, scoped_refptr<net::X509Certificate>(
693 new net::X509Certificate("test", "test", base::Time(), base::Time()))); 694 new net::X509Certificate("test", "test", base::Time(), base::Time())));
694 scoped_ptr<ClientCertStoreStub> test_store(new ClientCertStoreStub( 695 scoped_ptr<ClientCertStoreStub> test_store(new ClientCertStoreStub(
695 dummy_certs, &store_request_count, &store_requested_authorities)); 696 dummy_certs, &store_request_count, &store_requested_authorities));
696 resource_context_.SetClientCertStore(test_store.Pass()); 697 resource_context_.SetClientCertStore(std::move(test_store));
697 698
698 // Plug in test content browser client. 699 // Plug in test content browser client.
699 SelectCertificateBrowserClient test_client; 700 SelectCertificateBrowserClient test_client;
700 ContentBrowserClient* old_client = SetBrowserClientForTesting(&test_client); 701 ContentBrowserClient* old_client = SetBrowserClientForTesting(&test_client);
701 702
702 // Start the request and wait for it to pause. 703 // Start the request and wait for it to pause.
703 loader_->StartRequest(); 704 loader_->StartRequest();
704 test_client.WaitForSelectCertificate(); 705 test_client.WaitForSelectCertificate();
705 706
706 EXPECT_FALSE(raw_ptr_resource_handler_->received_response_completed()); 707 EXPECT_FALSE(raw_ptr_resource_handler_->received_response_completed());
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
886 887
887 // Make a temporary file. 888 // Make a temporary file.
888 CHECK(base::CreateTemporaryFile(&temp_path_)); 889 CHECK(base::CreateTemporaryFile(&temp_path_));
889 int flags = base::File::FLAG_WRITE | base::File::FLAG_TEMPORARY | 890 int flags = base::File::FLAG_WRITE | base::File::FLAG_TEMPORARY |
890 base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_ASYNC; 891 base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_ASYNC;
891 base::File file(temp_path_, flags); 892 base::File file(temp_path_, flags);
892 CHECK(file.IsValid()); 893 CHECK(file.IsValid());
893 894
894 // Create mock file streams and a ShareableFileReference. 895 // Create mock file streams and a ShareableFileReference.
895 scoped_ptr<net::testing::MockFileStream> file_stream( 896 scoped_ptr<net::testing::MockFileStream> file_stream(
896 new net::testing::MockFileStream(file.Pass(), 897 new net::testing::MockFileStream(std::move(file),
897 base::ThreadTaskRunnerHandle::Get())); 898 base::ThreadTaskRunnerHandle::Get()));
898 file_stream_ = file_stream.get(); 899 file_stream_ = file_stream.get();
899 deletable_file_ = ShareableFileReference::GetOrCreate( 900 deletable_file_ = ShareableFileReference::GetOrCreate(
900 temp_path_, 901 temp_path_,
901 ShareableFileReference::DELETE_ON_FINAL_RELEASE, 902 ShareableFileReference::DELETE_ON_FINAL_RELEASE,
902 BrowserThread::GetMessageLoopProxyForThread( 903 BrowserThread::GetMessageLoopProxyForThread(
903 BrowserThread::FILE).get()); 904 BrowserThread::FILE).get());
904 905
905 // Inject them into the handler. 906 // Inject them into the handler.
906 scoped_ptr<RedirectToFileResourceHandler> handler( 907 scoped_ptr<RedirectToFileResourceHandler> handler(
907 new RedirectToFileResourceHandler(leaf_handler.Pass(), request)); 908 new RedirectToFileResourceHandler(std::move(leaf_handler), request));
908 redirect_to_file_resource_handler_ = handler.get(); 909 redirect_to_file_resource_handler_ = handler.get();
909 handler->SetCreateTemporaryFileStreamFunctionForTesting( 910 handler->SetCreateTemporaryFileStreamFunctionForTesting(
910 base::Bind(&ResourceLoaderRedirectToFileTest::PostCallback, 911 base::Bind(&ResourceLoaderRedirectToFileTest::PostCallback,
911 base::Unretained(this), 912 base::Unretained(this),
912 base::Passed(&file_stream))); 913 base::Passed(&file_stream)));
913 return handler.Pass(); 914 return std::move(handler);
914 } 915 }
915 916
916 private: 917 private:
917 void PostCallback( 918 void PostCallback(
918 scoped_ptr<net::FileStream> file_stream, 919 scoped_ptr<net::FileStream> file_stream,
919 const CreateTemporaryFileStreamCallback& callback) { 920 const CreateTemporaryFileStreamCallback& callback) {
920 base::ThreadTaskRunnerHandle::Get()->PostTask( 921 base::ThreadTaskRunnerHandle::Get()->PostTask(
921 FROM_HERE, base::Bind(callback, base::File::FILE_OK, 922 FROM_HERE, base::Bind(callback, base::File::FILE_OK,
922 base::Passed(&file_stream), deletable_file_)); 923 base::Passed(&file_stream), deletable_file_));
923 } 924 }
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
1074 EXPECT_EQ(test_data(), contents); 1075 EXPECT_EQ(test_data(), contents);
1075 } 1076 }
1076 1077
1077 // Test that an HTTPS resource has the expected security info attached 1078 // Test that an HTTPS resource has the expected security info attached
1078 // to it. 1079 // to it.
1079 TEST_F(HTTPSSecurityInfoResourceLoaderTest, SecurityInfoOnHTTPSResource) { 1080 TEST_F(HTTPSSecurityInfoResourceLoaderTest, SecurityInfoOnHTTPSResource) {
1080 // Start the request and wait for it to finish. 1081 // Start the request and wait for it to finish.
1081 scoped_ptr<net::URLRequest> request( 1082 scoped_ptr<net::URLRequest> request(
1082 resource_context_.GetRequestContext()->CreateRequest( 1083 resource_context_.GetRequestContext()->CreateRequest(
1083 test_https_url(), net::DEFAULT_PRIORITY, nullptr /* delegate */)); 1084 test_https_url(), net::DEFAULT_PRIORITY, nullptr /* delegate */));
1084 SetUpResourceLoader(request.Pass()); 1085 SetUpResourceLoader(std::move(request));
1085 1086
1086 // Send the request and wait until it completes. 1087 // Send the request and wait until it completes.
1087 loader_->StartRequest(); 1088 loader_->StartRequest();
1088 raw_ptr_resource_handler_->WaitForResponseComplete(); 1089 raw_ptr_resource_handler_->WaitForResponseComplete();
1089 ASSERT_EQ(net::URLRequestStatus::SUCCESS, 1090 ASSERT_EQ(net::URLRequestStatus::SUCCESS,
1090 raw_ptr_to_request_->status().status()); 1091 raw_ptr_to_request_->status().status());
1091 1092
1092 ResourceResponse* response = raw_ptr_resource_handler_->response(); 1093 ResourceResponse* response = raw_ptr_resource_handler_->response();
1093 ASSERT_TRUE(response); 1094 ASSERT_TRUE(response);
1094 1095
(...skipping 18 matching lines...) Expand all
1113 1114
1114 // Test that an HTTPS redirect response has the expected security info 1115 // Test that an HTTPS redirect response has the expected security info
1115 // attached to it. 1116 // attached to it.
1116 TEST_F(HTTPSSecurityInfoResourceLoaderTest, 1117 TEST_F(HTTPSSecurityInfoResourceLoaderTest,
1117 SecurityInfoOnHTTPSRedirectResource) { 1118 SecurityInfoOnHTTPSRedirectResource) {
1118 // Start the request and wait for it to finish. 1119 // Start the request and wait for it to finish.
1119 scoped_ptr<net::URLRequest> request( 1120 scoped_ptr<net::URLRequest> request(
1120 resource_context_.GetRequestContext()->CreateRequest( 1121 resource_context_.GetRequestContext()->CreateRequest(
1121 test_https_redirect_url(), net::DEFAULT_PRIORITY, 1122 test_https_redirect_url(), net::DEFAULT_PRIORITY,
1122 nullptr /* delegate */)); 1123 nullptr /* delegate */));
1123 SetUpResourceLoader(request.Pass()); 1124 SetUpResourceLoader(std::move(request));
1124 1125
1125 // Send the request and wait until it completes. 1126 // Send the request and wait until it completes.
1126 loader_->StartRequest(); 1127 loader_->StartRequest();
1127 raw_ptr_resource_handler_->WaitForResponseComplete(); 1128 raw_ptr_resource_handler_->WaitForResponseComplete();
1128 ASSERT_EQ(net::URLRequestStatus::SUCCESS, 1129 ASSERT_EQ(net::URLRequestStatus::SUCCESS,
1129 raw_ptr_to_request_->status().status()); 1130 raw_ptr_to_request_->status().status());
1130 ASSERT_TRUE(raw_ptr_resource_handler_->received_request_redirected()); 1131 ASSERT_TRUE(raw_ptr_resource_handler_->received_request_redirected());
1131 1132
1132 ResourceResponse* redirect_response = 1133 ResourceResponse* redirect_response =
1133 raw_ptr_resource_handler_->redirect_response(); 1134 raw_ptr_resource_handler_->redirect_response();
(...skipping 12 matching lines...) Expand all
1146 ASSERT_TRUE( 1147 ASSERT_TRUE(
1147 CertStore::GetInstance()->RetrieveCert(deserialized.cert_id, &cert)); 1148 CertStore::GetInstance()->RetrieveCert(deserialized.cert_id, &cert));
1148 EXPECT_TRUE(cert->Equals(GetTestCert().get())); 1149 EXPECT_TRUE(cert->Equals(GetTestCert().get()));
1149 1150
1150 EXPECT_EQ(kTestCertError, deserialized.cert_status); 1151 EXPECT_EQ(kTestCertError, deserialized.cert_status);
1151 EXPECT_EQ(kTestConnectionStatus, deserialized.connection_status); 1152 EXPECT_EQ(kTestConnectionStatus, deserialized.connection_status);
1152 EXPECT_EQ(kTestSecurityBits, deserialized.security_bits); 1153 EXPECT_EQ(kTestSecurityBits, deserialized.security_bits);
1153 } 1154 }
1154 1155
1155 } // namespace content 1156 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/loader/resource_loader.cc ('k') | content/browser/loader/resource_scheduler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698