| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/proxy/proxy_resolver_mojo.h" | 5 #include "net/proxy/proxy_resolver_mojo.h" |
| 6 | 6 |
| 7 #include <list> | 7 #include <list> |
| 8 #include <map> | 8 #include <map> |
| 9 #include <queue> | 9 #include <queue> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 394 int result) { | 394 int result) { |
| 395 callback.Run(result); | 395 callback.Run(result); |
| 396 mojo_proxy_resolver_factory_.AddFuturePacScriptAction( | 396 mojo_proxy_resolver_factory_.AddFuturePacScriptAction( |
| 397 instance, SetPacScriptAction::ReturnResult(OK)); | 397 instance, SetPacScriptAction::ReturnResult(OK)); |
| 398 scoped_refptr<ProxyResolverScriptData> pac_script( | 398 scoped_refptr<ProxyResolverScriptData> pac_script( |
| 399 ProxyResolverScriptData::FromUTF8(kScriptData)); | 399 ProxyResolverScriptData::FromUTF8(kScriptData)); |
| 400 EXPECT_EQ(ERR_IO_PENDING, | 400 EXPECT_EQ(ERR_IO_PENDING, |
| 401 proxy_resolver_mojo_->SetPacScript(pac_script, pac_callback)); | 401 proxy_resolver_mojo_->SetPacScript(pac_script, pac_callback)); |
| 402 } | 402 } |
| 403 | 403 |
| 404 void DeleteProxyResolverCallback(const CompletionCallback& callback, |
| 405 int result) { |
| 406 proxy_resolver_mojo_.reset(); |
| 407 callback.Run(result); |
| 408 } |
| 409 |
| 404 MockHostResolver mock_host_resolver_; | 410 MockHostResolver mock_host_resolver_; |
| 405 TestMojoProxyResolverFactory mojo_proxy_resolver_factory_; | 411 TestMojoProxyResolverFactory mojo_proxy_resolver_factory_; |
| 406 scoped_ptr<ProxyResolverMojo> proxy_resolver_mojo_; | 412 scoped_ptr<ProxyResolverMojo> proxy_resolver_mojo_; |
| 407 }; | 413 }; |
| 408 | 414 |
| 409 TEST_F(ProxyResolverMojoTest, SetPacScript) { | 415 TEST_F(ProxyResolverMojoTest, SetPacScript) { |
| 410 SetPacScript(0); | 416 SetPacScript(0); |
| 411 EXPECT_EQ(kScriptData, | 417 EXPECT_EQ(kScriptData, |
| 412 mojo_proxy_resolver_factory_.GetMockResolver().pac_script_data()); | 418 mojo_proxy_resolver_factory_.GetMockResolver().pac_script_data()); |
| 413 } | 419 } |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 520 EXPECT_EQ(ERR_IO_PENDING, proxy_resolver_mojo_->SetPacScript( | 526 EXPECT_EQ(ERR_IO_PENDING, proxy_resolver_mojo_->SetPacScript( |
| 521 pac_script, callback1.callback())); | 527 pac_script, callback1.callback())); |
| 522 proxy_resolver_mojo_->CancelSetPacScript(); | 528 proxy_resolver_mojo_->CancelSetPacScript(); |
| 523 | 529 |
| 524 TestCompletionCallback callback2; | 530 TestCompletionCallback callback2; |
| 525 EXPECT_EQ(ERR_IO_PENDING, proxy_resolver_mojo_->SetPacScript( | 531 EXPECT_EQ(ERR_IO_PENDING, proxy_resolver_mojo_->SetPacScript( |
| 526 pac_script, callback2.callback())); | 532 pac_script, callback2.callback())); |
| 527 EXPECT_EQ(ERR_UNEXPECTED, callback2.GetResult(ERR_IO_PENDING)); | 533 EXPECT_EQ(ERR_UNEXPECTED, callback2.GetResult(ERR_IO_PENDING)); |
| 528 } | 534 } |
| 529 | 535 |
| 536 TEST_F(ProxyResolverMojoTest, SetPacScript_DeleteInCallback) { |
| 537 mojo_proxy_resolver_factory_.AddFuturePacScriptAction( |
| 538 0, SetPacScriptAction::ReturnResult(OK)); |
| 539 scoped_refptr<ProxyResolverScriptData> pac_script( |
| 540 ProxyResolverScriptData::FromUTF8(kScriptData)); |
| 541 TestCompletionCallback callback; |
| 542 EXPECT_EQ(OK, |
| 543 callback.GetResult(proxy_resolver_mojo_->SetPacScript( |
| 544 pac_script, |
| 545 base::Bind(&ProxyResolverMojoTest::DeleteProxyResolverCallback, |
| 546 base::Unretained(this), callback.callback())))); |
| 547 EXPECT_EQ(1, mojo_proxy_resolver_factory_.num_create_calls()); |
| 548 } |
| 549 |
| 550 TEST_F(ProxyResolverMojoTest, SetPacScript_DeleteInCallbackFromDisconnect) { |
| 551 mojo_proxy_resolver_factory_.AddFuturePacScriptAction( |
| 552 0, SetPacScriptAction::Disconnect()); |
| 553 scoped_refptr<ProxyResolverScriptData> pac_script( |
| 554 ProxyResolverScriptData::FromUTF8(kScriptData)); |
| 555 TestCompletionCallback callback; |
| 556 EXPECT_EQ(ERR_PAC_SCRIPT_TERMINATED, |
| 557 callback.GetResult(proxy_resolver_mojo_->SetPacScript( |
| 558 pac_script, |
| 559 base::Bind(&ProxyResolverMojoTest::DeleteProxyResolverCallback, |
| 560 base::Unretained(this), callback.callback())))); |
| 561 EXPECT_EQ(1, mojo_proxy_resolver_factory_.num_create_calls()); |
| 562 } |
| 563 |
| 530 TEST_F(ProxyResolverMojoTest, GetProxyForURL) { | 564 TEST_F(ProxyResolverMojoTest, GetProxyForURL) { |
| 531 mojo_proxy_resolver_factory_.AddFutureGetProxyAction( | 565 mojo_proxy_resolver_factory_.AddFutureGetProxyAction( |
| 532 0, GetProxyForUrlAction::ReturnServers( | 566 0, GetProxyForUrlAction::ReturnServers( |
| 533 GURL(kExampleUrl), ProxyServersFromPacString("DIRECT"))); | 567 GURL(kExampleUrl), ProxyServersFromPacString("DIRECT"))); |
| 534 SetPacScript(0); | 568 SetPacScript(0); |
| 535 | 569 |
| 536 scoped_ptr<Request> request(MakeRequest(GURL(kExampleUrl))); | 570 scoped_ptr<Request> request(MakeRequest(GURL(kExampleUrl))); |
| 537 EXPECT_EQ(ERR_IO_PENDING, request->Resolve()); | 571 EXPECT_EQ(ERR_IO_PENDING, request->Resolve()); |
| 538 EXPECT_EQ(OK, request->WaitForResult()); | 572 EXPECT_EQ(OK, request->WaitForResult()); |
| 539 | 573 |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 725 // Setting the PAC script above should have been successful and let us send a | 759 // Setting the PAC script above should have been successful and let us send a |
| 726 // resolve request. | 760 // resolve request. |
| 727 scoped_ptr<Request> request(MakeRequest(GURL(kExampleUrl))); | 761 scoped_ptr<Request> request(MakeRequest(GURL(kExampleUrl))); |
| 728 EXPECT_EQ(ERR_IO_PENDING, request->Resolve()); | 762 EXPECT_EQ(ERR_IO_PENDING, request->Resolve()); |
| 729 EXPECT_EQ(OK, request->WaitForResult()); | 763 EXPECT_EQ(OK, request->WaitForResult()); |
| 730 EXPECT_EQ("DIRECT", request->results().ToPacString()); | 764 EXPECT_EQ("DIRECT", request->results().ToPacString()); |
| 731 | 765 |
| 732 EXPECT_EQ(2, mojo_proxy_resolver_factory_.num_create_calls()); | 766 EXPECT_EQ(2, mojo_proxy_resolver_factory_.num_create_calls()); |
| 733 } | 767 } |
| 734 | 768 |
| 769 TEST_F(ProxyResolverMojoTest, GetProxyForURL_DeleteInCallback) { |
| 770 mojo_proxy_resolver_factory_.AddFutureGetProxyAction( |
| 771 0, GetProxyForUrlAction::ReturnServers( |
| 772 GURL(kExampleUrl), ProxyServersFromPacString("DIRECT"))); |
| 773 SetPacScript(0); |
| 774 ProxyInfo results; |
| 775 TestCompletionCallback callback; |
| 776 ProxyResolver::RequestHandle handle; |
| 777 BoundNetLog net_log; |
| 778 EXPECT_EQ(OK, |
| 779 callback.GetResult(proxy_resolver_mojo_->GetProxyForURL( |
| 780 GURL(kExampleUrl), &results, |
| 781 base::Bind(&ProxyResolverMojoTest::DeleteProxyResolverCallback, |
| 782 base::Unretained(this), callback.callback()), |
| 783 &handle, net_log))); |
| 784 } |
| 785 |
| 786 TEST_F(ProxyResolverMojoTest, GetProxyForURL_DeleteInCallbackFromDisconnect) { |
| 787 mojo_proxy_resolver_factory_.AddFutureGetProxyAction( |
| 788 0, GetProxyForUrlAction::Disconnect(GURL(kExampleUrl))); |
| 789 SetPacScript(0); |
| 790 ProxyInfo results; |
| 791 TestCompletionCallback callback; |
| 792 ProxyResolver::RequestHandle handle; |
| 793 BoundNetLog net_log; |
| 794 EXPECT_EQ(ERR_PAC_SCRIPT_TERMINATED, |
| 795 callback.GetResult(proxy_resolver_mojo_->GetProxyForURL( |
| 796 GURL(kExampleUrl), &results, |
| 797 base::Bind(&ProxyResolverMojoTest::DeleteProxyResolverCallback, |
| 798 base::Unretained(this), callback.callback()), |
| 799 &handle, net_log))); |
| 800 } |
| 801 |
| 735 } // namespace net | 802 } // namespace net |
| OLD | NEW |