| Index: net/proxy/proxy_service_unittest.cc
|
| ===================================================================
|
| --- net/proxy/proxy_service_unittest.cc (revision 85647)
|
| +++ net/proxy/proxy_service_unittest.cc (working copy)
|
| @@ -15,9 +15,7 @@
|
| #include "net/base/net_log.h"
|
| #include "net/base/net_log_unittest.h"
|
| #include "net/base/test_completion_callback.h"
|
| -#include "net/proxy/dhcp_proxy_script_fetcher.h"
|
| #include "net/proxy/mock_proxy_resolver.h"
|
| -#include "net/proxy/mock_proxy_script_fetcher.h"
|
| #include "net/proxy/proxy_config_service.h"
|
| #include "net/proxy/proxy_resolver.h"
|
| #include "net/proxy/proxy_script_fetcher.h"
|
| @@ -69,6 +67,53 @@
|
|
|
| } // namespace
|
|
|
| +// A mock ProxyScriptFetcher. No result will be returned to the fetch client
|
| +// until we call NotifyFetchCompletion() to set the results.
|
| +class MockProxyScriptFetcher : public ProxyScriptFetcher {
|
| + public:
|
| + MockProxyScriptFetcher()
|
| + : pending_request_callback_(NULL), pending_request_text_(NULL) {
|
| + }
|
| +
|
| + // ProxyScriptFetcher implementation.
|
| + virtual int Fetch(const GURL& url,
|
| + string16* text,
|
| + CompletionCallback* callback) {
|
| + DCHECK(!has_pending_request());
|
| +
|
| + // Save the caller's information, and have them wait.
|
| + pending_request_url_ = url;
|
| + pending_request_callback_ = callback;
|
| + pending_request_text_ = text;
|
| + return ERR_IO_PENDING;
|
| + }
|
| +
|
| + void NotifyFetchCompletion(int result, const std::string& ascii_text) {
|
| + DCHECK(has_pending_request());
|
| + *pending_request_text_ = ASCIIToUTF16(ascii_text);
|
| + CompletionCallback* callback = pending_request_callback_;
|
| + pending_request_callback_ = NULL;
|
| + callback->Run(result);
|
| + }
|
| +
|
| + virtual void Cancel() {}
|
| +
|
| + virtual URLRequestContext* GetRequestContext() { return NULL; }
|
| +
|
| + const GURL& pending_request_url() const {
|
| + return pending_request_url_;
|
| + }
|
| +
|
| + bool has_pending_request() const {
|
| + return pending_request_callback_ != NULL;
|
| + }
|
| +
|
| + private:
|
| + GURL pending_request_url_;
|
| + CompletionCallback* pending_request_callback_;
|
| + string16* pending_request_text_;
|
| +};
|
| +
|
| TEST(ProxyServiceTest, Direct) {
|
| MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
|
| ProxyService service(new MockProxyConfigService(
|
| @@ -404,8 +449,7 @@
|
| ProxyService service(config_service, resolver, NULL);
|
|
|
| MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
|
| - DhcpProxyScriptFetcher* dhcp_fetcher = new DoNothingDhcpProxyScriptFetcher();
|
| - service.SetProxyScriptFetchers(fetcher, dhcp_fetcher);
|
| + service.SetProxyScriptFetcher(fetcher);
|
|
|
| // Start resolve request.
|
| GURL url("http://www.google.com/");
|
| @@ -1139,8 +1183,7 @@
|
| ProxyService service(config_service, resolver, NULL);
|
|
|
| MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
|
| - service.SetProxyScriptFetchers(fetcher,
|
| - new DoNothingDhcpProxyScriptFetcher());
|
| + service.SetProxyScriptFetcher(fetcher);
|
|
|
| // Start 3 requests.
|
|
|
| @@ -1219,8 +1262,7 @@
|
| ProxyService service(config_service, resolver, NULL);
|
|
|
| MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
|
| - service.SetProxyScriptFetchers(fetcher,
|
| - new DoNothingDhcpProxyScriptFetcher());
|
| + service.SetProxyScriptFetcher(fetcher);
|
|
|
| // Start 2 requests.
|
|
|
| @@ -1248,8 +1290,7 @@
|
| // the initialization with the new fetcher.
|
|
|
| fetcher = new MockProxyScriptFetcher;
|
| - service.SetProxyScriptFetchers(fetcher,
|
| - new DoNothingDhcpProxyScriptFetcher());
|
| + service.SetProxyScriptFetcher(fetcher);
|
|
|
| // Nothing has been sent to the resolver yet.
|
| EXPECT_TRUE(resolver->pending_requests().empty());
|
| @@ -1278,8 +1319,7 @@
|
| ProxyService service(config_service, resolver, NULL);
|
|
|
| MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
|
| - service.SetProxyScriptFetchers(fetcher,
|
| - new DoNothingDhcpProxyScriptFetcher());
|
| + service.SetProxyScriptFetcher(fetcher);
|
|
|
| // Start 3 requests.
|
| ProxyInfo info1;
|
| @@ -1370,8 +1410,7 @@
|
| ProxyService service(config_service, resolver, NULL);
|
|
|
| MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
|
| - service.SetProxyScriptFetchers(fetcher,
|
| - new DoNothingDhcpProxyScriptFetcher());
|
| + service.SetProxyScriptFetcher(fetcher);
|
|
|
| // Start 2 requests.
|
|
|
| @@ -1441,8 +1480,7 @@
|
| ProxyService service(config_service, resolver, NULL);
|
|
|
| MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
|
| - service.SetProxyScriptFetchers(fetcher,
|
| - new DoNothingDhcpProxyScriptFetcher());
|
| + service.SetProxyScriptFetcher(fetcher);
|
|
|
| // Start 2 requests.
|
|
|
| @@ -1517,8 +1555,7 @@
|
| ProxyService service(config_service, resolver, NULL);
|
|
|
| MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
|
| - service.SetProxyScriptFetchers(fetcher,
|
| - new DoNothingDhcpProxyScriptFetcher());
|
| + service.SetProxyScriptFetcher(fetcher);
|
|
|
| // Start 2 requests.
|
|
|
| @@ -1575,8 +1612,7 @@
|
| ProxyService service(config_service, resolver, NULL);
|
|
|
| MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
|
| - service.SetProxyScriptFetchers(fetcher,
|
| - new DoNothingDhcpProxyScriptFetcher());
|
| + service.SetProxyScriptFetcher(fetcher);
|
|
|
| // Start 1 requests.
|
|
|
| @@ -1643,8 +1679,7 @@
|
| ProxyService service(config_service, resolver, NULL);
|
|
|
| MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
|
| - service.SetProxyScriptFetchers(fetcher,
|
| - new DoNothingDhcpProxyScriptFetcher());
|
| + service.SetProxyScriptFetcher(fetcher);
|
|
|
| // Start 1 request.
|
|
|
| @@ -1775,8 +1810,7 @@
|
| ProxyService service(config_service, resolver, &log);
|
|
|
| MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
|
| - service.SetProxyScriptFetchers(fetcher,
|
| - new DoNothingDhcpProxyScriptFetcher());
|
| + service.SetProxyScriptFetcher(fetcher);
|
|
|
| // Disable the "wait after IP address changes" hack, so this unit-test can
|
| // complete quickly.
|
|
|