| 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 |