@@ -96,6 +96,30 @@ public Boolean apply(Map<String, Object> providedCapabilities, Map<String, Objec
96
96
}
97
97
}
98
98
99
+ class BrowserVersionValidator implements Validator {
100
+ @ Override
101
+ public Boolean apply (Map <String , Object > providedCapabilities , Map <String , Object > requestedCapabilities ) {
102
+ if ("htmlunit" .equals (requestedCapabilities .get (BROWSER_NAME ))) {
103
+ return true ;
104
+ }
105
+
106
+ Object requested = Optional .ofNullable (requestedCapabilities .get (CapabilityType .BROWSER_VERSION ))
107
+ .orElse (requestedCapabilities .get (CapabilityType .VERSION ));
108
+ if (anything (requested )) {
109
+ return true ;
110
+ }
111
+ Object provided = Optional .ofNullable (providedCapabilities .get (CapabilityType .BROWSER_VERSION ))
112
+ .orElse (providedCapabilities .get (CapabilityType .VERSION ));
113
+ Platform requestedPlatform = extractPlatform (requested );
114
+ if (requestedPlatform != null ) {
115
+ Platform providedPlatform = extractPlatform (provided );
116
+ return providedPlatform != null && providedPlatform .is (requestedPlatform );
117
+ }
118
+
119
+ return provided != null && Objects .equals (requested .toString (), provided .toString ());
120
+ }
121
+ }
122
+
99
123
class SimplePropertyValidator implements Validator {
100
124
private List <String > toConsider ;
101
125
@@ -168,9 +192,8 @@ private boolean getUseTechnologyPreview(Map<String, Object> capabilities) {
168
192
private final List <Validator > validators = new ArrayList <>();
169
193
{
170
194
validators .addAll (Arrays .asList (new PlatformValidator (), new AliasedPropertyValidator (BROWSER_NAME , "browser" ),
171
- new AliasedPropertyValidator (CapabilityType .BROWSER_VERSION , CapabilityType .VERSION ),
172
- new SimplePropertyValidator (CapabilityType .APPLICATION_NAME ), new FirefoxSpecificValidator (),
173
- new SafariSpecificValidator ()));
195
+ new BrowserVersionValidator (), new SimplePropertyValidator (CapabilityType .APPLICATION_NAME ),
196
+ new FirefoxSpecificValidator (), new SafariSpecificValidator ()));
174
197
}
175
198
176
199
public void addToConsider (String capabilityName ) {
0 commit comments