| Index: net/proxy/proxy_resolver_mojo_unittest.cc
|
| diff --git a/net/proxy/proxy_resolver_mojo_unittest.cc b/net/proxy/proxy_resolver_mojo_unittest.cc
|
| index 8702236c0399355f6f9886079b7066a7a185d553..27ae43c7cb350bf7514158c0deff03a51ca7fcbb 100644
|
| --- a/net/proxy/proxy_resolver_mojo_unittest.cc
|
| +++ b/net/proxy/proxy_resolver_mojo_unittest.cc
|
| @@ -401,6 +401,12 @@ class ProxyResolverMojoTest : public testing::Test {
|
| proxy_resolver_mojo_->SetPacScript(pac_script, pac_callback));
|
| }
|
|
|
| + void DeleteProxyResolverCallback(const CompletionCallback& callback,
|
| + int result) {
|
| + proxy_resolver_mojo_.reset();
|
| + callback.Run(result);
|
| + }
|
| +
|
| MockHostResolver mock_host_resolver_;
|
| TestMojoProxyResolverFactory mojo_proxy_resolver_factory_;
|
| scoped_ptr<ProxyResolverMojo> proxy_resolver_mojo_;
|
| @@ -527,6 +533,34 @@ TEST_F(ProxyResolverMojoTest, SetPacScript_CancelAndSetAgain) {
|
| EXPECT_EQ(ERR_UNEXPECTED, callback2.GetResult(ERR_IO_PENDING));
|
| }
|
|
|
| +TEST_F(ProxyResolverMojoTest, SetPacScript_DeleteInCallback) {
|
| + mojo_proxy_resolver_factory_.AddFuturePacScriptAction(
|
| + 0, SetPacScriptAction::ReturnResult(OK));
|
| + scoped_refptr<ProxyResolverScriptData> pac_script(
|
| + ProxyResolverScriptData::FromUTF8(kScriptData));
|
| + TestCompletionCallback callback;
|
| + EXPECT_EQ(OK,
|
| + callback.GetResult(proxy_resolver_mojo_->SetPacScript(
|
| + pac_script,
|
| + base::Bind(&ProxyResolverMojoTest::DeleteProxyResolverCallback,
|
| + base::Unretained(this), callback.callback()))));
|
| + EXPECT_EQ(1, mojo_proxy_resolver_factory_.num_create_calls());
|
| +}
|
| +
|
| +TEST_F(ProxyResolverMojoTest, SetPacScript_DeleteInCallbackFromDisconnect) {
|
| + mojo_proxy_resolver_factory_.AddFuturePacScriptAction(
|
| + 0, SetPacScriptAction::Disconnect());
|
| + scoped_refptr<ProxyResolverScriptData> pac_script(
|
| + ProxyResolverScriptData::FromUTF8(kScriptData));
|
| + TestCompletionCallback callback;
|
| + EXPECT_EQ(ERR_PAC_SCRIPT_TERMINATED,
|
| + callback.GetResult(proxy_resolver_mojo_->SetPacScript(
|
| + pac_script,
|
| + base::Bind(&ProxyResolverMojoTest::DeleteProxyResolverCallback,
|
| + base::Unretained(this), callback.callback()))));
|
| + EXPECT_EQ(1, mojo_proxy_resolver_factory_.num_create_calls());
|
| +}
|
| +
|
| TEST_F(ProxyResolverMojoTest, GetProxyForURL) {
|
| mojo_proxy_resolver_factory_.AddFutureGetProxyAction(
|
| 0, GetProxyForUrlAction::ReturnServers(
|
| @@ -732,4 +766,37 @@ TEST_F(ProxyResolverMojoTest, DisconnectAndReconnectInCallback) {
|
| EXPECT_EQ(2, mojo_proxy_resolver_factory_.num_create_calls());
|
| }
|
|
|
| +TEST_F(ProxyResolverMojoTest, GetProxyForURL_DeleteInCallback) {
|
| + mojo_proxy_resolver_factory_.AddFutureGetProxyAction(
|
| + 0, GetProxyForUrlAction::ReturnServers(
|
| + GURL(kExampleUrl), ProxyServersFromPacString("DIRECT")));
|
| + SetPacScript(0);
|
| + ProxyInfo results;
|
| + TestCompletionCallback callback;
|
| + ProxyResolver::RequestHandle handle;
|
| + BoundNetLog net_log;
|
| + EXPECT_EQ(OK,
|
| + callback.GetResult(proxy_resolver_mojo_->GetProxyForURL(
|
| + GURL(kExampleUrl), &results,
|
| + base::Bind(&ProxyResolverMojoTest::DeleteProxyResolverCallback,
|
| + base::Unretained(this), callback.callback()),
|
| + &handle, net_log)));
|
| +}
|
| +
|
| +TEST_F(ProxyResolverMojoTest, GetProxyForURL_DeleteInCallbackFromDisconnect) {
|
| + mojo_proxy_resolver_factory_.AddFutureGetProxyAction(
|
| + 0, GetProxyForUrlAction::Disconnect(GURL(kExampleUrl)));
|
| + SetPacScript(0);
|
| + ProxyInfo results;
|
| + TestCompletionCallback callback;
|
| + ProxyResolver::RequestHandle handle;
|
| + BoundNetLog net_log;
|
| + EXPECT_EQ(ERR_PAC_SCRIPT_TERMINATED,
|
| + callback.GetResult(proxy_resolver_mojo_->GetProxyForURL(
|
| + GURL(kExampleUrl), &results,
|
| + base::Bind(&ProxyResolverMojoTest::DeleteProxyResolverCallback,
|
| + base::Unretained(this), callback.callback()),
|
| + &handle, net_log)));
|
| +}
|
| +
|
| } // namespace net
|
|
|