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

Unified Diff: content/test/test_url_fetcher_factory.h

Issue 7524033: Add a scoper object for URLFetcher::Factory (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 5 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 | « content/content_tests.gypi ('k') | content/test/test_url_fetcher_factory.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/test/test_url_fetcher_factory.h
diff --git a/content/common/test_url_fetcher_factory.h b/content/test/test_url_fetcher_factory.h
similarity index 90%
rename from content/common/test_url_fetcher_factory.h
rename to content/test/test_url_fetcher_factory.h
index 70cf6f80102c160bd87b60f7f902420a123d0a4e..f402875b7c3f60306da99bb1177dc24167f48165 100644
--- a/content/common/test_url_fetcher_factory.h
+++ b/content/test/test_url_fetcher_factory.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CONTENT_COMMON_TEST_URL_FETCHER_FACTORY_H_
-#define CONTENT_COMMON_TEST_URL_FETCHER_FACTORY_H_
+#ifndef CONTENT_TEST_TEST_URL_FETCHER_FACTORY_H_
+#define CONTENT_TEST_TEST_URL_FETCHER_FACTORY_H_
#pragma once
#include <list>
@@ -11,9 +11,21 @@
#include <string>
#include <utility>
+#include "base/threading/non_thread_safe.h"
#include "content/common/url_fetcher.h"
-#include "net/url_request/url_request_status.h"
#include "googleurl/src/gurl.h"
+#include "net/url_request/url_request_status.h"
+
+// Changes URLFetcher's Factory for the lifetime of the object.
+// Note that this scoper cannot be nested (to make it even harder to misuse).
+class ScopedURLFetcherFactory : public base::NonThreadSafe {
+ public:
+ explicit ScopedURLFetcherFactory(URLFetcher::Factory* factory);
+ virtual ~ScopedURLFetcherFactory();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ScopedURLFetcherFactory);
+};
// TestURLFetcher and TestURLFetcherFactory are used for testing consumers of
// URLFetcher. TestURLFetcherFactory is a URLFetcher::Factory that creates
@@ -26,9 +38,8 @@
// MessageLoopForUI message_loop;
// // And io_thread to release URLRequestContextGetter in URLFetcher::Core.
// BrowserThread io_thread(BrowserThread::IO, &message_loop);
-// // Create and register factory.
+// // Create factory (it automatically sets itself as URLFetcher's factory).
// TestURLFetcherFactory factory;
-// URLFetcher::set_factory(&factory);
// // Do something that triggers creation of a URLFetcher.
// TestURLFetcher* fetcher = factory.GetFetcherByID(expected_id);
// DCHECK(fetcher);
@@ -36,8 +47,6 @@
// fetcher->delegate()->OnURLFetchComplete(...);
// // Make sure consumer of URLFetcher does the right thing.
// ...
-// // Reset factory.
-// URLFetcher::set_factory(NULL);
//
// Note: if you don't know when your request objects will be created you
// might want to use the FakeUrlFetcher and FakeUrlFetcherFactory classes
@@ -118,7 +127,8 @@ class TestURLFetcher : public URLFetcher {
// Simple URLFetcher::Factory method that creates TestURLFetchers. All fetchers
// are registered in a map by the id passed to the create method.
-class TestURLFetcherFactory : public URLFetcher::Factory {
+class TestURLFetcherFactory : public URLFetcher::Factory,
+ public ScopedURLFetcherFactory {
public:
TestURLFetcherFactory();
virtual ~TestURLFetcherFactory();
@@ -157,7 +167,6 @@ class TestURLFetcherFactory : public URLFetcher::Factory {
//
// Example usage:
// FakeURLFetcherFactory factory;
-// URLFetcher::set_factory(&factory);
//
// // You know that class SomeService will request url http://a.com/ and you
// // want to test the service class by returning an error.
@@ -171,7 +180,8 @@ class TestURLFetcherFactory : public URLFetcher::Factory {
// SomeService service;
// service.Run(); // Will eventually request these two URLs.
-class FakeURLFetcherFactory : public URLFetcher::Factory {
+class FakeURLFetcherFactory : public URLFetcher::Factory,
+ public ScopedURLFetcherFactory {
public:
FakeURLFetcherFactory();
// FakeURLFetcherFactory that will delegate creating URLFetcher for unknown
@@ -224,4 +234,4 @@ class URLFetcherFactory : public URLFetcher::Factory {
};
-#endif // CONTENT_COMMON_TEST_URL_FETCHER_FACTORY_H_
+#endif // CONTENT_TEST_TEST_URL_FETCHER_FACTORY_H_
« no previous file with comments | « content/content_tests.gypi ('k') | content/test/test_url_fetcher_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698