OLD | NEW |
| (Empty) |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef NET_PROXY_PROXY_CONFIG_SERVICE_COMMON_UNITTEST_H_ | |
6 #define NET_PROXY_PROXY_CONFIG_SERVICE_COMMON_UNITTEST_H_ | |
7 | |
8 #include "net/proxy/proxy_config.h" | |
9 #include "testing/gtest/include/gtest/gtest.h" | |
10 | |
11 // Helper functions to describe the expected value of a | |
12 // ProxyConfig::ProxyRules, and to check for a match. | |
13 | |
14 namespace net { | |
15 | |
16 // This structure contains our expectations on what values the ProxyRules | |
17 // should have. | |
18 struct ProxyRulesExpectation { | |
19 ProxyRulesExpectation(ProxyConfig::ProxyRules::Type type, | |
20 const char* single_proxy, | |
21 const char* proxy_for_http, | |
22 const char* proxy_for_https, | |
23 const char* proxy_for_ftp, | |
24 const char* fallback_proxy, | |
25 const char* flattened_bypass_rules, | |
26 bool reverse_bypass); | |
27 | |
28 // Call this within an EXPECT_TRUE(), to assert that |rules| matches | |
29 // our expected values |*this|. | |
30 ::testing::AssertionResult Matches( | |
31 const ProxyConfig::ProxyRules& rules) const; | |
32 | |
33 // Creates an expectation that the ProxyRules has no rules. | |
34 static ProxyRulesExpectation Empty(); | |
35 | |
36 // Creates an expectation that the ProxyRules has nothing other than | |
37 // the specified bypass rules. | |
38 static ProxyRulesExpectation EmptyWithBypass( | |
39 const char* flattened_bypass_rules); | |
40 | |
41 // Creates an expectation that the ProxyRules is for a single proxy | |
42 // server for all schemes. | |
43 static ProxyRulesExpectation Single(const char* single_proxy, | |
44 const char* flattened_bypass_rules); | |
45 | |
46 // Creates an expectation that the ProxyRules specifies a different | |
47 // proxy server for each URL scheme. | |
48 static ProxyRulesExpectation PerScheme(const char* proxy_http, | |
49 const char* proxy_https, | |
50 const char* proxy_ftp, | |
51 const char* flattened_bypass_rules); | |
52 | |
53 // Same as above, but additionally with a SOCKS fallback. | |
54 static ProxyRulesExpectation PerSchemeWithSocks( | |
55 const char* proxy_http, | |
56 const char* proxy_https, | |
57 const char* proxy_ftp, | |
58 const char* fallback_proxy, | |
59 const char* flattened_bypass_rules); | |
60 | |
61 // Same as PerScheme, but with the bypass rules reversed | |
62 static ProxyRulesExpectation PerSchemeWithBypassReversed( | |
63 const char* proxy_http, | |
64 const char* proxy_https, | |
65 const char* proxy_ftp, | |
66 const char* flattened_bypass_rules); | |
67 | |
68 ProxyConfig::ProxyRules::Type type; | |
69 const char* single_proxy; | |
70 const char* proxy_for_http; | |
71 const char* proxy_for_https; | |
72 const char* proxy_for_ftp; | |
73 const char* fallback_proxy; | |
74 const char* flattened_bypass_rules; | |
75 bool reverse_bypass; | |
76 }; | |
77 | |
78 } // namespace net | |
79 | |
80 #endif // NET_PROXY_PROXY_CONFIG_SERVICE_COMMON_UNITTEST_H_ | |
OLD | NEW |