| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/compiler_specific.h" | 5 #include "base/compiler_specific.h" |
| 6 #include "base/file_util.h" | 6 #include "base/file_util.h" |
| 7 #include "base/path_service.h" | 7 #include "base/path_service.h" |
| 8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
| 9 #include "base/stringprintf.h" | 9 #include "base/stringprintf.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| 11 #include "googleurl/src/gurl.h" | 11 #include "googleurl/src/gurl.h" |
| 12 #include "net/base/net_errors.h" | 12 #include "net/base/net_errors.h" |
| 13 #include "net/base/net_log_unittest.h" | 13 #include "net/base/net_log_unittest.h" |
| 14 #include "net/proxy/proxy_info.h" | 14 #include "net/proxy/proxy_info.h" |
| 15 #include "net/proxy/proxy_resolver_js_bindings.h" | 15 #include "net/proxy/proxy_resolver_js_bindings.h" |
| 16 #include "net/proxy/proxy_resolver_v8.h" | 16 #include "net/proxy/proxy_resolver_v8.h" |
| 17 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
| 18 #include "v8/include/v8.h" |
| 18 | 19 |
| 19 namespace net { | 20 namespace net { |
| 20 namespace { | 21 namespace { |
| 21 | 22 |
| 22 // Javascript bindings for ProxyResolverV8, which returns mock values. | 23 // Javascript bindings for ProxyResolverV8, which returns mock values. |
| 23 // Each time one of the bindings is called into, we push the input into a | 24 // Each time one of the bindings is called into, we push the input into a |
| 24 // list, for later verification. | 25 // list, for later verification. |
| 25 class MockJSBindings : public ProxyResolverJSBindings { | 26 class MockJSBindings : public ProxyResolverJSBindings { |
| 26 public: | 27 public: |
| 27 MockJSBindings() : my_ip_address_count(0), my_ip_address_ex_count(0) {} | 28 MockJSBindings() : my_ip_address_count(0), my_ip_address_ex_count(0) {} |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 std::vector<std::string> dns_resolves_ex; | 82 std::vector<std::string> dns_resolves_ex; |
| 82 int my_ip_address_count; | 83 int my_ip_address_count; |
| 83 int my_ip_address_ex_count; | 84 int my_ip_address_ex_count; |
| 84 }; | 85 }; |
| 85 | 86 |
| 86 // This is the same as ProxyResolverV8, but it uses mock bindings in place of | 87 // This is the same as ProxyResolverV8, but it uses mock bindings in place of |
| 87 // the default bindings, and has a helper function to load PAC scripts from | 88 // the default bindings, and has a helper function to load PAC scripts from |
| 88 // disk. | 89 // disk. |
| 89 class ProxyResolverV8WithMockBindings : public ProxyResolverV8 { | 90 class ProxyResolverV8WithMockBindings : public ProxyResolverV8 { |
| 90 public: | 91 public: |
| 91 ProxyResolverV8WithMockBindings() : ProxyResolverV8(new MockJSBindings()) {} | 92 ProxyResolverV8WithMockBindings() |
| 93 : ProxyResolverV8(new MockJSBindings(), v8::Isolate::GetCurrent()) {} |
| 92 | 94 |
| 93 MockJSBindings* mock_js_bindings() const { | 95 MockJSBindings* mock_js_bindings() const { |
| 94 return reinterpret_cast<MockJSBindings*>(js_bindings()); | 96 return reinterpret_cast<MockJSBindings*>(js_bindings()); |
| 95 } | 97 } |
| 96 | 98 |
| 97 // Initialize with the PAC script data at |filename|. | 99 // Initialize with the PAC script data at |filename|. |
| 98 int SetPacScriptFromDisk(const char* filename) { | 100 int SetPacScriptFromDisk(const char* filename) { |
| 99 FilePath path; | 101 FilePath path; |
| 100 PathService::Get(base::DIR_SOURCE_ROOT, &path); | 102 PathService::Get(base::DIR_SOURCE_ROOT, &path); |
| 101 path = path.AppendASCII("net"); | 103 path = path.AppendASCII("net"); |
| (...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 562 EXPECT_TRUE(proxy_info.is_direct()); | 564 EXPECT_TRUE(proxy_info.is_direct()); |
| 563 | 565 |
| 564 // We called dnsResolveEx() exactly once, by passing through the "host" | 566 // We called dnsResolveEx() exactly once, by passing through the "host" |
| 565 // argument to FindProxyForURL(). The brackets should have been stripped. | 567 // argument to FindProxyForURL(). The brackets should have been stripped. |
| 566 ASSERT_EQ(1U, resolver.mock_js_bindings()->dns_resolves_ex.size()); | 568 ASSERT_EQ(1U, resolver.mock_js_bindings()->dns_resolves_ex.size()); |
| 567 EXPECT_EQ("abcd::efff", resolver.mock_js_bindings()->dns_resolves_ex[0]); | 569 EXPECT_EQ("abcd::efff", resolver.mock_js_bindings()->dns_resolves_ex[0]); |
| 568 } | 570 } |
| 569 | 571 |
| 570 } // namespace | 572 } // namespace |
| 571 } // namespace net | 573 } // namespace net |
| OLD | NEW |