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

Unified Diff: net/url_request/test_url_fetcher_factory.cc

Issue 12211076: Refactored FakeURLFetcher to make it more flexible (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 10 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
« no previous file with comments | « net/url_request/test_url_fetcher_factory.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 44f7d9379a9ea6de72fd4d00120e79833af5747a..2c37cd41b1c0cde2d6d80047e8816c8e5005cfdb 100644
--- a/net/url_request/test_url_fetcher_factory.cc
+++ b/net/url_request/test_url_fetcher_factory.cc
@@ -279,60 +279,59 @@ void TestURLFetcherFactory::SetDelegateForTests(
delegate_for_tests_ = delegate_for_tests;
}
-// This class is used by the FakeURLFetcherFactory below.
-class FakeURLFetcher : public TestURLFetcher {
- public:
- // Normal URL fetcher constructor but also takes in a pre-baked response.
- FakeURLFetcher(const GURL& url,
- URLFetcherDelegate* d,
- const std::string& response_data, bool success)
- : TestURLFetcher(0, url, d),
- ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
- set_status(URLRequestStatus(
- success ? URLRequestStatus::SUCCESS : URLRequestStatus::FAILED,
- 0));
- set_response_code(success ? 200 : 500);
- SetResponseString(response_data);
- }
-
- // Start the request. This will call the given delegate asynchronously
- // with the pre-baked response as parameter.
- virtual void Start() OVERRIDE {
- MessageLoop::current()->PostTask(
- FROM_HERE,
- base::Bind(&FakeURLFetcher::RunDelegate, weak_factory_.GetWeakPtr()));
- }
-
- virtual const GURL& GetURL() const OVERRIDE {
- return TestURLFetcher::GetOriginalURL();
- }
+FakeURLFetcher::FakeURLFetcher(const GURL& url,
+ URLFetcherDelegate* d,
+ const std::string& response_data,
+ bool success)
+ : TestURLFetcher(0, url, d),
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
+ set_status(URLRequestStatus(
+ success ? URLRequestStatus::SUCCESS : URLRequestStatus::FAILED,
+ 0));
+ set_response_code(success ? 200 : 500);
+ SetResponseString(response_data);
+}
- private:
- virtual ~FakeURLFetcher() {
- }
+FakeURLFetcher::~FakeURLFetcher() {}
- // This is the method which actually calls the delegate that is passed in the
- // constructor.
- void RunDelegate() {
- delegate()->OnURLFetchComplete(this);
- }
+void FakeURLFetcher::Start() {
+ MessageLoop::current()->PostTask(
+ FROM_HERE,
+ base::Bind(&FakeURLFetcher::RunDelegate, weak_factory_.GetWeakPtr()));
+}
- base::WeakPtrFactory<FakeURLFetcher> weak_factory_;
+void FakeURLFetcher::RunDelegate() {
+ delegate()->OnURLFetchComplete(this);
+}
- DISALLOW_COPY_AND_ASSIGN(FakeURLFetcher);
-};
+const GURL& FakeURLFetcher::GetURL() const {
+ return TestURLFetcher::GetOriginalURL();
+}
-FakeURLFetcherFactory::FakeURLFetcherFactory()
+FakeURLFetcherFactory::FakeURLFetcherFactory(
+ URLFetcherFactory* default_factory)
: ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
- default_factory_(NULL) {
+ creator_(base::Bind(&DefaultFakeURLFetcherCreator)),
+ default_factory_(default_factory) {
}
FakeURLFetcherFactory::FakeURLFetcherFactory(
- URLFetcherFactory* default_factory)
+ URLFetcherFactory* default_factory,
+ const FakeURLFetcherCreator& creator)
: ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
+ creator_(creator),
default_factory_(default_factory) {
}
+scoped_ptr<FakeURLFetcher> FakeURLFetcherFactory::DefaultFakeURLFetcherCreator(
+ const GURL& url,
+ URLFetcherDelegate* delegate,
+ const std::string& response,
+ bool success) {
+ return scoped_ptr<FakeURLFetcher>(new FakeURLFetcher(url, delegate,
+ response, success));
+}
+
FakeURLFetcherFactory::~FakeURLFetcherFactory() {}
URLFetcher* FakeURLFetcherFactory::CreateURLFetcher(
@@ -350,7 +349,11 @@ URLFetcher* FakeURLFetcherFactory::CreateURLFetcher(
return default_factory_->CreateURLFetcher(id, url, request_type, d);
}
}
- return new FakeURLFetcher(url, d, it->second.first, it->second.second);
+
+ scoped_ptr<FakeURLFetcher> fake_fetcher =
+ creator_.Run(url, d, it->second.first, it->second.second);
+ // TODO: Make URLFetcherFactory::CreateURLFetcher return a scoped_ptr
+ return fake_fetcher.release();
}
void FakeURLFetcherFactory::SetFakeResponse(const std::string& url,
« no previous file with comments | « net/url_request/test_url_fetcher_factory.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698