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 |