34
34
import java .util .concurrent .atomic .AtomicReference ;
35
35
import java .util .function .Function ;
36
36
37
+ import static java .util .Collections .singletonList ;
37
38
import static org .assertj .core .api .Assertions .assertThat ;
38
39
import static org .assertj .core .api .Assertions .assertThatExceptionOfType ;
39
40
import static org .openqa .selenium .remote .ErrorCodes .SUCCESS_STRING ;
40
41
42
+ import com .google .common .collect .ImmutableMap ;
43
+
41
44
public class RemotableByTest {
42
45
43
46
private final SessionId id = new SessionId (UUID .randomUUID ());
@@ -53,7 +56,8 @@ public void shouldCallW3CLocatorWithW3CParameters() {
53
56
});
54
57
driver .findElement (By .cssSelector ("#foo" ));
55
58
56
- assertThat (parameters .get ()).isEqualTo (Map .of ("using" , "css selector" , "value" , "#foo" ));
59
+ assertThat (parameters .get ())
60
+ .isEqualTo (ImmutableMap .of ("using" , "css selector" , "value" , "#foo" ));
57
61
}
58
62
59
63
@ Test
@@ -63,7 +67,7 @@ public void shouldCallDownToSearchContextForNonRemotableLocators() {
63
67
WebDriver driver = createDriver (
64
68
cmd -> {
65
69
parameters .set (cmd .getParameters ());
66
- return createResponse (List . of (new RemoteWebElement ()));
70
+ return createResponse (singletonList (new RemoteWebElement ()));
67
71
}
68
72
);
69
73
@@ -74,7 +78,8 @@ public List<WebElement> findElements(SearchContext context) {
74
78
}
75
79
});
76
80
77
- assertThat (parameters .get ()).isEqualTo (Map .of ("using" , "css selector" , "value" , "#foo" ));
81
+ assertThat (parameters .get ())
82
+ .isEqualTo (ImmutableMap .of ("using" , "css selector" , "value" , "#foo" ));
78
83
}
79
84
80
85
@ Test
@@ -102,7 +107,8 @@ public List<WebElement> findElements(SearchContext context) {
102
107
103
108
driver .findElement (new CustomBy ());
104
109
105
- assertThat (parameters .get ()).isEqualTo (Map .of ("using" , "magic" , "value" , "abracadabra" ));
110
+ assertThat (parameters .get ())
111
+ .isEqualTo (ImmutableMap .of ("using" , "magic" , "value" , "abracadabra" ));
106
112
}
107
113
108
114
@ Test
@@ -113,7 +119,7 @@ public void shouldFallBackToCallingSearchContextIfRemotableSearchReturnsInvalidA
113
119
cmd -> createError (new InvalidArgumentException ("Nope" )),
114
120
cmd -> {
115
121
parameters .set (cmd .getParameters ());
116
- return createResponse (List . of (new RemoteWebElement ()));
122
+ return createResponse (singletonList (new RemoteWebElement ()));
117
123
}
118
124
);
119
125
@@ -131,7 +137,8 @@ public List<WebElement> findElements(SearchContext context) {
131
137
132
138
driver .findElement (new CustomBy ());
133
139
134
- assertThat (parameters .get ()).isEqualTo (Map .of ("using" , "css selector" , "value" , "not-magic" ));
140
+ assertThat (parameters .get ())
141
+ .isEqualTo (ImmutableMap .of ("using" , "css selector" , "value" , "not-magic" ));
135
142
}
136
143
137
144
@ Test
@@ -151,12 +158,12 @@ public void shouldUseMechanismUsedForFirstSuccessfulSearchInLaterCalls() {
151
158
152
159
// Second search tries both mechanisms, and succeeds because fallback to search context works
153
160
cmd -> createError (new InvalidArgumentException ("remoting fail" )),
154
- cmd -> createResponse (List . of (new RemoteWebElement ())),
161
+ cmd -> createResponse (singletonList (new RemoteWebElement ())),
155
162
156
163
// Third search goes straight to using the fallback
157
164
cmd -> {
158
165
parameters .set (cmd .getParameters ());
159
- return createResponse (List . of (new RemoteWebElement ()));
166
+ return createResponse (singletonList (new RemoteWebElement ()));
160
167
}
161
168
);
162
169
@@ -182,7 +189,8 @@ public Parameters getRemoteParameters() {
182
189
driver .findElement (new CustomBy ("two" ));
183
190
driver .findElement (new CustomBy ("three" ));
184
191
185
- assertThat (parameters .get ()).isEqualTo (Map .of ("using" , "css selector" , "value" , "three" ));
192
+ assertThat (parameters .get ())
193
+ .isEqualTo (ImmutableMap .of ("using" , "css selector" , "value" , "three" ));
186
194
}
187
195
188
196
private Response createResponse (Object value ) {
@@ -202,7 +210,7 @@ private Response createError(Exception e) {
202
210
}
203
211
204
212
@ SafeVarargs
205
- private WebDriver createDriver (Function <Command , Response >... responses ) {
213
+ private final WebDriver createDriver (Function <Command , Response >... responses ) {
206
214
Iterator <Function <Command , Response >> iterator = Arrays .stream (responses ).iterator ();
207
215
CommandExecutor executor = cmd -> iterator .next ().apply (cmd );
208
216
0 commit comments