summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-03 20:10:53 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-03 20:10:53 +0000
commit1d88929e761889394c1a97e294e70932dafa5301 (patch)
treed75a1c39f49205ca7f58cd06024e1b1745e41d8c /net
parent1247de8adb3acfbe1b26416a4e4a89aacab87388 (diff)
downloadchromium_src-1d88929e761889394c1a97e294e70932dafa5301.zip
chromium_src-1d88929e761889394c1a97e294e70932dafa5301.tar.gz
chromium_src-1d88929e761889394c1a97e294e70932dafa5301.tar.bz2
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
Diffstat (limited to 'net')
-rw-r--r--net/url_request/test_url_fetcher_factory.cc17
-rw-r--r--net/url_request/test_url_fetcher_factory.h1
2 files changed, 18 insertions, 0 deletions
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<URLFetcherResponseWriter> 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<IOBuffer> 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<URLFetcherResponseWriter> response_writer_;
DISALLOW_COPY_AND_ASSIGN(TestURLFetcher);
};