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

Unified Diff: chrome/service/cloud_print/cloud_print_url_fetcher_unittest.cc

Issue 10203002: Make URLRequestThrottlerManager a member of URLRequestContext. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ready for review. Created 8 years, 8 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: chrome/service/cloud_print/cloud_print_url_fetcher_unittest.cc
diff --git a/chrome/service/cloud_print/cloud_print_url_fetcher_unittest.cc b/chrome/service/cloud_print/cloud_print_url_fetcher_unittest.cc
index 5103ec891282d43a3c96bb4feb80572b0b7ba131..ad2ee5ccc00cf431b5baaa823fa4816d78071af9 100644
--- a/chrome/service/cloud_print/cloud_print_url_fetcher_unittest.cc
+++ b/chrome/service/cloud_print/cloud_print_url_fetcher_unittest.cc
@@ -30,29 +30,52 @@ class TrackingTestURLRequestContextGetter
: public TestURLRequestContextGetter {
public:
explicit TrackingTestURLRequestContextGetter(
- base::MessageLoopProxy* io_message_loop_proxy)
- : TestURLRequestContextGetter(io_message_loop_proxy) {
+ base::MessageLoopProxy* io_message_loop_proxy,
+ net::URLRequestThrottlerManager* throttler_manager)
+ : TestURLRequestContextGetter(io_message_loop_proxy),
+ throttler_manager_(throttler_manager),
+ context_(NULL) {
g_request_context_getter_instances++;
}
+
+ virtual TestURLRequestContext* GetURLRequestContext() OVERRIDE {
+ if (!context_) {
+ context_ = new TestURLRequestContext(true);
+ context_->set_throttler_manager(throttler_manager_);
+ context_->Init();
+ }
+ return context_.get();
+ }
+
protected:
virtual ~TrackingTestURLRequestContextGetter() {
g_request_context_getter_instances--;
}
+
+ private:
+ // Not owned here.
+ net::URLRequestThrottlerManager* throttler_manager_;
+ scoped_refptr<TestURLRequestContext> context_;
};
class TestCloudPrintURLFetcher : public CloudPrintURLFetcher {
public:
explicit TestCloudPrintURLFetcher(
- base::MessageLoopProxy* io_message_loop_proxy)
- : io_message_loop_proxy_(io_message_loop_proxy) {
+ base::MessageLoopProxy* io_message_loop_proxy,
+ net::URLRequestThrottlerManager* throttler_manager)
+ : io_message_loop_proxy_(io_message_loop_proxy),
+ throttler_manager_(throttler_manager) {
}
virtual net::URLRequestContextGetter* GetRequestContextGetter() {
return new TrackingTestURLRequestContextGetter(
- io_message_loop_proxy_.get());
+ io_message_loop_proxy_.get(), throttler_manager_);
}
private:
scoped_refptr<base::MessageLoopProxy> io_message_loop_proxy_;
+
+ // Not owned here.
+ net::URLRequestThrottlerManager* throttler_manager_;
};
class CloudPrintURLFetcherTest : public testing::Test,
@@ -85,6 +108,10 @@ class CloudPrintURLFetcherTest : public testing::Test,
return io_message_loop_proxy_;
}
+ net::URLRequestThrottlerManager* throttler_manager() {
+ return &throttler_manager_;
+ }
+
protected:
virtual void SetUp() {
testing::Test::SetUp();
@@ -110,6 +137,10 @@ class CloudPrintURLFetcherTest : public testing::Test,
int max_retries_;
Time start_time_;
scoped_refptr<CloudPrintURLFetcher> fetcher_;
+
+ // We set this as the throttler manager for the
+ // TestURLRequestContext we create.
+ net::URLRequestThrottlerManager throttler_manager_;
eroman 2012/04/24 19:05:57 I wonder if it wouldn't be better to declare this
Jói 2012/04/27 13:20:26 Made it a member of the TestCloudPrintURLFetcher.
};
class CloudPrintURLFetcherBasicTest : public CloudPrintURLFetcherTest {
@@ -183,7 +214,8 @@ class CloudPrintURLFetcherRetryBackoffTest : public CloudPrintURLFetcherTest {
void CloudPrintURLFetcherTest::CreateFetcher(const GURL& url, int max_retries) {
- fetcher_ = new TestCloudPrintURLFetcher(io_message_loop_proxy());
+ fetcher_ = new TestCloudPrintURLFetcher(io_message_loop_proxy(),
+ throttler_manager());
max_retries_ = max_retries;
start_time_ = Time::Now();
fetcher_->StartGetRequest(url, this, max_retries_, std::string());
@@ -323,17 +355,14 @@ TEST_F(CloudPrintURLFetcherOverloadTest, Protect) {
// Registers an entry for test url. It only allows 3 requests to be sent
// in 200 milliseconds.
- net::URLRequestThrottlerManager* manager =
- net::URLRequestThrottlerManager::GetInstance();
scoped_refptr<net::URLRequestThrottlerEntry> entry(
- new net::URLRequestThrottlerEntry(manager, "", 200, 3, 1, 2.0, 0.0, 256));
- manager->OverrideEntryForTests(url, entry);
+ new net::URLRequestThrottlerEntry(
+ throttler_manager(), "", 200, 3, 1, 2.0, 0.0, 256));
+ throttler_manager()->OverrideEntryForTests(url, entry);
CreateFetcher(url, 11);
MessageLoop::current()->Run();
-
- net::URLRequestThrottlerManager::GetInstance()->EraseEntryForTests(url);
}
// http://code.google.com/p/chromium/issues/detail?id=60426
@@ -349,17 +378,14 @@ TEST_F(CloudPrintURLFetcherRetryBackoffTest, DISABLED_GiveUp) {
// new_backoff = 2.0 * old_backoff + 0
// and maximum backoff time is 256 milliseconds.
// Maximum retries allowed is set to 11.
- net::URLRequestThrottlerManager* manager =
- net::URLRequestThrottlerManager::GetInstance();
scoped_refptr<net::URLRequestThrottlerEntry> entry(
- new net::URLRequestThrottlerEntry(manager, "", 200, 3, 1, 2.0, 0.0, 256));
- manager->OverrideEntryForTests(url, entry);
+ new net::URLRequestThrottlerEntry(
+ throttler_manager(), "", 200, 3, 1, 2.0, 0.0, 256));
+ throttler_manager()->OverrideEntryForTests(url, entry);
CreateFetcher(url, 11);
MessageLoop::current()->Run();
-
- net::URLRequestThrottlerManager::GetInstance()->EraseEntryForTests(url);
}
} // namespace.

Powered by Google App Engine
This is Rietveld 408576698