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 <map> | 7 #include <map> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
77 Status IgnoreCapability(const base::Value& option, Capabilities* capabilities) { | 77 Status IgnoreCapability(const base::Value& option, Capabilities* capabilities) { |
78 return Status(kOk); | 78 return Status(kOk); |
79 } | 79 } |
80 | 80 |
81 Status ParseLogPath(const base::Value& option, Capabilities* capabilities) { | 81 Status ParseLogPath(const base::Value& option, Capabilities* capabilities) { |
82 if (!option.GetAsString(&capabilities->log_path)) | 82 if (!option.GetAsString(&capabilities->log_path)) |
83 return Status(kUnknownError, "must be a string"); | 83 return Status(kUnknownError, "must be a string"); |
84 return Status(kOk); | 84 return Status(kOk); |
85 } | 85 } |
86 | 86 |
87 Status ParseDeviceMetrics(const base::Value& option, | |
88 Capabilities* capabilities) { | |
89 const base::DictionaryValue* metrics; | |
90 if (!option.GetAsDictionary(&metrics)) | |
91 return Status(kUnknownError, "must be a dictionary"); | |
92 | |
93 if (!metrics->GetInteger("width", &(capabilities->device_metrics.width)) || | |
stgao
2014/04/30 03:32:55
Code in chromedriver seems not to use "()" to wrap
| |
94 !metrics->GetInteger("height", &(capabilities->device_metrics.height)) || | |
95 !metrics->GetDouble("pixel_ratio", &(capabilities->device_metrics.device_s cale_factor))) | |
stgao
2014/04/30 03:32:55
over 80 chars.
| |
96 return Status(kUnknownError, "missing or invalid 'metrics'"); | |
97 | |
98 capabilities->device_metrics.emulate_viewport = false; | |
99 capabilities->device_metrics.fit_window = true; | |
100 capabilities->device_metrics.text_autosizing = true; | |
101 capabilities->device_metrics.font_scale_factor = 1; | |
102 | |
103 return Status(kOk); | |
104 } | |
105 | |
87 Status ParseSwitches(const base::Value& option, | 106 Status ParseSwitches(const base::Value& option, |
88 Capabilities* capabilities) { | 107 Capabilities* capabilities) { |
89 const base::ListValue* switches_list = NULL; | 108 const base::ListValue* switches_list = NULL; |
90 if (!option.GetAsList(&switches_list)) | 109 if (!option.GetAsList(&switches_list)) |
91 return Status(kUnknownError, "must be a list"); | 110 return Status(kUnknownError, "must be a list"); |
92 for (size_t i = 0; i < switches_list->GetSize(); ++i) { | 111 for (size_t i = 0; i < switches_list->GetSize(); ++i) { |
93 std::string arg_string; | 112 std::string arg_string; |
94 if (!switches_list->GetString(i, &arg_string)) | 113 if (!switches_list->GetString(i, &arg_string)) |
95 return Status(kUnknownError, "each argument must be a string"); | 114 return Status(kUnknownError, "each argument must be a string"); |
96 capabilities->switches.SetUnparsedSwitch(arg_string); | 115 capabilities->switches.SetUnparsedSwitch(arg_string); |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
265 parser_map["androidUseRunningApp"] = | 284 parser_map["androidUseRunningApp"] = |
266 base::Bind(&ParseBoolean, &capabilities->android_use_running_app); | 285 base::Bind(&ParseBoolean, &capabilities->android_use_running_app); |
267 parser_map["args"] = base::Bind(&ParseSwitches); | 286 parser_map["args"] = base::Bind(&ParseSwitches); |
268 parser_map["loadAsync"] = base::Bind(&IgnoreDeprecatedOption, "loadAsync"); | 287 parser_map["loadAsync"] = base::Bind(&IgnoreDeprecatedOption, "loadAsync"); |
269 } else if (is_existing) { | 288 } else if (is_existing) { |
270 parser_map["debuggerAddress"] = base::Bind(&ParseUseExistingBrowser); | 289 parser_map["debuggerAddress"] = base::Bind(&ParseUseExistingBrowser); |
271 } else { | 290 } else { |
272 parser_map["args"] = base::Bind(&ParseSwitches); | 291 parser_map["args"] = base::Bind(&ParseSwitches); |
273 parser_map["binary"] = base::Bind(&ParseFilePath, &capabilities->binary); | 292 parser_map["binary"] = base::Bind(&ParseFilePath, &capabilities->binary); |
274 parser_map["detach"] = base::Bind(&ParseBoolean, &capabilities->detach); | 293 parser_map["detach"] = base::Bind(&ParseBoolean, &capabilities->detach); |
294 parser_map["deviceMetrics"] = | |
295 base::Bind(&ParseDeviceMetrics); | |
275 parser_map["excludeSwitches"] = base::Bind(&ParseExcludeSwitches); | 296 parser_map["excludeSwitches"] = base::Bind(&ParseExcludeSwitches); |
276 parser_map["extensions"] = base::Bind(&ParseExtensions); | 297 parser_map["extensions"] = base::Bind(&ParseExtensions); |
277 parser_map["forceDevToolsScreenshot"] = base::Bind( | 298 parser_map["forceDevToolsScreenshot"] = base::Bind( |
278 &ParseBoolean, &capabilities->force_devtools_screenshot); | 299 &ParseBoolean, &capabilities->force_devtools_screenshot); |
279 parser_map["loadAsync"] = base::Bind(&IgnoreDeprecatedOption, "loadAsync"); | 300 parser_map["loadAsync"] = base::Bind(&IgnoreDeprecatedOption, "loadAsync"); |
280 parser_map["localState"] = | 301 parser_map["localState"] = |
281 base::Bind(&ParseDict, &capabilities->local_state); | 302 base::Bind(&ParseDict, &capabilities->local_state); |
282 parser_map["logPath"] = base::Bind(&ParseLogPath); | 303 parser_map["logPath"] = base::Bind(&ParseLogPath); |
283 parser_map["minidumpPath"] = | 304 parser_map["minidumpPath"] = |
284 base::Bind(&ParseString, &capabilities->minidump_path); | 305 base::Bind(&ParseString, &capabilities->minidump_path); |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
433 if (desired_caps.Get(it->first, &capability)) { | 454 if (desired_caps.Get(it->first, &capability)) { |
434 Status status = it->second.Run(*capability, this); | 455 Status status = it->second.Run(*capability, this); |
435 if (status.IsError()) { | 456 if (status.IsError()) { |
436 return Status( | 457 return Status( |
437 kUnknownError, "cannot parse capability: " + it->first, status); | 458 kUnknownError, "cannot parse capability: " + it->first, status); |
438 } | 459 } |
439 } | 460 } |
440 } | 461 } |
441 return Status(kOk); | 462 return Status(kOk); |
442 } | 463 } |
OLD | NEW |