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 "chrome/test/chromedriver/capabilities.h" | 5 #include "chrome/test/chromedriver/capabilities.h" |
6 | 6 |
7 #include "base/values.h" | 7 #include "base/values.h" |
8 #include "chrome/test/chromedriver/chrome/log.h" | 8 #include "chrome/test/chromedriver/chrome/log.h" |
9 #include "chrome/test/chromedriver/chrome/status.h" | 9 #include "chrome/test/chromedriver/chrome/status.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 switches.SetUnparsedSwitch("d=1"); | 94 switches.SetUnparsedSwitch("d=1"); |
95 switches.SetUnparsedSwitch("-e=--1=1"); | 95 switches.SetUnparsedSwitch("-e=--1=1"); |
96 | 96 |
97 ASSERT_EQ("---e=--1=1 --a --b --c=1 --d=1", switches.ToString()); | 97 ASSERT_EQ("---e=--1=1 --a --b --c=1 --d=1", switches.ToString()); |
98 } | 98 } |
99 | 99 |
100 TEST(ParseCapabilities, WithAndroidPackage) { | 100 TEST(ParseCapabilities, WithAndroidPackage) { |
101 Capabilities capabilities; | 101 Capabilities capabilities; |
102 base::DictionaryValue caps; | 102 base::DictionaryValue caps; |
103 caps.SetString("chromeOptions.androidPackage", "abc"); | 103 caps.SetString("chromeOptions.androidPackage", "abc"); |
104 Logger log(Log::kError); | 104 Status status = capabilities.Parse(caps); |
105 Status status = capabilities.Parse(caps, &log); | |
106 ASSERT_TRUE(status.IsOk()); | 105 ASSERT_TRUE(status.IsOk()); |
107 ASSERT_TRUE(capabilities.IsAndroid()); | 106 ASSERT_TRUE(capabilities.IsAndroid()); |
108 ASSERT_EQ("abc", capabilities.android_package); | 107 ASSERT_EQ("abc", capabilities.android_package); |
109 } | 108 } |
110 | 109 |
111 TEST(ParseCapabilities, EmptyAndroidPackage) { | 110 TEST(ParseCapabilities, EmptyAndroidPackage) { |
112 Capabilities capabilities; | 111 Capabilities capabilities; |
113 base::DictionaryValue caps; | 112 base::DictionaryValue caps; |
114 caps.SetString("chromeOptions.androidPackage", std::string()); | 113 caps.SetString("chromeOptions.androidPackage", std::string()); |
115 Logger log(Log::kError); | 114 Status status = capabilities.Parse(caps); |
116 Status status = capabilities.Parse(caps, &log); | |
117 ASSERT_FALSE(status.IsOk()); | 115 ASSERT_FALSE(status.IsOk()); |
118 } | 116 } |
119 | 117 |
120 TEST(ParseCapabilities, IllegalAndroidPackage) { | 118 TEST(ParseCapabilities, IllegalAndroidPackage) { |
121 Capabilities capabilities; | 119 Capabilities capabilities; |
122 base::DictionaryValue caps; | 120 base::DictionaryValue caps; |
123 caps.SetInteger("chromeOptions.androidPackage", 123); | 121 caps.SetInteger("chromeOptions.androidPackage", 123); |
124 Logger log(Log::kError); | 122 Status status = capabilities.Parse(caps); |
125 Status status = capabilities.Parse(caps, &log); | |
126 ASSERT_FALSE(status.IsOk()); | 123 ASSERT_FALSE(status.IsOk()); |
127 } | 124 } |
128 | 125 |
129 TEST(ParseCapabilities, LogPath) { | 126 TEST(ParseCapabilities, LogPath) { |
130 Capabilities capabilities; | 127 Capabilities capabilities; |
131 base::DictionaryValue caps; | 128 base::DictionaryValue caps; |
132 caps.SetString("chromeOptions.logPath", "path/to/logfile"); | 129 caps.SetString("chromeOptions.logPath", "path/to/logfile"); |
133 Logger log(Log::kError); | 130 Status status = capabilities.Parse(caps); |
134 Status status = capabilities.Parse(caps, &log); | |
135 ASSERT_TRUE(status.IsOk()); | 131 ASSERT_TRUE(status.IsOk()); |
136 ASSERT_STREQ("path/to/logfile", capabilities.log_path.c_str()); | 132 ASSERT_STREQ("path/to/logfile", capabilities.log_path.c_str()); |
137 } | 133 } |
138 | 134 |
139 TEST(ParseCapabilities, Args) { | 135 TEST(ParseCapabilities, Args) { |
140 Capabilities capabilities; | 136 Capabilities capabilities; |
141 base::ListValue args; | 137 base::ListValue args; |
142 args.AppendString("arg1"); | 138 args.AppendString("arg1"); |
143 args.AppendString("arg2=val"); | 139 args.AppendString("arg2=val"); |
144 base::DictionaryValue caps; | 140 base::DictionaryValue caps; |
145 caps.Set("chromeOptions.args", args.DeepCopy()); | 141 caps.Set("chromeOptions.args", args.DeepCopy()); |
146 | 142 |
147 Logger log(Log::kError); | 143 Status status = capabilities.Parse(caps); |
148 Status status = capabilities.Parse(caps, &log); | |
149 ASSERT_TRUE(status.IsOk()); | 144 ASSERT_TRUE(status.IsOk()); |
150 | 145 |
151 ASSERT_EQ(2u, capabilities.switches.GetSize()); | 146 ASSERT_EQ(2u, capabilities.switches.GetSize()); |
152 ASSERT_TRUE(capabilities.switches.HasSwitch("arg1")); | 147 ASSERT_TRUE(capabilities.switches.HasSwitch("arg1")); |
153 ASSERT_TRUE(capabilities.switches.HasSwitch("arg2")); | 148 ASSERT_TRUE(capabilities.switches.HasSwitch("arg2")); |
154 ASSERT_EQ("", capabilities.switches.GetSwitchValue("arg1")); | 149 ASSERT_EQ("", capabilities.switches.GetSwitchValue("arg1")); |
155 ASSERT_EQ("val", capabilities.switches.GetSwitchValue("arg2")); | 150 ASSERT_EQ("val", capabilities.switches.GetSwitchValue("arg2")); |
156 } | 151 } |
157 | 152 |
158 TEST(ParseCapabilities, Prefs) { | 153 TEST(ParseCapabilities, Prefs) { |
159 Capabilities capabilities; | 154 Capabilities capabilities; |
160 base::DictionaryValue prefs; | 155 base::DictionaryValue prefs; |
161 prefs.SetString("key1", "value1"); | 156 prefs.SetString("key1", "value1"); |
162 prefs.SetString("key2.k", "value2"); | 157 prefs.SetString("key2.k", "value2"); |
163 base::DictionaryValue caps; | 158 base::DictionaryValue caps; |
164 caps.Set("chromeOptions.prefs", prefs.DeepCopy()); | 159 caps.Set("chromeOptions.prefs", prefs.DeepCopy()); |
165 Logger log(Log::kError); | 160 Status status = capabilities.Parse(caps); |
166 Status status = capabilities.Parse(caps, &log); | |
167 ASSERT_TRUE(status.IsOk()); | 161 ASSERT_TRUE(status.IsOk()); |
168 ASSERT_TRUE(capabilities.prefs->Equals(&prefs)); | 162 ASSERT_TRUE(capabilities.prefs->Equals(&prefs)); |
169 } | 163 } |
170 | 164 |
171 TEST(ParseCapabilities, LocalState) { | 165 TEST(ParseCapabilities, LocalState) { |
172 Capabilities capabilities; | 166 Capabilities capabilities; |
173 base::DictionaryValue local_state; | 167 base::DictionaryValue local_state; |
174 local_state.SetString("s1", "v1"); | 168 local_state.SetString("s1", "v1"); |
175 local_state.SetString("s2.s", "v2"); | 169 local_state.SetString("s2.s", "v2"); |
176 base::DictionaryValue caps; | 170 base::DictionaryValue caps; |
177 caps.Set("chromeOptions.localState", local_state.DeepCopy()); | 171 caps.Set("chromeOptions.localState", local_state.DeepCopy()); |
178 Logger log(Log::kError); | 172 Status status = capabilities.Parse(caps); |
179 Status status = capabilities.Parse(caps, &log); | |
180 ASSERT_TRUE(status.IsOk()); | 173 ASSERT_TRUE(status.IsOk()); |
181 ASSERT_TRUE(capabilities.local_state->Equals(&local_state)); | 174 ASSERT_TRUE(capabilities.local_state->Equals(&local_state)); |
182 } | 175 } |
183 | 176 |
184 TEST(ParseCapabilities, Extensions) { | 177 TEST(ParseCapabilities, Extensions) { |
185 Capabilities capabilities; | 178 Capabilities capabilities; |
186 base::ListValue extensions; | 179 base::ListValue extensions; |
187 extensions.AppendString("ext1"); | 180 extensions.AppendString("ext1"); |
188 extensions.AppendString("ext2"); | 181 extensions.AppendString("ext2"); |
189 base::DictionaryValue caps; | 182 base::DictionaryValue caps; |
190 caps.Set("chromeOptions.extensions", extensions.DeepCopy()); | 183 caps.Set("chromeOptions.extensions", extensions.DeepCopy()); |
191 Logger log(Log::kError); | 184 Status status = capabilities.Parse(caps); |
192 Status status = capabilities.Parse(caps, &log); | |
193 ASSERT_TRUE(status.IsOk()); | 185 ASSERT_TRUE(status.IsOk()); |
194 ASSERT_EQ(2u, capabilities.extensions.size()); | 186 ASSERT_EQ(2u, capabilities.extensions.size()); |
195 ASSERT_EQ("ext1", capabilities.extensions[0]); | 187 ASSERT_EQ("ext1", capabilities.extensions[0]); |
196 ASSERT_EQ("ext2", capabilities.extensions[1]); | 188 ASSERT_EQ("ext2", capabilities.extensions[1]); |
197 } | 189 } |
198 | 190 |
199 TEST(ParseCapabilities, UnrecognizedProxyType) { | 191 TEST(ParseCapabilities, UnrecognizedProxyType) { |
200 Capabilities capabilities; | 192 Capabilities capabilities; |
201 base::DictionaryValue proxy; | 193 base::DictionaryValue proxy; |
202 proxy.SetString("proxyType", "unknown proxy type"); | 194 proxy.SetString("proxyType", "unknown proxy type"); |
203 base::DictionaryValue caps; | 195 base::DictionaryValue caps; |
204 caps.Set("proxy", proxy.DeepCopy()); | 196 caps.Set("proxy", proxy.DeepCopy()); |
205 Logger log(Log::kError); | 197 Status status = capabilities.Parse(caps); |
206 Status status = capabilities.Parse(caps, &log); | |
207 ASSERT_FALSE(status.IsOk()); | 198 ASSERT_FALSE(status.IsOk()); |
208 } | 199 } |
209 | 200 |
210 TEST(ParseCapabilities, IllegalProxyType) { | 201 TEST(ParseCapabilities, IllegalProxyType) { |
211 Capabilities capabilities; | 202 Capabilities capabilities; |
212 base::DictionaryValue proxy; | 203 base::DictionaryValue proxy; |
213 proxy.SetInteger("proxyType", 123); | 204 proxy.SetInteger("proxyType", 123); |
214 base::DictionaryValue caps; | 205 base::DictionaryValue caps; |
215 caps.Set("proxy", proxy.DeepCopy()); | 206 caps.Set("proxy", proxy.DeepCopy()); |
216 Logger log(Log::kError); | 207 Status status = capabilities.Parse(caps); |
217 Status status = capabilities.Parse(caps, &log); | |
218 ASSERT_FALSE(status.IsOk()); | 208 ASSERT_FALSE(status.IsOk()); |
219 } | 209 } |
220 | 210 |
221 TEST(ParseCapabilities, DirectProxy) { | 211 TEST(ParseCapabilities, DirectProxy) { |
222 Capabilities capabilities; | 212 Capabilities capabilities; |
223 base::DictionaryValue proxy; | 213 base::DictionaryValue proxy; |
224 proxy.SetString("proxyType", "DIRECT"); | 214 proxy.SetString("proxyType", "DIRECT"); |
225 base::DictionaryValue caps; | 215 base::DictionaryValue caps; |
226 caps.Set("proxy", proxy.DeepCopy()); | 216 caps.Set("proxy", proxy.DeepCopy()); |
227 Logger log(Log::kError); | 217 Status status = capabilities.Parse(caps); |
228 Status status = capabilities.Parse(caps, &log); | |
229 ASSERT_TRUE(status.IsOk()); | 218 ASSERT_TRUE(status.IsOk()); |
230 ASSERT_EQ(1u, capabilities.switches.GetSize()); | 219 ASSERT_EQ(1u, capabilities.switches.GetSize()); |
231 ASSERT_TRUE(capabilities.switches.HasSwitch("no-proxy-server")); | 220 ASSERT_TRUE(capabilities.switches.HasSwitch("no-proxy-server")); |
232 } | 221 } |
233 | 222 |
234 TEST(ParseCapabilities, SystemProxy) { | 223 TEST(ParseCapabilities, SystemProxy) { |
235 Capabilities capabilities; | 224 Capabilities capabilities; |
236 base::DictionaryValue proxy; | 225 base::DictionaryValue proxy; |
237 proxy.SetString("proxyType", "system"); | 226 proxy.SetString("proxyType", "system"); |
238 base::DictionaryValue caps; | 227 base::DictionaryValue caps; |
239 caps.Set("proxy", proxy.DeepCopy()); | 228 caps.Set("proxy", proxy.DeepCopy()); |
240 Logger log(Log::kError); | 229 Status status = capabilities.Parse(caps); |
241 Status status = capabilities.Parse(caps, &log); | |
242 ASSERT_TRUE(status.IsOk()); | 230 ASSERT_TRUE(status.IsOk()); |
243 ASSERT_EQ(0u, capabilities.switches.GetSize()); | 231 ASSERT_EQ(0u, capabilities.switches.GetSize()); |
244 } | 232 } |
245 | 233 |
246 TEST(ParseCapabilities, PacProxy) { | 234 TEST(ParseCapabilities, PacProxy) { |
247 Capabilities capabilities; | 235 Capabilities capabilities; |
248 base::DictionaryValue proxy; | 236 base::DictionaryValue proxy; |
249 proxy.SetString("proxyType", "PAC"); | 237 proxy.SetString("proxyType", "PAC"); |
250 proxy.SetString("proxyAutoconfigUrl", "test.wpad"); | 238 proxy.SetString("proxyAutoconfigUrl", "test.wpad"); |
251 base::DictionaryValue caps; | 239 base::DictionaryValue caps; |
252 caps.Set("proxy", proxy.DeepCopy()); | 240 caps.Set("proxy", proxy.DeepCopy()); |
253 Logger log(Log::kError); | 241 Status status = capabilities.Parse(caps); |
254 Status status = capabilities.Parse(caps, &log); | |
255 ASSERT_TRUE(status.IsOk()); | 242 ASSERT_TRUE(status.IsOk()); |
256 ASSERT_EQ(1u, capabilities.switches.GetSize()); | 243 ASSERT_EQ(1u, capabilities.switches.GetSize()); |
257 ASSERT_EQ("test.wpad", capabilities.switches.GetSwitchValue("proxy-pac-url")); | 244 ASSERT_EQ("test.wpad", capabilities.switches.GetSwitchValue("proxy-pac-url")); |
258 } | 245 } |
259 | 246 |
260 TEST(ParseCapabilities, MissingProxyAutoconfigUrl) { | 247 TEST(ParseCapabilities, MissingProxyAutoconfigUrl) { |
261 Capabilities capabilities; | 248 Capabilities capabilities; |
262 base::DictionaryValue proxy; | 249 base::DictionaryValue proxy; |
263 proxy.SetString("proxyType", "PAC"); | 250 proxy.SetString("proxyType", "PAC"); |
264 proxy.SetString("httpProxy", "http://localhost:8001"); | 251 proxy.SetString("httpProxy", "http://localhost:8001"); |
265 base::DictionaryValue caps; | 252 base::DictionaryValue caps; |
266 caps.Set("proxy", proxy.DeepCopy()); | 253 caps.Set("proxy", proxy.DeepCopy()); |
267 Logger log(Log::kError); | 254 Status status = capabilities.Parse(caps); |
268 Status status = capabilities.Parse(caps, &log); | |
269 ASSERT_FALSE(status.IsOk()); | 255 ASSERT_FALSE(status.IsOk()); |
270 } | 256 } |
271 | 257 |
272 TEST(ParseCapabilities, AutodetectProxy) { | 258 TEST(ParseCapabilities, AutodetectProxy) { |
273 Capabilities capabilities; | 259 Capabilities capabilities; |
274 base::DictionaryValue proxy; | 260 base::DictionaryValue proxy; |
275 proxy.SetString("proxyType", "autodetect"); | 261 proxy.SetString("proxyType", "autodetect"); |
276 base::DictionaryValue caps; | 262 base::DictionaryValue caps; |
277 caps.Set("proxy", proxy.DeepCopy()); | 263 caps.Set("proxy", proxy.DeepCopy()); |
278 Logger log(Log::kError); | 264 Status status = capabilities.Parse(caps); |
279 Status status = capabilities.Parse(caps, &log); | |
280 ASSERT_TRUE(status.IsOk()); | 265 ASSERT_TRUE(status.IsOk()); |
281 ASSERT_EQ(1u, capabilities.switches.GetSize()); | 266 ASSERT_EQ(1u, capabilities.switches.GetSize()); |
282 ASSERT_TRUE(capabilities.switches.HasSwitch("proxy-auto-detect")); | 267 ASSERT_TRUE(capabilities.switches.HasSwitch("proxy-auto-detect")); |
283 } | 268 } |
284 | 269 |
285 TEST(ParseCapabilities, ManualProxy) { | 270 TEST(ParseCapabilities, ManualProxy) { |
286 Capabilities capabilities; | 271 Capabilities capabilities; |
287 base::DictionaryValue proxy; | 272 base::DictionaryValue proxy; |
288 proxy.SetString("proxyType", "manual"); | 273 proxy.SetString("proxyType", "manual"); |
289 proxy.SetString("ftpProxy", "localhost:9001"); | 274 proxy.SetString("ftpProxy", "localhost:9001"); |
290 proxy.SetString("httpProxy", "localhost:8001"); | 275 proxy.SetString("httpProxy", "localhost:8001"); |
291 proxy.SetString("sslProxy", "localhost:10001"); | 276 proxy.SetString("sslProxy", "localhost:10001"); |
292 proxy.SetString("noProxy", "google.com, youtube.com"); | 277 proxy.SetString("noProxy", "google.com, youtube.com"); |
293 base::DictionaryValue caps; | 278 base::DictionaryValue caps; |
294 caps.Set("proxy", proxy.DeepCopy()); | 279 caps.Set("proxy", proxy.DeepCopy()); |
295 Logger log(Log::kError); | 280 Status status = capabilities.Parse(caps); |
296 Status status = capabilities.Parse(caps, &log); | |
297 ASSERT_TRUE(status.IsOk()); | 281 ASSERT_TRUE(status.IsOk()); |
298 ASSERT_EQ(2u, capabilities.switches.GetSize()); | 282 ASSERT_EQ(2u, capabilities.switches.GetSize()); |
299 ASSERT_EQ( | 283 ASSERT_EQ( |
300 "ftp=localhost:9001;http=localhost:8001;https=localhost:10001", | 284 "ftp=localhost:9001;http=localhost:8001;https=localhost:10001", |
301 capabilities.switches.GetSwitchValue("proxy-server")); | 285 capabilities.switches.GetSwitchValue("proxy-server")); |
302 ASSERT_EQ( | 286 ASSERT_EQ( |
303 "google.com, youtube.com", | 287 "google.com, youtube.com", |
304 capabilities.switches.GetSwitchValue("proxy-bypass-list")); | 288 capabilities.switches.GetSwitchValue("proxy-bypass-list")); |
305 } | 289 } |
306 | 290 |
307 TEST(ParseCapabilities, MissingSettingForManualProxy) { | 291 TEST(ParseCapabilities, MissingSettingForManualProxy) { |
308 Capabilities capabilities; | 292 Capabilities capabilities; |
309 base::DictionaryValue proxy; | 293 base::DictionaryValue proxy; |
310 proxy.SetString("proxyType", "manual"); | 294 proxy.SetString("proxyType", "manual"); |
311 base::DictionaryValue caps; | 295 base::DictionaryValue caps; |
312 caps.Set("proxy", proxy.DeepCopy()); | 296 caps.Set("proxy", proxy.DeepCopy()); |
313 Logger log(Log::kError); | 297 Status status = capabilities.Parse(caps); |
314 Status status = capabilities.Parse(caps, &log); | |
315 ASSERT_FALSE(status.IsOk()); | 298 ASSERT_FALSE(status.IsOk()); |
316 } | 299 } |
317 | 300 |
318 TEST(ParseCapabilities, IgnoreNullValueForManualProxy) { | 301 TEST(ParseCapabilities, IgnoreNullValueForManualProxy) { |
319 Capabilities capabilities; | 302 Capabilities capabilities; |
320 base::DictionaryValue proxy; | 303 base::DictionaryValue proxy; |
321 proxy.SetString("proxyType", "manual"); | 304 proxy.SetString("proxyType", "manual"); |
322 proxy.SetString("ftpProxy", "localhost:9001"); | 305 proxy.SetString("ftpProxy", "localhost:9001"); |
323 proxy.Set("sslProxy", base::Value::CreateNullValue()); | 306 proxy.Set("sslProxy", base::Value::CreateNullValue()); |
324 proxy.Set("noProxy", base::Value::CreateNullValue()); | 307 proxy.Set("noProxy", base::Value::CreateNullValue()); |
325 base::DictionaryValue caps; | 308 base::DictionaryValue caps; |
326 caps.Set("proxy", proxy.DeepCopy()); | 309 caps.Set("proxy", proxy.DeepCopy()); |
327 Logger log(Log::kError); | 310 Status status = capabilities.Parse(caps); |
328 Status status = capabilities.Parse(caps, &log); | |
329 ASSERT_TRUE(status.IsOk()); | 311 ASSERT_TRUE(status.IsOk()); |
330 ASSERT_EQ(1u, capabilities.switches.GetSize()); | 312 ASSERT_EQ(1u, capabilities.switches.GetSize()); |
331 ASSERT_TRUE(capabilities.switches.HasSwitch("proxy-server")); | 313 ASSERT_TRUE(capabilities.switches.HasSwitch("proxy-server")); |
332 ASSERT_EQ( | 314 ASSERT_EQ( |
333 "ftp=localhost:9001", | 315 "ftp=localhost:9001", |
334 capabilities.switches.GetSwitchValue("proxy-server")); | 316 capabilities.switches.GetSwitchValue("proxy-server")); |
335 } | 317 } |
336 | 318 |
337 TEST(ParseCapabilities, LoggingPrefsOk) { | 319 TEST(ParseCapabilities, LoggingPrefsOk) { |
338 Capabilities capabilities; | 320 Capabilities capabilities; |
339 base::DictionaryValue logging_prefs; | 321 base::DictionaryValue logging_prefs; |
340 logging_prefs.SetString("Network", "INFO"); | 322 logging_prefs.SetString("Network", "INFO"); |
341 base::DictionaryValue caps; | 323 base::DictionaryValue caps; |
342 caps.Set("loggingPrefs", logging_prefs.DeepCopy()); | 324 caps.Set("loggingPrefs", logging_prefs.DeepCopy()); |
343 Logger log(Log::kError); | 325 Status status = capabilities.Parse(caps); |
344 Status status = capabilities.Parse(caps, &log); | |
345 ASSERT_TRUE(status.IsOk()); | 326 ASSERT_TRUE(status.IsOk()); |
346 ASSERT_TRUE(capabilities.logging_prefs.get()); | 327 ASSERT_EQ(1u, capabilities.logging_prefs.size()); |
347 ASSERT_EQ(1u, capabilities.logging_prefs->size()); | 328 ASSERT_EQ(Log::kInfo, capabilities.logging_prefs["Network"]); |
348 std::string log_level; | |
349 ASSERT_TRUE(capabilities.logging_prefs->GetString("Network", &log_level)); | |
350 ASSERT_STREQ("INFO", log_level.c_str()); | |
351 } | 329 } |
352 | 330 |
353 TEST(ParseCapabilities, LoggingPrefsNotDict) { | 331 TEST(ParseCapabilities, LoggingPrefsNotDict) { |
354 Capabilities capabilities; | 332 Capabilities capabilities; |
355 base::DictionaryValue caps; | 333 base::DictionaryValue caps; |
356 caps.SetString("loggingPrefs", "INFO"); | 334 caps.SetString("loggingPrefs", "INFO"); |
357 Logger log(Log::kError); | 335 Status status = capabilities.Parse(caps); |
358 Status status = capabilities.Parse(caps, &log); | |
359 ASSERT_FALSE(status.IsOk()); | 336 ASSERT_FALSE(status.IsOk()); |
360 } | 337 } |
361 | 338 |
362 TEST(ParseCapabilities, ExcludeSwitches) { | 339 TEST(ParseCapabilities, ExcludeSwitches) { |
363 Capabilities capabilities; | 340 Capabilities capabilities; |
364 base::ListValue exclude_switches; | 341 base::ListValue exclude_switches; |
365 exclude_switches.AppendString("switch1"); | 342 exclude_switches.AppendString("switch1"); |
366 exclude_switches.AppendString("switch2"); | 343 exclude_switches.AppendString("switch2"); |
367 base::DictionaryValue caps; | 344 base::DictionaryValue caps; |
368 caps.Set("chromeOptions.excludeSwitches", exclude_switches.DeepCopy()); | 345 caps.Set("chromeOptions.excludeSwitches", exclude_switches.DeepCopy()); |
369 Logger log(Log::kError); | 346 Status status = capabilities.Parse(caps); |
370 Status status = capabilities.Parse(caps, &log); | |
371 ASSERT_TRUE(status.IsOk()); | 347 ASSERT_TRUE(status.IsOk()); |
372 ASSERT_EQ(2u, capabilities.exclude_switches.size()); | 348 ASSERT_EQ(2u, capabilities.exclude_switches.size()); |
373 const std::set<std::string>& switches = capabilities.exclude_switches; | 349 const std::set<std::string>& switches = capabilities.exclude_switches; |
374 ASSERT_TRUE(switches.find("switch1") != switches.end()); | 350 ASSERT_TRUE(switches.find("switch1") != switches.end()); |
375 ASSERT_TRUE(switches.find("switch2") != switches.end()); | 351 ASSERT_TRUE(switches.find("switch2") != switches.end()); |
376 } | 352 } |
377 | 353 |
378 TEST(ParseCapabilities, UseExistingBrowser) { | 354 TEST(ParseCapabilities, UseExistingBrowser) { |
379 Capabilities capabilities; | 355 Capabilities capabilities; |
380 base::DictionaryValue caps; | 356 base::DictionaryValue caps; |
381 caps.SetString("chromeOptions.debuggerAddress", "abc:123"); | 357 caps.SetString("chromeOptions.debuggerAddress", "abc:123"); |
382 Logger log(Log::kError); | 358 Status status = capabilities.Parse(caps); |
383 Status status = capabilities.Parse(caps, &log); | |
384 ASSERT_TRUE(status.IsOk()); | 359 ASSERT_TRUE(status.IsOk()); |
385 ASSERT_TRUE(capabilities.IsExistingBrowser()); | 360 ASSERT_TRUE(capabilities.IsExistingBrowser()); |
386 ASSERT_EQ("abc", capabilities.debugger_address.host()); | 361 ASSERT_EQ("abc", capabilities.debugger_address.host()); |
387 ASSERT_EQ(123, capabilities.debugger_address.port()); | 362 ASSERT_EQ(123, capabilities.debugger_address.port()); |
388 } | 363 } |
OLD | NEW |