Commit 35a90702 authored by cbentzel@chromium.org's avatar cbentzel@chromium.org

Remove ProtocolFactory use in file_system_url_request_job_unittest.cc

BUG=81979

Review URL: https://codereview.chromium.org/293343002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272834 0039d316-1c4b-4281-b951-d872f2087c98
parent 24f81cad
...@@ -80,6 +80,38 @@ bool TestAutoMountForURLRequest( ...@@ -80,6 +80,38 @@ bool TestAutoMountForURLRequest(
return true; return true;
} }
class FileSystemURLRequestJobFactory : public net::URLRequestJobFactory {
public:
FileSystemURLRequestJobFactory(const std::string& storage_domain,
FileSystemContext* context)
: storage_domain_(storage_domain), file_system_context_(context) {
}
virtual net::URLRequestJob* MaybeCreateJobWithProtocolHandler(
const std::string& scheme,
net::URLRequest* request,
net::NetworkDelegate* network_delegate) const OVERRIDE {
return new fileapi::FileSystemURLRequestJob(
request, network_delegate, storage_domain_, file_system_context_);
}
virtual bool IsHandledProtocol(const std::string& scheme) const OVERRIDE {
return true;
}
virtual bool IsHandledURL(const GURL& url) const OVERRIDE {
return true;
}
virtual bool IsSafeRedirectTarget(const GURL& location) const OVERRIDE {
return false;
}
private:
std::string storage_domain_;
FileSystemContext* file_system_context_;
};
} // namespace } // namespace
class FileSystemURLRequestJobTest : public testing::Test { class FileSystemURLRequestJobTest : public testing::Test {
...@@ -101,18 +133,9 @@ class FileSystemURLRequestJobTest : public testing::Test { ...@@ -101,18 +133,9 @@ class FileSystemURLRequestJobTest : public testing::Test {
base::Bind(&FileSystemURLRequestJobTest::OnOpenFileSystem, base::Bind(&FileSystemURLRequestJobTest::OnOpenFileSystem,
weak_factory_.GetWeakPtr())); weak_factory_.GetWeakPtr()));
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
net::URLRequest::Deprecated::RegisterProtocolFactory(
"filesystem", &FileSystemURLRequestJobFactory);
} }
virtual void TearDown() OVERRIDE { virtual void TearDown() OVERRIDE {
net::URLRequest::Deprecated::RegisterProtocolFactory("filesystem", NULL);
ClearUnusedJob();
if (pending_job_.get()) {
pending_job_->Kill();
pending_job_ = NULL;
}
// FileReader posts a task to close the file in destructor. // FileReader posts a task to close the file in destructor.
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
} }
...@@ -150,14 +173,15 @@ class FileSystemURLRequestJobTest : public testing::Test { ...@@ -150,14 +173,15 @@ class FileSystemURLRequestJobTest : public testing::Test {
// Make delegate_ exit the MessageLoop when the request is done. // Make delegate_ exit the MessageLoop when the request is done.
delegate_->set_quit_on_complete(true); delegate_->set_quit_on_complete(true);
delegate_->set_quit_on_redirect(true); delegate_->set_quit_on_redirect(true);
job_factory_.reset(new FileSystemURLRequestJobFactory(
url.GetOrigin().host(), file_system_context));
empty_context_.set_job_factory(job_factory_.get());
request_ = empty_context_.CreateRequest( request_ = empty_context_.CreateRequest(
url, net::DEFAULT_PRIORITY, delegate_.get(), NULL); url, net::DEFAULT_PRIORITY, delegate_.get(), NULL);
if (headers) if (headers)
request_->SetExtraRequestHeaders(*headers); request_->SetExtraRequestHeaders(*headers);
ASSERT_TRUE(!job_);
job_ = new FileSystemURLRequestJob(
request_.get(), NULL, url.GetOrigin().host(), file_system_context);
pending_job_ = job_;
request_->Start(); request_->Start();
ASSERT_TRUE(request_->is_pending()); // verify that we're starting async ASSERT_TRUE(request_->is_pending()); // verify that we're starting async
...@@ -207,23 +231,6 @@ class FileSystemURLRequestJobTest : public testing::Test { ...@@ -207,23 +231,6 @@ class FileSystemURLRequestJobTest : public testing::Test {
return GURL(kFileSystemURLPrefix + path); return GURL(kFileSystemURLPrefix + path);
} }
static net::URLRequestJob* FileSystemURLRequestJobFactory(
net::URLRequest* request,
net::NetworkDelegate* network_delegate,
const std::string& scheme) {
DCHECK(job_);
net::URLRequestJob* temp = job_;
job_ = NULL;
return temp;
}
static void ClearUnusedJob() {
if (job_) {
scoped_refptr<net::URLRequestJob> deleter = job_;
job_ = NULL;
}
}
// Put the message loop at the top, so that it's the last thing deleted. // Put the message loop at the top, so that it's the last thing deleted.
base::MessageLoopForIO message_loop_; base::MessageLoopForIO message_loop_;
...@@ -232,18 +239,13 @@ class FileSystemURLRequestJobTest : public testing::Test { ...@@ -232,18 +239,13 @@ class FileSystemURLRequestJobTest : public testing::Test {
base::WeakPtrFactory<FileSystemURLRequestJobTest> weak_factory_; base::WeakPtrFactory<FileSystemURLRequestJobTest> weak_factory_;
net::URLRequestContext empty_context_; net::URLRequestContext empty_context_;
scoped_ptr<FileSystemURLRequestJobFactory> job_factory_;
// NOTE: order matters, request must die before delegate // NOTE: order matters, request must die before delegate
scoped_ptr<net::TestDelegate> delegate_; scoped_ptr<net::TestDelegate> delegate_;
scoped_ptr<net::URLRequest> request_; scoped_ptr<net::URLRequest> request_;
scoped_refptr<net::URLRequestJob> pending_job_;
static net::URLRequestJob* job_;
}; };
// static
net::URLRequestJob* FileSystemURLRequestJobTest::job_ = NULL;
namespace { namespace {
TEST_F(FileSystemURLRequestJobTest, FileTest) { TEST_F(FileSystemURLRequestJobTest, FileTest) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment