Bug 1494617 - [geckodriver] Fix evaluation of "desiredCapabilities" and "requiredCapabilities". r=ato

The refactoring of the webdriver crate to use Serde (bug 1396821)
caused this regression. By instructing Serde to correctly rename
both properties fixes it.

Differential Revision: https://phabricator.services.mozilla.com/D7079

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Henrik Skupin 2018-09-27 12:06:00 +00:00
parent f9e73257fd
commit 421c63d12b

View File

@ -517,9 +517,9 @@ impl CapabilitiesMatching for SpecNewSessionParameters {
#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct LegacyNewSessionParameters {
#[serde(default = "Capabilities::default")]
#[serde(rename = "desiredCapabilities", default = "Capabilities::default")]
pub desired: Capabilities,
#[serde(default = "Capabilities::default")]
#[serde(rename = "requiredCapabilities", default = "Capabilities::default")]
pub required: Capabilities,
}
@ -635,7 +635,7 @@ mod tests {
#[test]
fn test_json_spec_legacy_new_session_parameters_desired_only() {
let json = r#"{"desired":{}}"#;
let json = r#"{"desiredCapabilities":{}}"#;
let data = LegacyNewSessionParameters {
desired: Capabilities::new(),
required: Capabilities::new(),
@ -646,7 +646,7 @@ mod tests {
#[test]
fn test_json_spec_legacy_new_session_parameters_required_only() {
let json = r#"{"required":{}}"#;
let json = r#"{"requiredCapabilities":{}}"#;
let data = LegacyNewSessionParameters {
desired: Capabilities::new(),
required: Capabilities::new(),
@ -657,21 +657,21 @@ mod tests {
#[test]
fn test_json_spec_legacy_new_session_parameters_desired_null() {
let json = r#"{"desired":null,"required":{}}"#;
let json = r#"{"desiredCapabilities":null,"requiredCapabilities":{}}"#;
assert!(serde_json::from_str::<LegacyNewSessionParameters>(&json).is_err());
}
#[test]
fn test_json_spec_legacy_new_session_parameters_required_null() {
let json = r#"{"desired":{}, "required":null}"#;
let json = r#"{"desiredCapabilities":{}, "requiredCapabilities":null}"#;
assert!(serde_json::from_str::<LegacyNewSessionParameters>(&json).is_err());
}
#[test]
fn test_json_spec_legacy_new_session_parameters_both_empty() {
let json = r#"{"desired":{},"required":{}}"#;
let json = r#"{"desiredCapabilities":{},"requiredCapabilities":{}}"#;
let data = LegacyNewSessionParameters {
desired: Capabilities::new(),
required: Capabilities::new(),
@ -682,7 +682,10 @@ mod tests {
#[test]
fn test_json_spec_legacy_new_session_parameters_both_with_capabilities() {
let json = r#"{"desired":{"foo":"bar"},"required":{"foo2":"bar2"}}"#;
let json = r#"{
"desiredCapabilities":{"foo":"bar"},
"requiredCapabilities":{"foo2":"bar2"}
}"#;
let mut data = LegacyNewSessionParameters {
desired: Capabilities::new(),
required: Capabilities::new(),