@@ -38,7 +38,17 @@ class W3CCapabilities
38
38
:proxy => nil
39
39
}
40
40
41
- DEFAULTS . each_key do |key |
41
+ KNOWN = [
42
+ :remote_session_id ,
43
+ :specification_level ,
44
+ :xul_app_id ,
45
+ :raise_accessibility_exceptions ,
46
+ :rotatable ,
47
+ :app_build_id ,
48
+ :device
49
+ ]
50
+
51
+ ( DEFAULTS . keys + KNOWN ) . each do |key |
42
52
define_method key do
43
53
@capabilities . fetch ( key )
44
54
end
@@ -94,19 +104,20 @@ def json_create(data)
94
104
data = data . dup
95
105
96
106
# Convert due to Remote Driver implementation
97
- data [ "browserVersion" ] = data . delete ( "version" ) if data [ "version" ]
98
- data [ "platformName" ] = data . delete ( "platform" ) if data [ "platform" ]
107
+ data [ "browserVersion" ] = data . delete ( "version" ) if data . key? "version"
108
+ data [ "platformName" ] = data . delete ( "platform" ) if data . key? "platform"
99
109
100
110
caps = new
101
- caps . browser_name = data . delete ( "browserName" ) if data [ "browserName" ]
102
- caps . browser_version = data . delete ( "browserVersion" ) if data [ "browserVersion" ]
103
- caps . platform_name = data . delete ( "platformName" ) if data [ "platformName" ]
104
- caps . platform_version = data . delete ( "platformVersion" ) if data [ "platformVersion" ]
105
- caps . accept_ssl_certs = data . delete ( "acceptSslCerts" ) if data [ "acceptSslCerts" ]
106
- caps . takes_screenshot = data . delete ( "takesScreenshot" ) if data [ "takesScreenshot" ]
107
- caps . takes_element_screenshot = data . delete ( "takesElementScreenshot" ) if data [ "takesElementScreenshot" ]
108
- caps . page_load_strategy = data . delete ( "pageLoadStrategy" ) if data [ "pageloadStrategy" ]
109
- caps . proxy = Proxy . json_create ( data [ 'proxy' ] ) if data [ 'proxy' ]
111
+ caps . browser_name = data . delete ( "browserName" ) if data . key? "browserName"
112
+ caps . browser_version = data . delete ( "browserVersion" ) if data . key? "browserVersion"
113
+ caps . platform_name = data . delete ( "platformName" ) if data . key? "platformName"
114
+ caps . platform_version = data . delete ( "platformVersion" ) if data . key? "platformVersion"
115
+ caps . accept_ssl_certs = data . delete ( "acceptSslCerts" ) if data . key? "acceptSslCerts"
116
+ caps . takes_screenshot = data . delete ( "takesScreenshot" ) if data . key? "takesScreenshot"
117
+ caps . takes_element_screenshot = data . delete ( "takesElementScreenshot" ) if data . key? "takesElementScreenshot"
118
+ caps . page_load_strategy = data . delete ( "pageLoadStrategy" ) if data . key? "pageloadStrategy"
119
+ proxy = data . delete ( 'proxy' )
120
+ caps . proxy = Proxy . json_create ( proxy ) unless proxy . empty?
110
121
111
122
# Remote Server Specific
112
123
caps [ :remote_session_id ] = data . delete ( 'webdriver.remote.sessionid' )
@@ -116,7 +127,7 @@ def json_create(data)
116
127
data . delete ( 'cssSelectorsEnabled' )
117
128
118
129
# Marionette Specific
119
- caps [ :specification_level ] = data . delete ( "specificaionLevel " )
130
+ caps [ :specification_level ] = data . delete ( "specificationLevel " )
120
131
caps [ :xul_app_id ] = data . delete ( "XULappId" )
121
132
caps [ :raise_accessibility_exceptions ] = data . delete ( 'raisesAccessibilityExceptions' )
122
133
caps [ :rotatable ] = data . delete ( 'rotatable' )
0 commit comments