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 // Unit tests for helper functions for the Chrome Extensions Proxy Settings API. | 5 // Unit tests for helper functions for the Chrome Extensions Proxy Settings API. |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/values.h" | 8 #include "base/values.h" |
9 #include "chrome/browser/extensions/api/proxy/proxy_api_constants.h" | 9 #include "chrome/browser/extensions/api/proxy/proxy_api_constants.h" |
10 #include "chrome/browser/extensions/api/proxy/proxy_api_helpers.h" | 10 #include "chrome/browser/extensions/api/proxy/proxy_api_helpers.h" |
11 #include "chrome/browser/prefs/proxy_config_dictionary.h" | 11 #include "chrome/browser/prefs/proxy_config_dictionary.h" |
12 #include "chrome/browser/prefs/proxy_prefs.h" | 12 #include "chrome/browser/prefs/proxy_prefs.h" |
13 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
14 | 14 |
15 namespace extensions { | 15 namespace extensions { |
16 | 16 |
17 namespace keys = proxy_api_constants; | 17 namespace keys = proxy_api_constants; |
18 | 18 |
19 namespace { | 19 namespace { |
20 | 20 |
21 const char kSamplePacScript[] = "test"; | 21 const char kSamplePacScript[] = "test"; |
22 const char kSamplePacScriptAsDataUrl[] = | 22 const char kSamplePacScriptAsDataUrl[] = |
23 "data:application/x-ns-proxy-autoconfig;base64,dGVzdA=="; | 23 "data:application/x-ns-proxy-autoconfig;base64,dGVzdA=="; |
24 const char kSamplePacScriptAsDataUrl2[] = | 24 const char kSamplePacScriptAsDataUrl2[] = |
25 "data:;base64,dGVzdA=="; | 25 "data:;base64,dGVzdA=="; |
26 const char kSamplePacScriptUrl[] = "http://wpad/wpad.dat"; | 26 const char kSamplePacScriptUrl[] = "http://wpad/wpad.dat"; |
27 | 27 |
28 // Helper function to create a ProxyServer dictionary as defined in the | 28 // Helper function to create a ProxyServer dictionary as defined in the |
29 // extension API. | 29 // extension API. |
30 DictionaryValue* CreateTestProxyServerDict(const std::string& host) { | 30 base::DictionaryValue* CreateTestProxyServerDict(const std::string& host) { |
31 DictionaryValue* dict = new DictionaryValue; | 31 base::DictionaryValue* dict = new base::DictionaryValue; |
32 dict->SetString(keys::kProxyConfigRuleHost, host); | 32 dict->SetString(keys::kProxyConfigRuleHost, host); |
33 return dict; | 33 return dict; |
34 } | 34 } |
35 | 35 |
36 // Helper function to create a ProxyServer dictionary as defined in the | 36 // Helper function to create a ProxyServer dictionary as defined in the |
37 // extension API. | 37 // extension API. |
38 DictionaryValue* CreateTestProxyServerDict(const std::string& schema, | 38 base::DictionaryValue* CreateTestProxyServerDict(const std::string& schema, |
39 const std::string& host, | 39 const std::string& host, |
40 int port) { | 40 int port) { |
41 DictionaryValue* dict = new DictionaryValue; | 41 base::DictionaryValue* dict = new base::DictionaryValue; |
42 dict->SetString(keys::kProxyConfigRuleScheme, schema); | 42 dict->SetString(keys::kProxyConfigRuleScheme, schema); |
43 dict->SetString(keys::kProxyConfigRuleHost, host); | 43 dict->SetString(keys::kProxyConfigRuleHost, host); |
44 dict->SetInteger(keys::kProxyConfigRulePort, port); | 44 dict->SetInteger(keys::kProxyConfigRulePort, port); |
45 return dict; | 45 return dict; |
46 } | 46 } |
47 | 47 |
48 } // namespace | 48 } // namespace |
49 | 49 |
50 namespace proxy_api_helpers { | 50 namespace proxy_api_helpers { |
51 | 51 |
(...skipping 10 matching lines...) Expand all Loading... | |
62 EXPECT_EQ(kSamplePacScript, out); | 62 EXPECT_EQ(kSamplePacScript, out); |
63 | 63 |
64 // Check that we don't require a mime-type. | 64 // Check that we don't require a mime-type. |
65 ASSERT_TRUE(CreatePACScriptFromDataURL(kSamplePacScriptAsDataUrl2, &out)); | 65 ASSERT_TRUE(CreatePACScriptFromDataURL(kSamplePacScriptAsDataUrl2, &out)); |
66 EXPECT_EQ(kSamplePacScript, out); | 66 EXPECT_EQ(kSamplePacScript, out); |
67 | 67 |
68 EXPECT_FALSE(CreatePACScriptFromDataURL("http://www.google.com", &out)); | 68 EXPECT_FALSE(CreatePACScriptFromDataURL("http://www.google.com", &out)); |
69 } | 69 } |
70 | 70 |
71 TEST(ExtensionProxyApiHelpers, GetProxyModeFromExtensionPref) { | 71 TEST(ExtensionProxyApiHelpers, GetProxyModeFromExtensionPref) { |
72 DictionaryValue proxy_config; | 72 base::DictionaryValue proxy_config; |
73 ProxyPrefs::ProxyMode mode; | 73 ProxyPrefs::ProxyMode mode; |
74 std::string error; | 74 std::string error; |
75 bool bad_message = false; | 75 bool bad_message = false; |
76 | 76 |
77 // Test positive case. | 77 // Test positive case. |
78 proxy_config.SetString( | 78 proxy_config.SetString( |
79 keys::kProxyConfigMode, | 79 keys::kProxyConfigMode, |
80 ProxyPrefs::ProxyModeToString(ProxyPrefs::MODE_DIRECT)); | 80 ProxyPrefs::ProxyModeToString(ProxyPrefs::MODE_DIRECT)); |
81 ASSERT_TRUE(GetProxyModeFromExtensionPref(&proxy_config, &mode, &error, | 81 ASSERT_TRUE(GetProxyModeFromExtensionPref(&proxy_config, &mode, &error, |
82 &bad_message)); | 82 &bad_message)); |
83 EXPECT_EQ(ProxyPrefs::MODE_DIRECT, mode); | 83 EXPECT_EQ(ProxyPrefs::MODE_DIRECT, mode); |
84 EXPECT_EQ(std::string(), error); | 84 EXPECT_EQ(std::string(), error); |
85 EXPECT_FALSE(bad_message); | 85 EXPECT_FALSE(bad_message); |
86 | 86 |
87 // Test negative case. | 87 // Test negative case. |
88 proxy_config.SetString(keys::kProxyConfigMode, "foobar"); | 88 proxy_config.SetString(keys::kProxyConfigMode, "foobar"); |
89 EXPECT_FALSE(GetProxyModeFromExtensionPref(&proxy_config, &mode, &error, | 89 EXPECT_FALSE(GetProxyModeFromExtensionPref(&proxy_config, &mode, &error, |
90 &bad_message)); | 90 &bad_message)); |
91 EXPECT_TRUE(bad_message); | 91 EXPECT_TRUE(bad_message); |
92 | 92 |
93 // Do not test |error|, as an invalid enumeration value is considered an | 93 // Do not test |error|, as an invalid enumeration value is considered an |
94 // internal error. It should be filtered by the extensions API. | 94 // internal error. It should be filtered by the extensions API. |
95 } | 95 } |
96 | 96 |
97 TEST(ExtensionProxyApiHelpers, GetPacUrlFromExtensionPref) { | 97 TEST(ExtensionProxyApiHelpers, GetPacUrlFromExtensionPref) { |
98 std::string out; | 98 std::string out; |
99 std::string error; | 99 std::string error; |
100 bool bad_message = false; | 100 bool bad_message = false; |
101 | 101 |
102 DictionaryValue proxy_config; | 102 base::DictionaryValue proxy_config; |
103 proxy_config.SetString( | 103 proxy_config.SetString( |
104 keys::kProxyConfigMode, | 104 keys::kProxyConfigMode, |
105 ProxyPrefs::ProxyModeToString(ProxyPrefs::MODE_PAC_SCRIPT)); | 105 ProxyPrefs::ProxyModeToString(ProxyPrefs::MODE_PAC_SCRIPT)); |
106 | 106 |
107 // Currently we are still missing a PAC script entry. | 107 // Currently we are still missing a PAC script entry. |
108 // This is silently ignored. | 108 // This is silently ignored. |
109 ASSERT_TRUE(GetPacUrlFromExtensionPref(&proxy_config, &out, &error, | 109 ASSERT_TRUE(GetPacUrlFromExtensionPref(&proxy_config, &out, &error, |
110 &bad_message)); | 110 &bad_message)); |
111 EXPECT_EQ(std::string(), out); | 111 EXPECT_EQ(std::string(), out); |
112 EXPECT_EQ(std::string(), error); | 112 EXPECT_EQ(std::string(), error); |
113 EXPECT_FALSE(bad_message); | 113 EXPECT_FALSE(bad_message); |
114 | 114 |
115 // Set up a pac script. | 115 // Set up a pac script. |
116 DictionaryValue* pacScriptDict = new DictionaryValue; | 116 base::DictionaryValue* pacScriptDict = new base::DictionaryValue; |
117 pacScriptDict->SetString(keys::kProxyConfigPacScriptUrl, kSamplePacScriptUrl); | 117 pacScriptDict->SetString(keys::kProxyConfigPacScriptUrl, kSamplePacScriptUrl); |
118 proxy_config.Set(keys::kProxyConfigPacScript, pacScriptDict); | 118 proxy_config.Set(keys::kProxyConfigPacScript, pacScriptDict); |
119 | 119 |
120 ASSERT_TRUE(GetPacUrlFromExtensionPref(&proxy_config, &out, &error, | 120 ASSERT_TRUE(GetPacUrlFromExtensionPref(&proxy_config, &out, &error, |
121 &bad_message)); | 121 &bad_message)); |
122 EXPECT_EQ(kSamplePacScriptUrl, out); | 122 EXPECT_EQ(kSamplePacScriptUrl, out); |
123 EXPECT_EQ(std::string(), error); | 123 EXPECT_EQ(std::string(), error); |
124 EXPECT_FALSE(bad_message); | 124 EXPECT_FALSE(bad_message); |
125 } | 125 } |
126 | 126 |
127 TEST(ExtensionProxyApiHelpers, GetPacDataFromExtensionPref) { | 127 TEST(ExtensionProxyApiHelpers, GetPacDataFromExtensionPref) { |
128 std::string out; | 128 std::string out; |
129 std::string error; | 129 std::string error; |
130 bool bad_message = false; | 130 bool bad_message = false; |
131 | 131 |
132 DictionaryValue proxy_config; | 132 base::DictionaryValue proxy_config; |
133 proxy_config.SetString( | 133 proxy_config.SetString( |
134 keys::kProxyConfigMode, | 134 keys::kProxyConfigMode, |
135 ProxyPrefs::ProxyModeToString(ProxyPrefs::MODE_PAC_SCRIPT)); | 135 ProxyPrefs::ProxyModeToString(ProxyPrefs::MODE_PAC_SCRIPT)); |
136 | 136 |
137 // Currently we are still missing a PAC data entry. This is silently ignored. | 137 // Currently we are still missing a PAC data entry. This is silently ignored. |
138 ASSERT_TRUE(GetPacDataFromExtensionPref(&proxy_config, &out, &error, | 138 ASSERT_TRUE(GetPacDataFromExtensionPref(&proxy_config, &out, &error, |
139 &bad_message)); | 139 &bad_message)); |
140 EXPECT_EQ(std::string(), out); | 140 EXPECT_EQ(std::string(), out); |
141 EXPECT_EQ(std::string(), error); | 141 EXPECT_EQ(std::string(), error); |
142 EXPECT_FALSE(bad_message); | 142 EXPECT_FALSE(bad_message); |
143 | 143 |
144 // Set up a PAC script. | 144 // Set up a PAC script. |
145 DictionaryValue* pacScriptDict = new DictionaryValue; | 145 base::DictionaryValue* pacScriptDict = new base::DictionaryValue; |
146 pacScriptDict->SetString(keys::kProxyConfigPacScriptData, kSamplePacScript); | 146 pacScriptDict->SetString(keys::kProxyConfigPacScriptData, kSamplePacScript); |
147 proxy_config.Set(keys::kProxyConfigPacScript, pacScriptDict); | 147 proxy_config.Set(keys::kProxyConfigPacScript, pacScriptDict); |
148 | 148 |
149 ASSERT_TRUE(GetPacDataFromExtensionPref(&proxy_config, &out, &error, | 149 ASSERT_TRUE(GetPacDataFromExtensionPref(&proxy_config, &out, &error, |
150 &bad_message)); | 150 &bad_message)); |
151 EXPECT_EQ(kSamplePacScript, out); | 151 EXPECT_EQ(kSamplePacScript, out); |
152 EXPECT_EQ(std::string(), error); | 152 EXPECT_EQ(std::string(), error); |
153 EXPECT_FALSE(bad_message); | 153 EXPECT_FALSE(bad_message); |
154 } | 154 } |
155 | 155 |
156 TEST(ExtensionProxyApiHelpers, GetProxyRulesStringFromExtensionPref) { | 156 TEST(ExtensionProxyApiHelpers, GetProxyRulesStringFromExtensionPref) { |
157 std::string out; | 157 std::string out; |
158 std::string error; | 158 std::string error; |
159 bool bad_message = false; | 159 bool bad_message = false; |
160 | 160 |
161 DictionaryValue proxy_config; | 161 base::DictionaryValue proxy_config; |
162 proxy_config.SetString( | 162 proxy_config.SetString( |
163 keys::kProxyConfigMode, | 163 keys::kProxyConfigMode, |
164 ProxyPrefs::ProxyModeToString(ProxyPrefs::MODE_FIXED_SERVERS)); | 164 ProxyPrefs::ProxyModeToString(ProxyPrefs::MODE_FIXED_SERVERS)); |
165 | 165 |
166 // Currently we are still missing a proxy config entry. | 166 // Currently we are still missing a proxy config entry. |
167 // This is silently ignored. | 167 // This is silently ignored. |
168 ASSERT_TRUE( | 168 ASSERT_TRUE( |
169 GetProxyRulesStringFromExtensionPref(&proxy_config, &out, &error, | 169 GetProxyRulesStringFromExtensionPref(&proxy_config, &out, &error, |
170 &bad_message)); | 170 &bad_message)); |
171 EXPECT_EQ(std::string(), out); | 171 EXPECT_EQ(std::string(), out); |
172 EXPECT_EQ(std::string(), error); | 172 EXPECT_EQ(std::string(), error); |
173 | 173 |
174 DictionaryValue* proxy_rules = new DictionaryValue; | 174 base::DictionaryValue* proxy_rules = new base::DictionaryValue; |
175 proxy_rules->Set(keys::field_name[1], CreateTestProxyServerDict("proxy1")); | 175 proxy_rules->Set(keys::field_name[1], CreateTestProxyServerDict("proxy1")); |
176 proxy_rules->Set(keys::field_name[2], CreateTestProxyServerDict("proxy2")); | 176 proxy_rules->Set(keys::field_name[2], CreateTestProxyServerDict("proxy2")); |
177 proxy_config.Set(keys::kProxyConfigRules, proxy_rules); | 177 proxy_config.Set(keys::kProxyConfigRules, proxy_rules); |
178 | 178 |
179 ASSERT_TRUE( | 179 ASSERT_TRUE( |
180 GetProxyRulesStringFromExtensionPref(&proxy_config, &out, &error, | 180 GetProxyRulesStringFromExtensionPref(&proxy_config, &out, &error, |
181 &bad_message)); | 181 &bad_message)); |
182 EXPECT_EQ("http=proxy1:80;https=proxy2:80", out); | 182 EXPECT_EQ("http=proxy1:80;https=proxy2:80", out); |
183 EXPECT_EQ(std::string(), error); | 183 EXPECT_EQ(std::string(), error); |
184 EXPECT_FALSE(bad_message); | 184 EXPECT_FALSE(bad_message); |
185 } | 185 } |
186 | 186 |
187 TEST(ExtensionProxyApiHelpers, GetBypassListFromExtensionPref) { | 187 TEST(ExtensionProxyApiHelpers, GetBypassListFromExtensionPref) { |
188 std::string out; | 188 std::string out; |
189 std::string error; | 189 std::string error; |
190 bool bad_message = false; | 190 bool bad_message = false; |
191 | 191 |
192 DictionaryValue proxy_config; | 192 base::DictionaryValue proxy_config; |
193 proxy_config.SetString( | 193 proxy_config.SetString( |
194 keys::kProxyConfigMode, | 194 keys::kProxyConfigMode, |
195 ProxyPrefs::ProxyModeToString(ProxyPrefs::MODE_FIXED_SERVERS)); | 195 ProxyPrefs::ProxyModeToString(ProxyPrefs::MODE_FIXED_SERVERS)); |
196 | 196 |
197 // Currently we are still missing a proxy config entry. | 197 // Currently we are still missing a proxy config entry. |
198 // This is silently ignored. | 198 // This is silently ignored. |
199 ASSERT_TRUE( | 199 ASSERT_TRUE( |
200 GetBypassListFromExtensionPref(&proxy_config, &out, &error, | 200 GetBypassListFromExtensionPref(&proxy_config, &out, &error, |
201 &bad_message)); | 201 &bad_message)); |
202 EXPECT_EQ(std::string(), out); | 202 EXPECT_EQ(std::string(), out); |
203 EXPECT_EQ(std::string(), error); | 203 EXPECT_EQ(std::string(), error); |
204 EXPECT_FALSE(bad_message); | 204 EXPECT_FALSE(bad_message); |
205 | 205 |
206 ListValue* bypass_list = new ListValue; | 206 base::ListValue* bypass_list = new base::ListValue; |
207 bypass_list->Append(Value::CreateStringValue("host1")); | 207 bypass_list->Append(Value::CreateStringValue("host1")); |
208 bypass_list->Append(Value::CreateStringValue("host2")); | 208 bypass_list->Append(Value::CreateStringValue("host2")); |
209 DictionaryValue* proxy_rules = new DictionaryValue; | 209 base::DictionaryValue* proxy_rules = new base::DictionaryValue; |
210 proxy_rules->Set(keys::kProxyConfigBypassList, bypass_list); | 210 proxy_rules->Set(keys::kProxyConfigBypassList, bypass_list); |
211 proxy_config.Set(keys::kProxyConfigRules, proxy_rules); | 211 proxy_config.Set(keys::kProxyConfigRules, proxy_rules); |
212 | 212 |
213 ASSERT_TRUE( | 213 ASSERT_TRUE( |
214 GetBypassListFromExtensionPref(&proxy_config, &out, &error, | 214 GetBypassListFromExtensionPref(&proxy_config, &out, &error, |
215 &bad_message)); | 215 &bad_message)); |
216 EXPECT_EQ("host1,host2", out); | 216 EXPECT_EQ("host1,host2", out); |
217 EXPECT_EQ(std::string(), error); | 217 EXPECT_EQ(std::string(), error); |
218 EXPECT_FALSE(bad_message); | 218 EXPECT_FALSE(bad_message); |
219 } | 219 } |
220 | 220 |
221 TEST(ExtensionProxyApiHelpers, CreateProxyConfigDict) { | 221 TEST(ExtensionProxyApiHelpers, CreateProxyConfigDict) { |
222 std::string error; | 222 std::string error; |
223 scoped_ptr<DictionaryValue> exp_direct(ProxyConfigDictionary::CreateDirect()); | 223 scoped_ptr<base::DictionaryValue> exp_direct( |
224 scoped_ptr<DictionaryValue> out_direct( | 224 ProxyConfigDictionary::CreateDirect()); |
225 scoped_ptr<base::DictionaryValue> out_direct( | |
225 CreateProxyConfigDict(ProxyPrefs::MODE_DIRECT, | 226 CreateProxyConfigDict(ProxyPrefs::MODE_DIRECT, |
226 false, | 227 false, |
227 std::string(), | 228 std::string(), |
228 std::string(), | 229 std::string(), |
229 std::string(), | 230 std::string(), |
230 std::string(), | 231 std::string(), |
231 &error)); | 232 &error)); |
232 EXPECT_TRUE(Value::Equals(exp_direct.get(), out_direct.get())); | 233 EXPECT_TRUE(Value::Equals(exp_direct.get(), out_direct.get())); |
233 | 234 |
234 scoped_ptr<DictionaryValue> exp_auto( | 235 scoped_ptr<base::DictionaryValue> exp_auto( |
235 ProxyConfigDictionary::CreateAutoDetect()); | 236 ProxyConfigDictionary::CreateAutoDetect()); |
236 scoped_ptr<DictionaryValue> out_auto( | 237 scoped_ptr<base::DictionaryValue> out_auto( |
237 CreateProxyConfigDict(ProxyPrefs::MODE_AUTO_DETECT, | 238 CreateProxyConfigDict(ProxyPrefs::MODE_AUTO_DETECT, |
238 false, | 239 false, |
239 std::string(), | 240 std::string(), |
240 std::string(), | 241 std::string(), |
241 std::string(), | 242 std::string(), |
242 std::string(), | 243 std::string(), |
243 &error)); | 244 &error)); |
244 EXPECT_TRUE(Value::Equals(exp_auto.get(), out_auto.get())); | 245 EXPECT_TRUE(Value::Equals(exp_auto.get(), out_auto.get())); |
245 | 246 |
246 scoped_ptr<DictionaryValue> exp_pac_url( | 247 scoped_ptr<base::DictionaryValue> exp_pac_url( |
247 ProxyConfigDictionary::CreatePacScript(kSamplePacScriptUrl, false)); | 248 ProxyConfigDictionary::CreatePacScript(kSamplePacScriptUrl, false)); |
248 scoped_ptr<DictionaryValue> out_pac_url( | 249 scoped_ptr<base::DictionaryValue> out_pac_url( |
249 CreateProxyConfigDict(ProxyPrefs::MODE_PAC_SCRIPT, | 250 CreateProxyConfigDict(ProxyPrefs::MODE_PAC_SCRIPT, |
250 false, | 251 false, |
251 kSamplePacScriptUrl, | 252 kSamplePacScriptUrl, |
252 std::string(), | 253 std::string(), |
253 std::string(), | 254 std::string(), |
254 std::string(), | 255 std::string(), |
255 &error)); | 256 &error)); |
256 EXPECT_TRUE(Value::Equals(exp_pac_url.get(), out_pac_url.get())); | 257 EXPECT_TRUE(Value::Equals(exp_pac_url.get(), out_pac_url.get())); |
257 | 258 |
258 scoped_ptr<DictionaryValue> exp_pac_data( | 259 scoped_ptr<base::DictionaryValue> exp_pac_data( |
259 ProxyConfigDictionary::CreatePacScript(kSamplePacScriptAsDataUrl, false)); | 260 ProxyConfigDictionary::CreatePacScript(kSamplePacScriptAsDataUrl, false)); |
260 scoped_ptr<DictionaryValue> out_pac_data( | 261 scoped_ptr<base::DictionaryValue> out_pac_data( |
261 CreateProxyConfigDict(ProxyPrefs::MODE_PAC_SCRIPT, | 262 CreateProxyConfigDict(ProxyPrefs::MODE_PAC_SCRIPT, |
262 false, | 263 false, |
263 std::string(), | 264 std::string(), |
264 kSamplePacScript, | 265 kSamplePacScript, |
265 std::string(), | 266 std::string(), |
266 std::string(), | 267 std::string(), |
267 &error)); | 268 &error)); |
268 EXPECT_TRUE(Value::Equals(exp_pac_data.get(), out_pac_data.get())); | 269 EXPECT_TRUE(Value::Equals(exp_pac_data.get(), out_pac_data.get())); |
269 | 270 |
270 scoped_ptr<DictionaryValue> exp_fixed( | 271 scoped_ptr<base::DictionaryValue> exp_fixed( |
271 ProxyConfigDictionary::CreateFixedServers("foo:80", "localhost")); | 272 ProxyConfigDictionary::CreateFixedServers("foo:80", "localhost")); |
272 scoped_ptr<DictionaryValue> out_fixed( | 273 scoped_ptr<base::DictionaryValue> out_fixed( |
273 CreateProxyConfigDict(ProxyPrefs::MODE_FIXED_SERVERS, | 274 CreateProxyConfigDict(ProxyPrefs::MODE_FIXED_SERVERS, |
274 false, | 275 false, |
275 std::string(), | 276 std::string(), |
276 std::string(), | 277 std::string(), |
277 "foo:80", | 278 "foo:80", |
278 "localhost", | 279 "localhost", |
279 &error)); | 280 &error)); |
280 EXPECT_TRUE(Value::Equals(exp_fixed.get(), out_fixed.get())); | 281 EXPECT_TRUE(Value::Equals(exp_fixed.get(), out_fixed.get())); |
281 | 282 |
282 scoped_ptr<DictionaryValue> exp_system(ProxyConfigDictionary::CreateSystem()); | 283 scoped_ptr<base::DictionaryValue> exp_system( |
283 scoped_ptr<DictionaryValue> out_system( | 284 ProxyConfigDictionary::CreateSystem()); |
285 scoped_ptr<base::DictionaryValue> out_system( | |
284 CreateProxyConfigDict(ProxyPrefs::MODE_SYSTEM, | 286 CreateProxyConfigDict(ProxyPrefs::MODE_SYSTEM, |
285 false, | 287 false, |
286 std::string(), | 288 std::string(), |
287 std::string(), | 289 std::string(), |
288 std::string(), | 290 std::string(), |
289 std::string(), | 291 std::string(), |
290 &error)); | 292 &error)); |
291 EXPECT_TRUE(Value::Equals(exp_system.get(), out_system.get())); | 293 EXPECT_TRUE(Value::Equals(exp_system.get(), out_system.get())); |
292 | 294 |
293 // Neither of them should have set an error. | 295 // Neither of them should have set an error. |
294 EXPECT_EQ(std::string(), error); | 296 EXPECT_EQ(std::string(), error); |
295 } | 297 } |
296 | 298 |
297 TEST(ExtensionProxyApiHelpers, GetProxyServer) { | 299 TEST(ExtensionProxyApiHelpers, GetProxyServer) { |
298 DictionaryValue proxy_server_dict; | 300 base::DictionaryValue proxy_server_dict; |
299 net::ProxyServer created; | 301 net::ProxyServer created; |
300 std::string error; | 302 std::string error; |
301 bool bad_message = false; | 303 bool bad_message = false; |
302 | 304 |
303 // Test simplest case, no schema nor port specified --> defaults are used. | 305 // Test simplest case, no schema nor port specified --> defaults are used. |
304 proxy_server_dict.SetString(keys::kProxyConfigRuleHost, "proxy_server"); | 306 proxy_server_dict.SetString(keys::kProxyConfigRuleHost, "proxy_server"); |
305 ASSERT_TRUE( | 307 ASSERT_TRUE( |
306 GetProxyServer(&proxy_server_dict, net::ProxyServer::SCHEME_HTTP, | 308 GetProxyServer(&proxy_server_dict, net::ProxyServer::SCHEME_HTTP, |
307 &created, &error, &bad_message)); | 309 &created, &error, &bad_message)); |
308 EXPECT_EQ("PROXY proxy_server:80", created.ToPacString()); | 310 EXPECT_EQ("PROXY proxy_server:80", created.ToPacString()); |
309 EXPECT_FALSE(bad_message); | 311 EXPECT_FALSE(bad_message); |
310 | 312 |
311 // Test complete case. | 313 // Test complete case. |
312 proxy_server_dict.SetString(keys::kProxyConfigRuleScheme, "socks4"); | 314 proxy_server_dict.SetString(keys::kProxyConfigRuleScheme, "socks4"); |
313 proxy_server_dict.SetInteger(keys::kProxyConfigRulePort, 1234); | 315 proxy_server_dict.SetInteger(keys::kProxyConfigRulePort, 1234); |
314 ASSERT_TRUE( | 316 ASSERT_TRUE( |
315 GetProxyServer(&proxy_server_dict, net::ProxyServer::SCHEME_HTTP, | 317 GetProxyServer(&proxy_server_dict, net::ProxyServer::SCHEME_HTTP, |
316 &created, &error, &bad_message)); | 318 &created, &error, &bad_message)); |
317 EXPECT_EQ("SOCKS proxy_server:1234", created.ToPacString()); | 319 EXPECT_EQ("SOCKS proxy_server:1234", created.ToPacString()); |
318 EXPECT_FALSE(bad_message); | 320 EXPECT_FALSE(bad_message); |
319 } | 321 } |
320 | 322 |
321 TEST(ExtensionProxyApiHelpers, JoinUrlList) { | 323 TEST(ExtensionProxyApiHelpers, JoinUrlList) { |
322 bool bad_message = false; | 324 bool bad_message = false; |
323 ListValue list; | 325 base::ListValue list; |
324 list.Append(Value::CreateStringValue("s1")); | 326 list.Append(Value::CreateStringValue("s1")); |
325 list.Append(Value::CreateStringValue("s2")); | 327 list.Append(Value::CreateStringValue("s2")); |
326 list.Append(Value::CreateStringValue("s3")); | 328 list.Append(Value::CreateStringValue("s3")); |
327 | 329 |
328 std::string out; | 330 std::string out; |
329 std::string error; | 331 std::string error; |
330 ASSERT_TRUE(JoinUrlList(&list, ";", &out, &error, &bad_message)); | 332 ASSERT_TRUE(JoinUrlList(&list, ";", &out, &error, &bad_message)); |
331 EXPECT_EQ("s1;s2;s3", out); | 333 EXPECT_EQ("s1;s2;s3", out); |
332 EXPECT_FALSE(bad_message); | 334 EXPECT_FALSE(bad_message); |
333 } | 335 } |
334 | 336 |
335 // This tests CreateProxyServerDict as well. | 337 // This tests CreateProxyServerDict as well. |
336 TEST(ExtensionProxyApiHelpers, CreateProxyRulesDict) { | 338 TEST(ExtensionProxyApiHelpers, CreateProxyRulesDict) { |
337 scoped_ptr<DictionaryValue> browser_pref( | 339 scoped_ptr<base::DictionaryValue> browser_pref( |
338 ProxyConfigDictionary::CreateFixedServers( | 340 ProxyConfigDictionary::CreateFixedServers( |
339 "http=proxy1:80;https=proxy2:80;ftp=proxy3:80;socks=proxy4:80", | 341 "http=proxy1:80;https=proxy2:80;ftp=proxy3:80;socks=proxy4:80", |
340 "localhost")); | 342 "localhost")); |
341 ProxyConfigDictionary config(browser_pref.get()); | 343 ProxyConfigDictionary config(browser_pref.get()); |
342 scoped_ptr<DictionaryValue> extension_pref(CreateProxyRulesDict(config)); | 344 scoped_ptr<base::DictionaryValue> extension_pref(CreateProxyRulesDict(config)) ; |
Finnur
2013/06/21 21:25:01
80 cols.
| |
343 ASSERT_TRUE(extension_pref.get()); | 345 ASSERT_TRUE(extension_pref.get()); |
344 | 346 |
345 scoped_ptr<DictionaryValue> expected(new DictionaryValue); | 347 scoped_ptr<base::DictionaryValue> expected(new base::DictionaryValue); |
346 expected->Set("proxyForHttp", | 348 expected->Set("proxyForHttp", |
347 CreateTestProxyServerDict("http", "proxy1", 80)); | 349 CreateTestProxyServerDict("http", "proxy1", 80)); |
348 expected->Set("proxyForHttps", | 350 expected->Set("proxyForHttps", |
349 CreateTestProxyServerDict("http", "proxy2", 80)); | 351 CreateTestProxyServerDict("http", "proxy2", 80)); |
350 expected->Set("proxyForFtp", | 352 expected->Set("proxyForFtp", |
351 CreateTestProxyServerDict("http", "proxy3", 80)); | 353 CreateTestProxyServerDict("http", "proxy3", 80)); |
352 expected->Set("fallbackProxy", | 354 expected->Set("fallbackProxy", |
353 CreateTestProxyServerDict("socks4", "proxy4", 80)); | 355 CreateTestProxyServerDict("socks4", "proxy4", 80)); |
354 ListValue* bypass_list = new ListValue; | 356 base::ListValue* bypass_list = new base::ListValue; |
355 bypass_list->Append(Value::CreateStringValue("localhost")); | 357 bypass_list->Append(Value::CreateStringValue("localhost")); |
356 expected->Set(keys::kProxyConfigBypassList, bypass_list); | 358 expected->Set(keys::kProxyConfigBypassList, bypass_list); |
357 | 359 |
358 EXPECT_TRUE(Value::Equals(expected.get(), extension_pref.get())); | 360 EXPECT_TRUE(Value::Equals(expected.get(), extension_pref.get())); |
359 } | 361 } |
360 | 362 |
361 // Test multiple proxies per scheme -- expect that only the first is returned. | 363 // Test multiple proxies per scheme -- expect that only the first is returned. |
362 TEST(ExtensionProxyApiHelpers, CreateProxyRulesDictMultipleProxies) { | 364 TEST(ExtensionProxyApiHelpers, CreateProxyRulesDictMultipleProxies) { |
363 scoped_ptr<DictionaryValue> browser_pref( | 365 scoped_ptr<base::DictionaryValue> browser_pref( |
364 ProxyConfigDictionary::CreateFixedServers( | 366 ProxyConfigDictionary::CreateFixedServers( |
365 "http=proxy1:80,default://;https=proxy2:80,proxy1:80;ftp=proxy3:80," | 367 "http=proxy1:80,default://;https=proxy2:80,proxy1:80;ftp=proxy3:80," |
366 "https://proxy5:443;socks=proxy4:80,proxy1:80", | 368 "https://proxy5:443;socks=proxy4:80,proxy1:80", |
367 "localhost")); | 369 "localhost")); |
368 ProxyConfigDictionary config(browser_pref.get()); | 370 ProxyConfigDictionary config(browser_pref.get()); |
369 scoped_ptr<DictionaryValue> extension_pref(CreateProxyRulesDict(config)); | 371 scoped_ptr<base::DictionaryValue> extension_pref( |
372 CreateProxyRulesDict(config)); | |
370 ASSERT_TRUE(extension_pref.get()); | 373 ASSERT_TRUE(extension_pref.get()); |
371 | 374 |
372 scoped_ptr<DictionaryValue> expected(new DictionaryValue); | 375 scoped_ptr<base::DictionaryValue> expected(new base::DictionaryValue); |
373 expected->Set("proxyForHttp", | 376 expected->Set("proxyForHttp", |
374 CreateTestProxyServerDict("http", "proxy1", 80)); | 377 CreateTestProxyServerDict("http", "proxy1", 80)); |
375 expected->Set("proxyForHttps", | 378 expected->Set("proxyForHttps", |
376 CreateTestProxyServerDict("http", "proxy2", 80)); | 379 CreateTestProxyServerDict("http", "proxy2", 80)); |
377 expected->Set("proxyForFtp", | 380 expected->Set("proxyForFtp", |
378 CreateTestProxyServerDict("http", "proxy3", 80)); | 381 CreateTestProxyServerDict("http", "proxy3", 80)); |
379 expected->Set("fallbackProxy", | 382 expected->Set("fallbackProxy", |
380 CreateTestProxyServerDict("socks4", "proxy4", 80)); | 383 CreateTestProxyServerDict("socks4", "proxy4", 80)); |
381 ListValue* bypass_list = new ListValue; | 384 base::ListValue* bypass_list = new base::ListValue; |
382 bypass_list->Append(Value::CreateStringValue("localhost")); | 385 bypass_list->Append(Value::CreateStringValue("localhost")); |
383 expected->Set(keys::kProxyConfigBypassList, bypass_list); | 386 expected->Set(keys::kProxyConfigBypassList, bypass_list); |
384 | 387 |
385 EXPECT_TRUE(Value::Equals(expected.get(), extension_pref.get())); | 388 EXPECT_TRUE(Value::Equals(expected.get(), extension_pref.get())); |
386 } | 389 } |
387 | 390 |
388 // Test if a PAC script URL is specified. | 391 // Test if a PAC script URL is specified. |
389 TEST(ExtensionProxyApiHelpers, CreatePacScriptDictWithUrl) { | 392 TEST(ExtensionProxyApiHelpers, CreatePacScriptDictWithUrl) { |
390 scoped_ptr<DictionaryValue> browser_pref( | 393 scoped_ptr<base::DictionaryValue> browser_pref( |
391 ProxyConfigDictionary::CreatePacScript(kSamplePacScriptUrl, false)); | 394 ProxyConfigDictionary::CreatePacScript(kSamplePacScriptUrl, false)); |
392 ProxyConfigDictionary config(browser_pref.get()); | 395 ProxyConfigDictionary config(browser_pref.get()); |
393 scoped_ptr<DictionaryValue> extension_pref(CreatePacScriptDict(config)); | 396 scoped_ptr<base::DictionaryValue> extension_pref(CreatePacScriptDict(config)); |
394 ASSERT_TRUE(extension_pref.get()); | 397 ASSERT_TRUE(extension_pref.get()); |
395 | 398 |
396 scoped_ptr<DictionaryValue> expected(new DictionaryValue); | 399 scoped_ptr<base::DictionaryValue> expected(new base::DictionaryValue); |
397 expected->SetString(keys::kProxyConfigPacScriptUrl, kSamplePacScriptUrl); | 400 expected->SetString(keys::kProxyConfigPacScriptUrl, kSamplePacScriptUrl); |
398 expected->SetBoolean(keys::kProxyConfigPacScriptMandatory, false); | 401 expected->SetBoolean(keys::kProxyConfigPacScriptMandatory, false); |
399 | 402 |
400 EXPECT_TRUE(Value::Equals(expected.get(), extension_pref.get())); | 403 EXPECT_TRUE(Value::Equals(expected.get(), extension_pref.get())); |
401 } | 404 } |
402 | 405 |
403 // Test if a PAC script is encoded in a data URL. | 406 // Test if a PAC script is encoded in a data URL. |
404 TEST(ExtensionProxyApiHelpers, CreatePacScriptDictWidthData) { | 407 TEST(ExtensionProxyApiHelpers, CreatePacScriptDictWidthData) { |
405 scoped_ptr<DictionaryValue> browser_pref( | 408 scoped_ptr<base::DictionaryValue> browser_pref( |
406 ProxyConfigDictionary::CreatePacScript(kSamplePacScriptAsDataUrl, false)); | 409 ProxyConfigDictionary::CreatePacScript(kSamplePacScriptAsDataUrl, false)); |
407 ProxyConfigDictionary config(browser_pref.get()); | 410 ProxyConfigDictionary config(browser_pref.get()); |
408 scoped_ptr<DictionaryValue> extension_pref(CreatePacScriptDict(config)); | 411 scoped_ptr<base::DictionaryValue> extension_pref(CreatePacScriptDict(config)); |
409 ASSERT_TRUE(extension_pref.get()); | 412 ASSERT_TRUE(extension_pref.get()); |
410 | 413 |
411 scoped_ptr<DictionaryValue> expected(new DictionaryValue); | 414 scoped_ptr<base::DictionaryValue> expected(new base::DictionaryValue); |
412 expected->SetString(keys::kProxyConfigPacScriptData, kSamplePacScript); | 415 expected->SetString(keys::kProxyConfigPacScriptData, kSamplePacScript); |
413 expected->SetBoolean(keys::kProxyConfigPacScriptMandatory, false); | 416 expected->SetBoolean(keys::kProxyConfigPacScriptMandatory, false); |
414 | 417 |
415 EXPECT_TRUE(Value::Equals(expected.get(), extension_pref.get())); | 418 EXPECT_TRUE(Value::Equals(expected.get(), extension_pref.get())); |
416 } | 419 } |
417 | 420 |
418 TEST(ExtensionProxyApiHelpers, TokenizeToStringList) { | 421 TEST(ExtensionProxyApiHelpers, TokenizeToStringList) { |
419 ListValue expected; | 422 base::ListValue expected; |
420 expected.Append(Value::CreateStringValue("s1")); | 423 expected.Append(Value::CreateStringValue("s1")); |
421 expected.Append(Value::CreateStringValue("s2")); | 424 expected.Append(Value::CreateStringValue("s2")); |
422 expected.Append(Value::CreateStringValue("s3")); | 425 expected.Append(Value::CreateStringValue("s3")); |
423 | 426 |
424 scoped_ptr<ListValue> out(TokenizeToStringList("s1;s2;s3", ";")); | 427 scoped_ptr<base::ListValue> out(TokenizeToStringList("s1;s2;s3", ";")); |
425 EXPECT_TRUE(Value::Equals(&expected, out.get())); | 428 EXPECT_TRUE(Value::Equals(&expected, out.get())); |
426 } | 429 } |
427 | 430 |
428 } // namespace proxy_api_helpers | 431 } // namespace proxy_api_helpers |
429 } // namespace extensions | 432 } // namespace extensions |
OLD | NEW |