Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(232)

Side by Side Diff: chrome/browser/extensions/api/proxy/proxy_api_helpers_unittest.cc

Issue 16915006: Convert most of extensions and some other random stuff to using the base namespace for Values. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698