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

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: Interface change and stylistic changes per review comments 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
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..a04f2b9c3748ad6c42f9b3f7c958739084dc2265 100644
--- a/net/url_request/test_url_fetcher_factory.cc
+++ b/net/url_request/test_url_fetcher_factory.cc
@@ -279,11 +279,7 @@ 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,
+FakeURLFetcher::FakeURLFetcher(const GURL& url,
URLFetcherDelegate* d,
akalin 2013/02/13 22:17:49 indentation
Noam Samuel (WRONG ACCOUNT) 2013/02/13 23:35:11 Done.
const std::string& response_data, bool success)
: TestURLFetcher(0, url, d),
@@ -293,46 +289,47 @@ class FakeURLFetcher : public TestURLFetcher {
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();
- }
+}
- 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(
+ const FakeURLFetcherCreator& creator,
URLFetcherFactory* default_factory)
: ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
+ creator_(creator),
default_factory_(default_factory) {
}
+FakeURLFetcher* FakeURLFetcherFactory::DefaultFakeURLFetcherCreator(
+ const GURL& url,
+ URLFetcherDelegate* delegate,
+ const std::string& response,
+ bool success) {
+ return new FakeURLFetcher(url, delegate, response, success);
+}
+
FakeURLFetcherFactory::~FakeURLFetcherFactory() {}
URLFetcher* FakeURLFetcherFactory::CreateURLFetcher(
@@ -350,7 +347,7 @@ URLFetcher* FakeURLFetcherFactory::CreateURLFetcher(
return default_factory_->CreateURLFetcher(id, url, request_type, d);
}
}
- return new FakeURLFetcher(url, d, it->second.first, it->second.second);
+ return creator_.Run(url, d, it->second.first, it->second.second);
}
void FakeURLFetcherFactory::SetFakeResponse(const std::string& url,
« net/url_request/test_url_fetcher_factory.h ('K') | « 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