OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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_v8_tracing.h" | 5 #include "net/proxy/proxy_resolver_v8_tracing.h" |
6 | 6 |
7 #include "base/files/file_util.h" | 7 #include "base/files/file_util.h" |
8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 #include "net/proxy/proxy_resolver_error_observer.h" | 24 #include "net/proxy/proxy_resolver_error_observer.h" |
25 #include "testing/gtest/include/gtest/gtest.h" | 25 #include "testing/gtest/include/gtest/gtest.h" |
26 #include "url/gurl.h" | 26 #include "url/gurl.h" |
27 | 27 |
28 namespace net { | 28 namespace net { |
29 | 29 |
30 namespace { | 30 namespace { |
31 | 31 |
32 class ProxyResolverV8TracingTest : public testing::Test { | 32 class ProxyResolverV8TracingTest : public testing::Test { |
33 public: | 33 public: |
34 virtual void TearDown() OVERRIDE { | 34 virtual void TearDown() override { |
35 // Drain any pending messages, which may be left over from cancellation. | 35 // Drain any pending messages, which may be left over from cancellation. |
36 // This way they get reliably run as part of the current test, rather than | 36 // This way they get reliably run as part of the current test, rather than |
37 // spilling into the next test's execution. | 37 // spilling into the next test's execution. |
38 base::MessageLoop::current()->RunUntilIdle(); | 38 base::MessageLoop::current()->RunUntilIdle(); |
39 } | 39 } |
40 }; | 40 }; |
41 | 41 |
42 scoped_refptr<ProxyResolverScriptData> LoadScriptData(const char* filename) { | 42 scoped_refptr<ProxyResolverScriptData> LoadScriptData(const char* filename) { |
43 base::FilePath path; | 43 base::FilePath path; |
44 PathService::Get(base::DIR_SOURCE_ROOT, &path); | 44 PathService::Get(base::DIR_SOURCE_ROOT, &path); |
(...skipping 19 matching lines...) Expand all Loading... |
64 resolver->SetPacScript(LoadScriptData(filename), callback.callback()); | 64 resolver->SetPacScript(LoadScriptData(filename), callback.callback()); |
65 EXPECT_EQ(ERR_IO_PENDING, rv); | 65 EXPECT_EQ(ERR_IO_PENDING, rv); |
66 EXPECT_EQ(OK, callback.WaitForResult()); | 66 EXPECT_EQ(OK, callback.WaitForResult()); |
67 } | 67 } |
68 | 68 |
69 class MockErrorObserver : public ProxyResolverErrorObserver { | 69 class MockErrorObserver : public ProxyResolverErrorObserver { |
70 public: | 70 public: |
71 MockErrorObserver() : event_(true, false) {} | 71 MockErrorObserver() : event_(true, false) {} |
72 | 72 |
73 virtual void OnPACScriptError(int line_number, | 73 virtual void OnPACScriptError(int line_number, |
74 const base::string16& error) OVERRIDE { | 74 const base::string16& error) override { |
75 { | 75 { |
76 base::AutoLock l(lock_); | 76 base::AutoLock l(lock_); |
77 output += base::StringPrintf("Error: line %d: %s\n", line_number, | 77 output += base::StringPrintf("Error: line %d: %s\n", line_number, |
78 base::UTF16ToASCII(error).c_str()); | 78 base::UTF16ToASCII(error).c_str()); |
79 } | 79 } |
80 event_.Signal(); | 80 event_.Signal(); |
81 } | 81 } |
82 | 82 |
83 std::string GetOutput() { | 83 std::string GetOutput() { |
84 base::AutoLock l(lock_); | 84 base::AutoLock l(lock_); |
(...skipping 676 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
761 class BlockableHostResolver : public HostResolver { | 761 class BlockableHostResolver : public HostResolver { |
762 public: | 762 public: |
763 BlockableHostResolver() | 763 BlockableHostResolver() |
764 : num_cancelled_requests_(0), waiting_for_resolve_(false) {} | 764 : num_cancelled_requests_(0), waiting_for_resolve_(false) {} |
765 | 765 |
766 virtual int Resolve(const RequestInfo& info, | 766 virtual int Resolve(const RequestInfo& info, |
767 RequestPriority priority, | 767 RequestPriority priority, |
768 AddressList* addresses, | 768 AddressList* addresses, |
769 const CompletionCallback& callback, | 769 const CompletionCallback& callback, |
770 RequestHandle* out_req, | 770 RequestHandle* out_req, |
771 const BoundNetLog& net_log) OVERRIDE { | 771 const BoundNetLog& net_log) override { |
772 EXPECT_FALSE(callback.is_null()); | 772 EXPECT_FALSE(callback.is_null()); |
773 EXPECT_TRUE(out_req); | 773 EXPECT_TRUE(out_req); |
774 | 774 |
775 if (!action_.is_null()) | 775 if (!action_.is_null()) |
776 action_.Run(); | 776 action_.Run(); |
777 | 777 |
778 // Indicate to the caller that a request was received. | 778 // Indicate to the caller that a request was received. |
779 EXPECT_TRUE(waiting_for_resolve_); | 779 EXPECT_TRUE(waiting_for_resolve_); |
780 base::MessageLoop::current()->Quit(); | 780 base::MessageLoop::current()->Quit(); |
781 | 781 |
782 // This line is intentionally after action_.Run(), since one of the | 782 // This line is intentionally after action_.Run(), since one of the |
783 // tests does a cancellation inside of Resolve(), and it is more | 783 // tests does a cancellation inside of Resolve(), and it is more |
784 // interesting if *out_req hasn't been written yet at that point. | 784 // interesting if *out_req hasn't been written yet at that point. |
785 *out_req = reinterpret_cast<RequestHandle*>(1); // Magic value. | 785 *out_req = reinterpret_cast<RequestHandle*>(1); // Magic value. |
786 | 786 |
787 // Return ERR_IO_PENDING as this request will NEVER be completed. | 787 // Return ERR_IO_PENDING as this request will NEVER be completed. |
788 // Expectation is for the caller to later cancel the request. | 788 // Expectation is for the caller to later cancel the request. |
789 return ERR_IO_PENDING; | 789 return ERR_IO_PENDING; |
790 } | 790 } |
791 | 791 |
792 virtual int ResolveFromCache(const RequestInfo& info, | 792 virtual int ResolveFromCache(const RequestInfo& info, |
793 AddressList* addresses, | 793 AddressList* addresses, |
794 const BoundNetLog& net_log) OVERRIDE { | 794 const BoundNetLog& net_log) override { |
795 NOTREACHED(); | 795 NOTREACHED(); |
796 return ERR_DNS_CACHE_MISS; | 796 return ERR_DNS_CACHE_MISS; |
797 } | 797 } |
798 | 798 |
799 virtual void CancelRequest(RequestHandle req) OVERRIDE { | 799 virtual void CancelRequest(RequestHandle req) override { |
800 EXPECT_EQ(reinterpret_cast<RequestHandle*>(1), req); | 800 EXPECT_EQ(reinterpret_cast<RequestHandle*>(1), req); |
801 num_cancelled_requests_++; | 801 num_cancelled_requests_++; |
802 } | 802 } |
803 | 803 |
804 void SetAction(const base::Callback<void(void)>& action) { | 804 void SetAction(const base::Callback<void(void)>& action) { |
805 action_ = action; | 805 action_ = action; |
806 } | 806 } |
807 | 807 |
808 // Waits until Resolve() has been called. | 808 // Waits until Resolve() has been called. |
809 void WaitUntilRequestIsReceived() { | 809 void WaitUntilRequestIsReceived() { |
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1090 proxy_uri.substr(0, proxy_uri.find(':') + 1)); | 1090 proxy_uri.substr(0, proxy_uri.find(':') + 1)); |
1091 } else { | 1091 } else { |
1092 NOTREACHED(); | 1092 NOTREACHED(); |
1093 } | 1093 } |
1094 } | 1094 } |
1095 } | 1095 } |
1096 | 1096 |
1097 } // namespace | 1097 } // namespace |
1098 | 1098 |
1099 } // namespace net | 1099 } // namespace net |
OLD | NEW |