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

Unified Diff: chrome/browser/net/resolve_proxy_msg_helper_unittest.cc

Issue 149525: Remove the concept of threading from ProxyService, and move it into the Proxy... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Add missing header for mac Created 11 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 | « no previous file | net/net.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/resolve_proxy_msg_helper_unittest.cc
===================================================================
--- chrome/browser/net/resolve_proxy_msg_helper_unittest.cc (revision 21630)
+++ chrome/browser/net/resolve_proxy_msg_helper_unittest.cc (working copy)
@@ -8,6 +8,7 @@
#include "net/base/net_errors.h"
#include "net/proxy/proxy_config_service.h"
#include "net/proxy/proxy_resolver.h"
+#include "net/proxy/single_threaded_proxy_resolver.h"
#include "testing/gtest/include/gtest/gtest.h"
// This ProxyConfigService always returns "http://pac" as the PAC url to use.
@@ -22,21 +23,29 @@
// This PAC resolver always returns the hostname of the query URL as the
// proxy to use. The Block() method will make GetProxyForURL() hang until
// Unblock() is called.
-class MockProxyResolver : public net::ProxyResolver {
+class SyncMockProxyResolver : public net::ProxyResolver {
public:
- MockProxyResolver() : ProxyResolver(true), event_(false, false),
- is_blocked_(false) {
+ SyncMockProxyResolver() : ProxyResolver(false /*expects_pac_bytes*/),
+ event_(false, false),
+ is_blocked_(false) {
}
virtual int GetProxyForURL(const GURL& query_url,
- const GURL& /*pac_url*/,
- net::ProxyInfo* results) {
+ net::ProxyInfo* results,
+ net::CompletionCallback* callback,
+ RequestHandle* request) {
if (is_blocked_)
event_.Wait();
results->UseNamedProxy(query_url.host());
return net::OK;
}
+ virtual void CancelRequest(RequestHandle request) {
+ NOTREACHED();
+ }
+
+ virtual void SetPacScriptByUrlInternal(const GURL& pac_url) {}
+
void Block() {
is_blocked_ = true;
event_.Reset();
@@ -52,6 +61,17 @@
bool is_blocked_;
};
+class MockProxyResolver : public net::SingleThreadedProxyResolver {
+ public:
+ MockProxyResolver()
+ : net::SingleThreadedProxyResolver(new SyncMockProxyResolver) {
+ x = reinterpret_cast<SyncMockProxyResolver*>(resolver());
+ }
+
+ // TODO(eroman): cleanup.
+ SyncMockProxyResolver* x;
+};
+
// This struct holds the values that were passed to
// Delegate::OnResolveProxyCompleted(). The caller should use WaitUntilDone()
// to block until the result has been populated.
@@ -271,7 +291,7 @@
scoped_ptr<IPC::Message> msg3(new IPC::Message());
// Make the proxy resolver hang on the next request.
- runner.proxy_resolver()->Block();
+ runner.proxy_resolver()->x->Block();
// Start three requests. Since the proxy resolver is hung, the second two
// will be pending.
@@ -285,7 +305,7 @@
result3->WaitUntilStarted();
// Unblock the proxy service so requests 1-3 can complete.
- runner.proxy_resolver()->Unblock();
+ runner.proxy_resolver()->x->Unblock();
// Wait for all the requests to finish (they run in FIFO order).
result3->WaitUntilDone();
@@ -320,7 +340,7 @@
IPC::Message* msg3 = new IPC::Message();
// Make the next request block.
- runner.proxy_resolver()->Block();
+ runner.proxy_resolver()->x->Block();
// Start three requests; since the first one blocked, the other two should
// be pending.
@@ -338,7 +358,7 @@
// Unblocking the proxy resolver means the three requests can complete --
// however they should not try to notify the delegate since we have already
// deleted the helper.
- runner.proxy_resolver()->Unblock();
+ runner.proxy_resolver()->x->Unblock();
// Check that none of the requests were sent to the delegate.
EXPECT_FALSE(
« no previous file with comments | « no previous file | net/net.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698