diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/url_request/test_url_fetcher_factory.cc | 17 | ||||
-rw-r--r-- | net/url_request/test_url_fetcher_factory.h | 1 |
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); }; |