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

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

Issue 1170623003: Revert "content: Remove use of MessageLoopProxy and deprecated MessageLoop APIs" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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
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 "base/files/file.h" 7 #include "base/files/file.h"
8 #include "base/files/file_util.h" 8 #include "base/files/file_util.h"
9 #include "base/location.h"
10 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/message_loop/message_loop_proxy.h"
11 #include "base/run_loop.h" 11 #include "base/run_loop.h"
12 #include "base/single_thread_task_runner.h"
13 #include "base/thread_task_runner_handle.h"
14 #include "content/browser/browser_thread_impl.h" 12 #include "content/browser/browser_thread_impl.h"
15 #include "content/browser/loader/redirect_to_file_resource_handler.h" 13 #include "content/browser/loader/redirect_to_file_resource_handler.h"
16 #include "content/browser/loader/resource_loader_delegate.h" 14 #include "content/browser/loader/resource_loader_delegate.h"
17 #include "content/public/browser/client_certificate_delegate.h" 15 #include "content/public/browser/client_certificate_delegate.h"
18 #include "content/public/browser/resource_request_info.h" 16 #include "content/public/browser/resource_request_info.h"
19 #include "content/public/common/content_paths.h" 17 #include "content/public/common/content_paths.h"
20 #include "content/public/common/resource_response.h" 18 #include "content/public/common/resource_response.h"
21 #include "content/public/test/mock_resource_context.h" 19 #include "content/public/test/mock_resource_context.h"
22 #include "content/public/test/test_browser_context.h" 20 #include "content/public/test/test_browser_context.h"
23 #include "content/public/test/test_browser_thread_bundle.h" 21 #include "content/public/test/test_browser_thread_bundle.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 // reset |loader| and then call the callback. The caller is responsible for 97 // reset |loader| and then call the callback. The caller is responsible for
100 // ensuring the pointers remain valid until the process is complete. 98 // ensuring the pointers remain valid until the process is complete.
101 explicit LoaderDestroyingCertStore(scoped_ptr<ResourceLoader>* loader) 99 explicit LoaderDestroyingCertStore(scoped_ptr<ResourceLoader>* loader)
102 : loader_(loader) {} 100 : loader_(loader) {}
103 101
104 // net::ClientCertStore: 102 // net::ClientCertStore:
105 void GetClientCerts(const net::SSLCertRequestInfo& cert_request_info, 103 void GetClientCerts(const net::SSLCertRequestInfo& cert_request_info,
106 net::CertificateList* selected_certs, 104 net::CertificateList* selected_certs,
107 const base::Closure& callback) override { 105 const base::Closure& callback) override {
108 // Don't destroy |loader_| while it's on the stack. 106 // Don't destroy |loader_| while it's on the stack.
109 base::ThreadTaskRunnerHandle::Get()->PostTask( 107 base::MessageLoop::current()->PostTask(
110 FROM_HERE, base::Bind(&LoaderDestroyingCertStore::DoCallback, 108 FROM_HERE, base::Bind(&LoaderDestroyingCertStore::DoCallback,
111 base::Unretained(loader_), callback)); 109 base::Unretained(loader_), callback));
112 } 110 }
113 111
114 private: 112 private:
115 static void DoCallback(scoped_ptr<ResourceLoader>* loader, 113 static void DoCallback(scoped_ptr<ResourceLoader>* loader,
116 const base::Closure& callback) { 114 const base::Closure& callback) {
117 loader->reset(); 115 loader->reset();
118 callback.Run(); 116 callback.Run();
119 } 117 }
(...skipping 10 matching lines...) Expand all
130 128
131 static std::vector<std::string> test_authorities() { 129 static std::vector<std::string> test_authorities() {
132 return std::vector<std::string>(1, "dummy"); 130 return std::vector<std::string>(1, "dummy");
133 } 131 }
134 132
135 // net::URLRequestTestJob: 133 // net::URLRequestTestJob:
136 void Start() override { 134 void Start() override {
137 scoped_refptr<net::SSLCertRequestInfo> cert_request_info( 135 scoped_refptr<net::SSLCertRequestInfo> cert_request_info(
138 new net::SSLCertRequestInfo); 136 new net::SSLCertRequestInfo);
139 cert_request_info->cert_authorities = test_authorities(); 137 cert_request_info->cert_authorities = test_authorities();
140 base::ThreadTaskRunnerHandle::Get()->PostTask( 138 base::MessageLoop::current()->PostTask(
141 FROM_HERE, 139 FROM_HERE,
142 base::Bind(&MockClientCertURLRequestJob::NotifyCertificateRequested, 140 base::Bind(&MockClientCertURLRequestJob::NotifyCertificateRequested,
143 this, cert_request_info)); 141 this, cert_request_info));
144 } 142 }
145 143
146 void ContinueWithCertificate(net::X509Certificate* cert) override { 144 void ContinueWithCertificate(net::X509Certificate* cert) override {
147 net::URLRequestTestJob::Start(); 145 net::URLRequestTestJob::Start();
148 } 146 }
149 147
150 private: 148 private:
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 net::ChunkedUploadDataStream stream_; 400 net::ChunkedUploadDataStream stream_;
403 uint64 size_; 401 uint64 size_;
404 402
405 DISALLOW_COPY_AND_ASSIGN(NonChunkedUploadDataStream); 403 DISALLOW_COPY_AND_ASSIGN(NonChunkedUploadDataStream);
406 }; 404 };
407 405
408 // Fails to create a temporary file with the given error. 406 // Fails to create a temporary file with the given error.
409 void CreateTemporaryError( 407 void CreateTemporaryError(
410 base::File::Error error, 408 base::File::Error error,
411 const CreateTemporaryFileStreamCallback& callback) { 409 const CreateTemporaryFileStreamCallback& callback) {
412 base::ThreadTaskRunnerHandle::Get()->PostTask( 410 base::MessageLoop::current()->PostTask(
413 FROM_HERE, 411 FROM_HERE,
414 base::Bind(callback, error, base::Passed(scoped_ptr<net::FileStream>()), 412 base::Bind(callback, error, base::Passed(scoped_ptr<net::FileStream>()),
415 scoped_refptr<ShareableFileReference>())); 413 scoped_refptr<ShareableFileReference>()));
416 } 414 }
417 415
418 } // namespace 416 } // namespace
419 417
420 class ResourceLoaderTest : public testing::Test, 418 class ResourceLoaderTest : public testing::Test,
421 public ResourceLoaderDelegate { 419 public ResourceLoaderDelegate {
422 protected: 420 protected:
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 // Make a temporary file. 772 // Make a temporary file.
775 CHECK(base::CreateTemporaryFile(&temp_path_)); 773 CHECK(base::CreateTemporaryFile(&temp_path_));
776 int flags = base::File::FLAG_WRITE | base::File::FLAG_TEMPORARY | 774 int flags = base::File::FLAG_WRITE | base::File::FLAG_TEMPORARY |
777 base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_ASYNC; 775 base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_ASYNC;
778 base::File file(temp_path_, flags); 776 base::File file(temp_path_, flags);
779 CHECK(file.IsValid()); 777 CHECK(file.IsValid());
780 778
781 // Create mock file streams and a ShareableFileReference. 779 // Create mock file streams and a ShareableFileReference.
782 scoped_ptr<net::testing::MockFileStream> file_stream( 780 scoped_ptr<net::testing::MockFileStream> file_stream(
783 new net::testing::MockFileStream(file.Pass(), 781 new net::testing::MockFileStream(file.Pass(),
784 base::ThreadTaskRunnerHandle::Get())); 782 base::MessageLoopProxy::current()));
785 file_stream_ = file_stream.get(); 783 file_stream_ = file_stream.get();
786 deletable_file_ = ShareableFileReference::GetOrCreate( 784 deletable_file_ = ShareableFileReference::GetOrCreate(
787 temp_path_, 785 temp_path_,
788 ShareableFileReference::DELETE_ON_FINAL_RELEASE, 786 ShareableFileReference::DELETE_ON_FINAL_RELEASE,
789 BrowserThread::GetMessageLoopProxyForThread( 787 BrowserThread::GetMessageLoopProxyForThread(
790 BrowserThread::FILE).get()); 788 BrowserThread::FILE).get());
791 789
792 // Inject them into the handler. 790 // Inject them into the handler.
793 scoped_ptr<RedirectToFileResourceHandler> handler( 791 scoped_ptr<RedirectToFileResourceHandler> handler(
794 new RedirectToFileResourceHandler(leaf_handler.Pass(), request)); 792 new RedirectToFileResourceHandler(leaf_handler.Pass(), request));
795 redirect_to_file_resource_handler_ = handler.get(); 793 redirect_to_file_resource_handler_ = handler.get();
796 handler->SetCreateTemporaryFileStreamFunctionForTesting( 794 handler->SetCreateTemporaryFileStreamFunctionForTesting(
797 base::Bind(&ResourceLoaderRedirectToFileTest::PostCallback, 795 base::Bind(&ResourceLoaderRedirectToFileTest::PostCallback,
798 base::Unretained(this), 796 base::Unretained(this),
799 base::Passed(&file_stream))); 797 base::Passed(&file_stream)));
800 return handler.Pass(); 798 return handler.Pass();
801 } 799 }
802 800
803 private: 801 private:
804 void PostCallback( 802 void PostCallback(
805 scoped_ptr<net::FileStream> file_stream, 803 scoped_ptr<net::FileStream> file_stream,
806 const CreateTemporaryFileStreamCallback& callback) { 804 const CreateTemporaryFileStreamCallback& callback) {
807 base::ThreadTaskRunnerHandle::Get()->PostTask( 805 base::MessageLoop::current()->PostTask(
808 FROM_HERE, base::Bind(callback, base::File::FILE_OK, 806 FROM_HERE,
809 base::Passed(&file_stream), deletable_file_)); 807 base::Bind(callback, base::File::FILE_OK,
808 base::Passed(&file_stream), deletable_file_));
810 } 809 }
811 810
812 base::FilePath temp_path_; 811 base::FilePath temp_path_;
813 scoped_refptr<ShareableFileReference> deletable_file_; 812 scoped_refptr<ShareableFileReference> deletable_file_;
814 // These are owned by the ResourceLoader. 813 // These are owned by the ResourceLoader.
815 net::testing::MockFileStream* file_stream_; 814 net::testing::MockFileStream* file_stream_;
816 RedirectToFileResourceHandler* redirect_to_file_resource_handler_; 815 RedirectToFileResourceHandler* redirect_to_file_resource_handler_;
817 }; 816 };
818 817
819 // Tests that a RedirectToFileResourceHandler works and forwards everything 818 // Tests that a RedirectToFileResourceHandler works and forwards everything
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 ASSERT_TRUE(base::ReadFileToString(temp_path(), &contents)); 986 ASSERT_TRUE(base::ReadFileToString(temp_path(), &contents));
988 EXPECT_EQ(test_data(), contents); 987 EXPECT_EQ(test_data(), contents);
989 988
990 // Release the loader. The file should be gone now. 989 // Release the loader. The file should be gone now.
991 ReleaseLoader(); 990 ReleaseLoader();
992 base::RunLoop().RunUntilIdle(); 991 base::RunLoop().RunUntilIdle();
993 EXPECT_FALSE(base::PathExists(temp_path())); 992 EXPECT_FALSE(base::PathExists(temp_path()));
994 } 993 }
995 994
996 } // namespace content 995 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/loader/resource_loader.cc ('k') | content/browser/loader/upload_data_stream_builder_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698