Index: net/url_request/test_url_fetcher_factory.cc |
diff --git a/net/url_request/test_url_fetcher_factory.cc b/net/url_request/test_url_fetcher_factory.cc |
index 0a96153d6e6dc3516747a717be7c6523bce2d03f..304ebe643a18861d34e0e7807a27e570dc1ff42d 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" |
@@ -155,6 +156,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 { |