Index: net/proxy/proxy_service_mojo_unittest.cc |
diff --git a/net/proxy/proxy_service_mojo_unittest.cc b/net/proxy/proxy_service_mojo_unittest.cc |
index bb9f41eb8d247cede24b0a36faafe9406addf472..c22accdad2015aa8b26c91ae5d301312ef0ac52e 100644 |
--- a/net/proxy/proxy_service_mojo_unittest.cc |
+++ b/net/proxy/proxy_service_mojo_unittest.cc |
@@ -6,13 +6,16 @@ |
#include <string> |
+#include "base/callback_helpers.h" |
#include "base/memory/scoped_ptr.h" |
#include "net/base/load_flags.h" |
#include "net/base/test_completion_callback.h" |
#include "net/dns/mock_host_resolver.h" |
#include "net/log/net_log.h" |
#include "net/proxy/dhcp_proxy_script_fetcher.h" |
+#include "net/proxy/in_process_mojo_proxy_resolver_factory.h" |
#include "net/proxy/mock_proxy_script_fetcher.h" |
+#include "net/proxy/mojo_proxy_resolver_factory.h" |
#include "net/proxy/proxy_config_service_fixed.h" |
#include "net/proxy/proxy_service.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -34,6 +37,25 @@ const char kDnsResolvePacScript[] = |
" return 'QUIC bar:4321';\n" |
"}"; |
+class TestMojoProxyResolverFactory : public MojoProxyResolverFactory { |
+ public: |
+ explicit TestMojoProxyResolverFactory(MojoProxyResolverFactory* factory) |
+ : factory_(factory) {} |
+ |
+ scoped_ptr<base::ScopedClosureRunner> Create( |
+ mojo::InterfaceRequest<interfaces::ProxyResolver> req, |
+ interfaces::HostResolverPtr host_resolver) override { |
+ factory_->Create(req.Pass(), host_resolver.Pass()); |
+ return make_scoped_ptr(new base::ScopedClosureRunner(closure_.closure())); |
+ } |
+ |
+ TestClosure& closure() { return closure_; } |
+ |
+ private: |
+ MojoProxyResolverFactory* factory_; |
+ TestClosure closure_; |
+}; |
+ |
} // namespace |
class ProxyServiceMojoTest : public testing::Test { |
@@ -42,15 +64,18 @@ class ProxyServiceMojoTest : public testing::Test { |
mock_host_resolver_.rules()->AddRule("example.com", "1.2.3.4"); |
fetcher_ = new MockProxyScriptFetcher; |
- proxy_service_.reset(CreateProxyServiceUsingMojoInProcess( |
- new ProxyConfigServiceFixed( |
- ProxyConfig::CreateFromCustomPacURL(GURL(kPacUrl))), |
+ factory_.reset(new TestMojoProxyResolverFactory( |
+ InProcessMojoProxyResolverFactory::GetInstance())); |
+ proxy_service_.reset(CreateProxyServiceUsingMojoFactory( |
+ factory_.get(), new ProxyConfigServiceFixed( |
+ ProxyConfig::CreateFromCustomPacURL(GURL(kPacUrl))), |
fetcher_, new DoNothingDhcpProxyScriptFetcher(), &mock_host_resolver_, |
nullptr /* NetLog* */, nullptr /* NetworkDelegate* */)); |
} |
MockHostResolver mock_host_resolver_; |
MockProxyScriptFetcher* fetcher_; // Owned by |proxy_service_|. |
+ scoped_ptr<TestMojoProxyResolverFactory> factory_; |
scoped_ptr<ProxyService> proxy_service_; |
}; |
@@ -71,6 +96,8 @@ TEST_F(ProxyServiceMojoTest, Basic) { |
EXPECT_EQ(OK, callback.WaitForResult()); |
EXPECT_EQ("PROXY foo:1234", info.ToPacString()); |
EXPECT_EQ(0u, mock_host_resolver_.num_resolve()); |
+ proxy_service_.reset(); |
+ factory_->closure().WaitForResult(); |
} |
TEST_F(ProxyServiceMojoTest, DnsResolution) { |
@@ -90,6 +117,8 @@ TEST_F(ProxyServiceMojoTest, DnsResolution) { |
EXPECT_EQ(OK, callback.WaitForResult()); |
EXPECT_EQ("QUIC bar:4321", info.ToPacString()); |
EXPECT_EQ(1u, mock_host_resolver_.num_resolve()); |
+ proxy_service_.reset(); |
+ factory_->closure().WaitForResult(); |
} |
} // namespace net |