Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(108)

Unified Diff: content/test/test_url_fetcher_factory.cc

Issue 8395038: Make test URLFetcher implementations not derive from the URLFetcher implementation, since we want... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: move factory to its own file and remove Create function from URLFetcher impl Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/test/test_url_fetcher_factory.cc
===================================================================
--- content/test/test_url_fetcher_factory.cc (revision 107268)
+++ content/test/test_url_fetcher_factory.cc (working copy)
@@ -8,11 +8,14 @@
#include "base/compiler_specific.h"
#include "base/message_loop.h"
+#include "content/common/net/url_fetcher.h"
#include "content/public/common/url_fetcher_delegate.h"
+#include "net/base/host_port_pair.h"
#include "net/http/http_response_headers.h"
#include "net/url_request/url_request_status.h"
-ScopedURLFetcherFactory::ScopedURLFetcherFactory(URLFetcher::Factory* factory) {
+ScopedURLFetcherFactory::ScopedURLFetcherFactory(
+ content::URLFetcherFactory* factory) {
DCHECK(!URLFetcher::factory());
URLFetcher::set_factory(factory);
}
@@ -26,15 +29,28 @@
const GURL& url,
URLFetcher::RequestType request_type,
content::URLFetcherDelegate* d)
wtc 2011/10/27 21:29:16 The |request_type| argument is not used. I am not
jam 2011/10/27 22:34:41 when doing this originally i wasn't sure if it's n
- : URLFetcher(url, request_type, d),
- id_(id),
+ : id_(id),
original_url_(url),
- did_receive_last_chunk_(false) {
+ delegate_(d),
+ did_receive_last_chunk_(false),
+ fake_load_flags_(0),
+ fake_response_code_(-1),
+ fake_response_destination_(STRING),
+ fake_was_fetched_via_proxy_(false),
+ fake_max_retries_(0) {
}
TestURLFetcher::~TestURLFetcher() {
}
+void TestURLFetcher::SetUploadData(const std::string& upload_content_type,
+ const std::string& upload_content) {
+ upload_data_ = upload_content;
+}
+
+void TestURLFetcher::SetChunkedUpload(const std::string& upload_content_type) {
+}
+
void TestURLFetcher::AppendChunkToUpload(const std::string& data,
bool is_last_chunk) {
DCHECK(!did_receive_last_chunk_);
@@ -42,36 +58,104 @@
chunks_.push_back(data);
}
+void TestURLFetcher::SetLoadFlags(int load_flags) {
+ fake_load_flags_= load_flags;
+}
+
+int TestURLFetcher::GetLoadFlags() const {
+ return fake_load_flags_;
+}
+
+void TestURLFetcher::SetReferrer(const std::string& referrer) {
+}
+
+void TestURLFetcher::SetExtraRequestHeaders(
+ const std::string& extra_request_headers) {
+ fake_extra_request_headers_.Clear();
+ fake_extra_request_headers_.AddHeadersFromString(extra_request_headers);
+}
+
+void TestURLFetcher::GetExtraRequestHeaders(net::HttpRequestHeaders* headers) {
+ *headers = fake_extra_request_headers_;
+}
+
+void TestURLFetcher::SetRequestContext(
+ net::URLRequestContextGetter* request_context_getter) {
+}
+
+void TestURLFetcher::SetAutomaticallyRetryOn5xx(bool retry) {
+}
+
+void TestURLFetcher::SetMaxRetries(int max_retries) {
+ fake_max_retries_ = max_retries;
+}
+
+int TestURLFetcher::GetMaxRetries() const {
+ return fake_max_retries_;
+}
+
+base::TimeDelta TestURLFetcher::GetBackoffDelay() const {
+ return fake_backoff_delay_;
+}
+
+void TestURLFetcher::SaveResponseToTemporaryFile(
+ scoped_refptr<base::MessageLoopProxy> file_message_loop_proxy) {
+}
+
+net::HttpResponseHeaders* TestURLFetcher::GetResponseHeaders() const {
+ return fake_response_headers_;
+}
+
+net::HostPortPair TestURLFetcher::GetSocketAddress() const {
+ NOTIMPLEMENTED();
+ return net::HostPortPair();
+}
+
+bool TestURLFetcher::WasFetchedViaProxy() const {
+ return fake_was_fetched_via_proxy_;
+}
+
+void TestURLFetcher::Start() {
+ // Overriden to do nothing. It is assumed the caller will notify the delegate.
+}
+
+void TestURLFetcher::StartWithRequestContextGetter(
+ net::URLRequestContextGetter* request_context_getter) {
+ NOTIMPLEMENTED();
+}
+
const GURL& TestURLFetcher::GetOriginalUrl() const {
return original_url_;
}
-void TestURLFetcher::set_status(const net::URLRequestStatus& status) {
- fake_status_ = status;
+const GURL& TestURLFetcher::GetUrl() const {
+ return fake_url_;
}
-void TestURLFetcher::set_was_fetched_via_proxy(bool flag) {
- URLFetcher::set_was_fetched_via_proxy(flag);
+const net::URLRequestStatus& TestURLFetcher::GetStatus() const {
+ return fake_status_;
}
-void TestURLFetcher::set_response_headers(
- scoped_refptr<net::HttpResponseHeaders> headers) {
- URLFetcher::set_response_headers(headers);
+int TestURLFetcher::GetResponseCode() const {
+ return fake_response_code_;
}
-void TestURLFetcher::SetResponseString(const std::string& response) {
- SetResponseDestinationForTesting(STRING);
- fake_response_string_ = response;
+const net::ResponseCookies& TestURLFetcher::GetCookies() const {
+ return fake_cookies_;
}
-void TestURLFetcher::SetResponseFilePath(const FilePath& path) {
- SetResponseDestinationForTesting(TEMP_FILE);
- fake_response_file_path_ = path;
+bool TestURLFetcher::FileErrorOccurred(
+ base::PlatformFileError* out_error_code) const {
+ NOTIMPLEMENTED();
+ return false;
}
+void TestURLFetcher::ReceivedContentWasMalformed() {
+}
+
bool TestURLFetcher::GetResponseAsString(
std::string* out_response_string) const {
- if (GetResponseDestinationForTesting() != STRING)
+ if (fake_response_destination_ != STRING)
return false;
*out_response_string = fake_response_string_;
@@ -80,23 +164,50 @@
bool TestURLFetcher::GetResponseAsFilePath(
bool take_ownership, FilePath* out_response_path) const {
- if (GetResponseDestinationForTesting() != TEMP_FILE)
+ if (fake_response_destination_ != TEMP_FILE)
return false;
*out_response_path = fake_response_file_path_;
return true;
}
+void TestURLFetcher::set_status(const net::URLRequestStatus& status) {
+ fake_status_ = status;
+}
+
+void TestURLFetcher::set_was_fetched_via_proxy(bool flag) {
+ fake_was_fetched_via_proxy_ = flag;
+}
+
+void TestURLFetcher::set_response_headers(
+ scoped_refptr<net::HttpResponseHeaders> headers) {
+ fake_response_headers_ = headers;
+}
+
+void TestURLFetcher::set_backoff_delay(base::TimeDelta backoff_delay) {
+ fake_backoff_delay_ = backoff_delay;
+}
+
+void TestURLFetcher::SetResponseString(const std::string& response) {
+ fake_response_destination_ = STRING;
+ fake_response_string_ = response;
+}
+
+void TestURLFetcher::SetResponseFilePath(const FilePath& path) {
+ fake_response_destination_ = TEMP_FILE;
+ fake_response_file_path_ = path;
+}
+
TestURLFetcherFactory::TestURLFetcherFactory()
: ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
}
TestURLFetcherFactory::~TestURLFetcherFactory() {}
-URLFetcher* TestURLFetcherFactory::CreateURLFetcher(
+content::URLFetcher* TestURLFetcherFactory::CreateURLFetcher(
int id,
const GURL& url,
- URLFetcher::RequestType request_type,
+ content::URLFetcher::RequestType request_type,
content::URLFetcherDelegate* d) {
TestURLFetcher* fetcher = new TestURLFetcher(id, url, request_type, d);
fetchers_[id] = fetcher;
@@ -114,36 +225,20 @@
fetchers_.erase(i);
}
-const GURL& TestURLFetcher::GetUrl() const {
- return fake_url_;
-}
-
-const net::URLRequestStatus& TestURLFetcher::GetStatus() const {
- return fake_status_;
-}
-
-int TestURLFetcher::GetResponseCode() const {
- return fake_response_code_;
-}
-
-const net::ResponseCookies& TestURLFetcher::GetCookies() const {
- return fake_cookies_;
-}
-
// This class is used by the FakeURLFetcherFactory below.
-class FakeURLFetcher : public URLFetcher {
+class FakeURLFetcher : public TestURLFetcher {
public:
// Normal URL fetcher constructor but also takes in a pre-baked response.
FakeURLFetcher(const GURL& url, RequestType request_type,
content::URLFetcherDelegate* d,
const std::string& response_data, bool success)
- : URLFetcher(url, request_type, d),
- url_(url),
- response_data_(response_data),
- success_(success),
- status_(success ? net::URLRequestStatus::SUCCESS :
- net::URLRequestStatus::FAILED, 0),
+ : TestURLFetcher(0, url, request_type, d),
ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {
+ set_status(net::URLRequestStatus(
+ success ? net::URLRequestStatus::SUCCESS :net::URLRequestStatus::FAILED,
wtc 2011/10/27 21:29:16 Add a space before net::URLRequestStatus::FAILED.
jam 2011/10/27 22:34:41 Done.
+ 0));
+ set_response_code(success ? 200 : 500);
+ SetResponseString(response_data);
}
// Start the request. This will call the given delegate asynchronously
@@ -154,28 +249,8 @@
method_factory_.NewRunnableMethod(&FakeURLFetcher::RunDelegate));
}
- // These methods are overriden so we can use the version of
- // OnURLFetchComplete that only has a single URLFetcher argument.
- virtual const net::ResponseCookies& GetCookies() const OVERRIDE {
- return cookies_;
- }
-
- virtual bool GetResponseAsString(
- std::string* out_response_string) const OVERRIDE {
- *out_response_string = response_data_;
- return true;
- }
-
- virtual int GetResponseCode() const OVERRIDE {
- return success_ ? 200 : 500;
- }
-
- virtual const net::URLRequestStatus& GetStatus() const OVERRIDE {
- return status_;
- }
-
virtual const GURL& GetUrl() const OVERRIDE {
- return url_;
+ return TestURLFetcher::GetOriginalUrl();
}
private:
@@ -188,14 +263,6 @@
delegate()->OnURLFetchComplete(this);
}
- // Pre-baked response data and flag which indicates whether the request should
- // be successful or not.
- GURL url_;
- std::string response_data_;
- bool success_;
- net::URLRequestStatus status_;
- net::ResponseCookies cookies_;
-
// Method factory used to run the delegate.
ScopedRunnableMethodFactory<FakeURLFetcher> method_factory_;
@@ -207,17 +274,17 @@
}
FakeURLFetcherFactory::FakeURLFetcherFactory(
- URLFetcher::Factory* default_factory)
+ content::URLFetcherFactory* default_factory)
: ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
default_factory_(default_factory) {
}
FakeURLFetcherFactory::~FakeURLFetcherFactory() {}
-URLFetcher* FakeURLFetcherFactory::CreateURLFetcher(
+content::URLFetcher* FakeURLFetcherFactory::CreateURLFetcher(
int id,
const GURL& url,
- URLFetcher::RequestType request_type,
+ content::URLFetcher::RequestType request_type,
content::URLFetcherDelegate* d) {
FakeResponseMap::const_iterator it = fake_responses_.find(url);
if (it == fake_responses_.end()) {
@@ -248,10 +315,10 @@
URLFetcherFactory::~URLFetcherFactory() {}
-URLFetcher* URLFetcherFactory::CreateURLFetcher(
+content::URLFetcher* URLFetcherFactory::CreateURLFetcher(
int id,
const GURL& url,
- URLFetcher::RequestType request_type,
+ content::URLFetcher::RequestType request_type,
content::URLFetcherDelegate* d) {
return new URLFetcher(url, request_type, d);
}
« content/test/test_url_fetcher_factory.h ('K') | « content/test/test_url_fetcher_factory.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698