diff options
author | kinaba@chromium.org <kinaba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-29 05:16:26 +0000 |
---|---|---|
committer | kinaba@chromium.org <kinaba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-29 05:16:26 +0000 |
commit | aa7f85b2ab32530203283b2c85141695a0ec18b6 (patch) | |
tree | 83f189b5b771a7cc7ba7909c44754b4d7efc7dd6 /webkit | |
parent | 1df8ccc1b34e768ee7be4207f76f1fce7e19b7c0 (diff) | |
download | chromium_src-aa7f85b2ab32530203283b2c85141695a0ec18b6.zip chromium_src-aa7f85b2ab32530203283b2c85141695a0ec18b6.tar.gz chromium_src-aa7f85b2ab32530203283b2c85141695a0ec18b6.tar.bz2 |
Make FileSystemOperationWriteTest independent from URLRequest::Deprecated.
Clean up before adding GDataFileSystem::Write() and its tests.
BUG=NONE
TEST=unit_tests --gtest_filter='*FileSystemOperationWrite*'
Review URL: https://chromiumcodereview.appspot.com/10442054
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139275 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/fileapi/file_system_operation_write_unittest.cc | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/webkit/fileapi/file_system_operation_write_unittest.cc b/webkit/fileapi/file_system_operation_write_unittest.cc index 2288c82..146310d 100644 --- a/webkit/fileapi/file_system_operation_write_unittest.cc +++ b/webkit/fileapi/file_system_operation_write_unittest.cc @@ -19,6 +19,7 @@ #include "net/url_request/url_request.h" #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_job.h" +#include "net/url_request/url_request_job_factory.h" #include "testing/gtest/include/gtest/gtest.h" #include "webkit/blob/blob_data.h" #include "webkit/blob/blob_storage_controller.h" @@ -154,10 +155,37 @@ class FileSystemOperationWriteTest namespace { +class TestProtocolHandler : public net::URLRequestJobFactory::ProtocolHandler { + public: + explicit TestProtocolHandler( + webkit_blob::BlobStorageController* blob_storage_controller) + : blob_storage_controller_(blob_storage_controller) {} + + virtual ~TestProtocolHandler() {} + + virtual net::URLRequestJob* MaybeCreateJob( + net::URLRequest* request) const OVERRIDE { + return new webkit_blob::BlobURLRequestJob( + request, + blob_storage_controller_->GetBlobDataFromUrl(request->url()), + base::MessageLoopProxy::current()); + } + + private: + webkit_blob::BlobStorageController* const blob_storage_controller_; + + DISALLOW_COPY_AND_ASSIGN(TestProtocolHandler); +}; + class TestURLRequestContext : public net::URLRequestContext { public: TestURLRequestContext() - : blob_storage_controller_(new webkit_blob::BlobStorageController) {} + : blob_storage_controller_(new webkit_blob::BlobStorageController) { + // Job factory owns the protocol handler. + job_factory_.SetProtocolHandler( + "blob", new TestProtocolHandler(blob_storage_controller_.get())); + set_job_factory(&job_factory_); + } virtual ~TestURLRequestContext() {} @@ -166,19 +194,11 @@ class TestURLRequestContext : public net::URLRequestContext { } private: + net::URLRequestJobFactory job_factory_; scoped_ptr<webkit_blob::BlobStorageController> blob_storage_controller_; -}; -static net::URLRequestJob* BlobURLRequestJobFactory(net::URLRequest* request, - const std::string& scheme) { - webkit_blob::BlobStorageController* blob_storage_controller = - static_cast<const TestURLRequestContext*>(request->context())-> - blob_storage_controller(); - return new webkit_blob::BlobURLRequestJob( - request, - blob_storage_controller->GetBlobDataFromUrl(request->url()), - base::MessageLoopProxy::current()); -} + DISALLOW_COPY_AND_ASSIGN(TestURLRequestContext); +}; } // namespace (anonymous) @@ -196,13 +216,9 @@ void FileSystemOperationWriteTest::SetUp() { operation()->CreateFile( URLForPath(virtual_path_), true /* exclusive */, base::Bind(&AssertStatusEq, base::PLATFORM_FILE_OK)); - - net::URLRequest::Deprecated::RegisterProtocolFactory( - "blob", &BlobURLRequestJobFactory); } void FileSystemOperationWriteTest::TearDown() { - net::URLRequest::Deprecated::RegisterProtocolFactory("blob", NULL); quota_manager_ = NULL; test_helper_.TearDown(); } |