Index: net/proxy/proxy_resolver_factory_unittest.cc |
diff --git a/net/proxy/proxy_resolver_factory_unittest.cc b/net/proxy/proxy_resolver_factory_unittest.cc |
index 6e9708b5299018d82c73cebe3d63510a090216fc..7958b6d21eec921a8c24a3b8255509a9d13dd5b7 100644 |
--- a/net/proxy/proxy_resolver_factory_unittest.cc |
+++ b/net/proxy/proxy_resolver_factory_unittest.cc |
@@ -41,17 +41,18 @@ class TestProxyResolver : public MockAsyncProxyResolver { |
class TestLegacyProxyResolverFactory : public LegacyProxyResolverFactory { |
public: |
- TestLegacyProxyResolverFactory() : LegacyProxyResolverFactory(false) {} |
+ using ProxyResolverFactory::CreateProxyResolver; |
+ |
+ explicit TestLegacyProxyResolverFactory(ProxyResolver* resolver) |
+ : LegacyProxyResolverFactory(false), resolver_(resolver) {} |
// LegacyProxyResolverFactory override. |
scoped_ptr<ProxyResolver> CreateProxyResolver() override { |
- return make_scoped_ptr(new ForwardingProxyResolver(&resolver_)); |
+ return make_scoped_ptr(new ForwardingProxyResolver(resolver_)); |
} |
- TestProxyResolver& resolver() { return resolver_; } |
- |
private: |
- TestProxyResolver resolver_; |
+ ProxyResolver* resolver_; |
DISALLOW_COPY_AND_ASSIGN(TestLegacyProxyResolverFactory); |
}; |
@@ -60,11 +61,16 @@ class TestLegacyProxyResolverFactory : public LegacyProxyResolverFactory { |
class LegacyProxyResolverFactoryTest : public testing::Test { |
public: |
- ProxyResolverFactory& factory() { return factory_; } |
- TestProxyResolver& mock_resolver() { return factory_.resolver(); } |
+ void SetUp() override { |
+ factory_.reset(new TestLegacyProxyResolverFactory(&resolver_)); |
+ } |
+ |
+ ProxyResolverFactory& factory() { return *factory_; } |
+ TestProxyResolver& mock_resolver() { return resolver_; } |
private: |
- TestLegacyProxyResolverFactory factory_; |
+ TestProxyResolver resolver_; |
+ scoped_ptr<TestLegacyProxyResolverFactory> factory_; |
}; |
TEST_F(LegacyProxyResolverFactoryTest, Async_Success) { |
@@ -116,6 +122,24 @@ TEST_F(LegacyProxyResolverFactoryTest, Async_Cancel) { |
EXPECT_FALSE(resolver); |
} |
+TEST_F(LegacyProxyResolverFactoryTest, Async_DeleteFactory) { |
+ const GURL url("http://proxy"); |
+ scoped_ptr<ProxyResolver> resolver; |
+ scoped_ptr<ProxyResolverFactory::Request> request; |
+ { |
+ TestProxyResolver test_resolver; |
+ TestLegacyProxyResolverFactory factory(&test_resolver); |
+ EXPECT_EQ(ERR_IO_PENDING, factory.CreateProxyResolver( |
+ ProxyResolverScriptData::FromURL(url), |
+ &resolver, base::Bind(&Fail), &request)); |
+ ASSERT_TRUE(test_resolver.has_pending_set_pac_script_request()); |
+ EXPECT_EQ( |
+ url, |
+ test_resolver.pending_set_pac_script_request()->script_data()->url()); |
+ } |
+ EXPECT_FALSE(resolver); |
+} |
+ |
TEST_F(LegacyProxyResolverFactoryTest, Sync_Success) { |
const GURL url("http://proxy"); |
TestCompletionCallback callback; |