25
25
26
26
class DesiredCapabilities implements WebDriverCapabilities
27
27
{
28
- /**
29
- * @var array
30
- */
28
+ /** @var array */
31
29
private $ capabilities ;
32
30
31
+ /** @var array */
32
+ private static $ ossToW3c = [
33
+ WebDriverCapabilityType::PLATFORM => 'platformName ' ,
34
+ WebDriverCapabilityType::VERSION => 'browserVersion ' ,
35
+ WebDriverCapabilityType::ACCEPT_SSL_CERTS => 'acceptInsecureCerts ' ,
36
+ ChromeOptions::CAPABILITY => ChromeOptions::CAPABILITY_W3C ,
37
+ ];
38
+
33
39
public function __construct (array $ capabilities = [])
34
40
{
35
41
$ this ->capabilities = $ capabilities ;
36
42
}
37
43
44
+ public static function createFromW3cCapabilities (array $ capabilities = [])
45
+ {
46
+ $ w3cToOss = array_flip (static ::$ ossToW3c );
47
+
48
+ foreach ($ w3cToOss as $ w3cCapability => $ ossCapability ) {
49
+ // Copy W3C capabilities to OSS ones
50
+ if (array_key_exists ($ w3cCapability , $ capabilities )) {
51
+ $ capabilities [$ ossCapability ] = $ capabilities [$ w3cCapability ];
52
+ }
53
+ }
54
+
55
+ return new self ($ capabilities );
56
+ }
57
+
38
58
/**
39
59
* @return string The name of the browser.
40
60
*/
@@ -183,13 +203,6 @@ public function toArray()
183
203
*/
184
204
public function toW3cCompatibleArray ()
185
205
{
186
- $ ossToW3c = [
187
- WebDriverCapabilityType::PLATFORM => 'platformName ' ,
188
- WebDriverCapabilityType::VERSION => 'browserVersion ' ,
189
- WebDriverCapabilityType::ACCEPT_SSL_CERTS => 'acceptInsecureCerts ' ,
190
- ChromeOptions::CAPABILITY => ChromeOptions::CAPABILITY_W3C ,
191
- ];
192
-
193
206
$ allowedW3cCapabilities = [
194
207
'browserName ' ,
195
208
'browserVersion ' ,
@@ -212,12 +225,12 @@ public function toW3cCompatibleArray()
212
225
$ w3cCapabilities [$ capabilityKey ] = $ capabilityValue ;
213
226
}
214
227
215
- // Convert capabilitites with changed name
216
- if (array_key_exists ($ capabilityKey , $ ossToW3c )) {
217
- if ($ capabilityKey === ' platform ' ) {
218
- $ w3cCapabilities [$ ossToW3c [$ capabilityKey ]] = mb_strtolower ($ capabilityValue );
228
+ // Convert capabilities with changed name
229
+ if (array_key_exists ($ capabilityKey , static :: $ ossToW3c )) {
230
+ if ($ capabilityKey === WebDriverCapabilityType:: PLATFORM ) {
231
+ $ w3cCapabilities [static :: $ ossToW3c [$ capabilityKey ]] = mb_strtolower ($ capabilityValue );
219
232
} else {
220
- $ w3cCapabilities [$ ossToW3c [$ capabilityKey ]] = $ capabilityValue ;
233
+ $ w3cCapabilities [static :: $ ossToW3c [$ capabilityKey ]] = $ capabilityValue ;
221
234
}
222
235
}
223
236
0 commit comments