From 1d88929e761889394c1a97e294e70932dafa5301 Mon Sep 17 00:00:00 2001 From: "estade@chromium.org" Date: Mon, 3 Feb 2014 20:10:53 +0000 Subject: libaddressinput - one less copy when downloading data BUG=337679 Review URL: https://codereview.chromium.org/151133002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248561 0039d316-1c4b-4281-b951-d872f2087c98 --- net/url_request/test_url_fetcher_factory.cc | 17 +++++++++++++++++ net/url_request/test_url_fetcher_factory.h | 1 + 2 files changed, 18 insertions(+) (limited to 'net') diff --git a/net/url_request/test_url_fetcher_factory.cc b/net/url_request/test_url_fetcher_factory.cc index f44d22b..2173bfb 100644 --- a/net/url_request/test_url_fetcher_factory.cc +++ b/net/url_request/test_url_fetcher_factory.cc @@ -11,6 +11,7 @@ #include "base/memory/weak_ptr.h" #include "base/message_loop/message_loop.h" #include "net/base/host_port_pair.h" +#include "net/base/io_buffer.h" #include "net/base/net_errors.h" #include "net/http/http_response_headers.h" #include "net/url_request/url_fetcher_delegate.h" @@ -150,6 +151,22 @@ void TestURLFetcher::SaveResponseToTemporaryFile( void TestURLFetcher::SaveResponseWithWriter( scoped_ptr response_writer) { + if (fake_response_destination_ == STRING) { + response_writer_ = response_writer.Pass(); + int response = response_writer_->Initialize(CompletionCallback()); + // The TestURLFetcher doesn't handle asynchronous writes. + DCHECK_EQ(OK, response); + + scoped_refptr buffer(new StringIOBuffer(fake_response_string_)); + response = response_writer_->Write(buffer.get(), + fake_response_string_.size(), + CompletionCallback()); + DCHECK_EQ(OK, response); + response = response_writer_->Finish(CompletionCallback()); + DCHECK_EQ(OK, response); + } else { + NOTIMPLEMENTED(); + } } HttpResponseHeaders* TestURLFetcher::GetResponseHeaders() const { diff --git a/net/url_request/test_url_fetcher_factory.h b/net/url_request/test_url_fetcher_factory.h index b88daac..f2139d9 100644 --- a/net/url_request/test_url_fetcher_factory.h +++ b/net/url_request/test_url_fetcher_factory.h @@ -222,6 +222,7 @@ class TestURLFetcher : public URLFetcher { HttpRequestHeaders fake_extra_request_headers_; int fake_max_retries_; base::TimeDelta fake_backoff_delay_; + scoped_ptr response_writer_; DISALLOW_COPY_AND_ASSIGN(TestURLFetcher); }; -- cgit v1.1