From 421c63d12b703d33dbb82ef34d3d31593f422cc3 Mon Sep 17 00:00:00 2001 From: Henrik Skupin Date: Thu, 27 Sep 2018 12:06:00 +0000 Subject: [PATCH] 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 --- testing/webdriver/src/capabilities.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/testing/webdriver/src/capabilities.rs b/testing/webdriver/src/capabilities.rs index 269e5281ae2c..5c3cb51b4b7c 100644 --- a/testing/webdriver/src/capabilities.rs +++ b/testing/webdriver/src/capabilities.rs @@ -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::(&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::(&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(),