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

Unified Diff: net/proxy/proxy_service_mojo_unittest.cc

Issue 1076083002: Shut down proxy resolver utility processes when no longer needed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@proxy-service-with-factory-restart
Patch Set: Created 5 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
« net/proxy/proxy_service_mojo.cc ('K') | « net/proxy/proxy_service_mojo.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« net/proxy/proxy_service_mojo.cc ('K') | « net/proxy/proxy_service_mojo.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698