Skip to content

Commit 4561d85

Browse files
committed
Refactoring a test, reducing code duplication, no logical changes
1 parent 2c9ffd6 commit 4561d85

File tree

1 file changed

+21
-46
lines changed

1 file changed

+21
-46
lines changed

java/client/test/org/openqa/selenium/remote/ProtocolHandshakeTest.java

Lines changed: 21 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,7 @@ public void requestShouldIncludeJsonWireProtocolCapabilities() throws IOExceptio
6868

6969
new ProtocolHandshake().createSession(client, command);
7070

71-
HttpRequest request = client.getRequest();
72-
Map<String, Object> json = new Gson()
73-
.fromJson(request.getContentString(), new TypeToken<Map<String, Object>>(){}.getType());
71+
Map<String, Object> json = getRequestPayloadAsMap(client);
7472

7573
assertEquals(ImmutableMap.of(), json.get("desiredCapabilities"));
7674
}
@@ -88,9 +86,7 @@ public void requestShouldIncludeOlderGeckoDriverCapabilities() throws IOExceptio
8886

8987
new ProtocolHandshake().createSession(client, command);
9088

91-
HttpRequest request = client.getRequest();
92-
Map<String, Object> json = new Gson()
93-
.fromJson(request.getContentString(), new TypeToken<Map<String, Object>>(){}.getType());
89+
Map<String, Object> json = getRequestPayloadAsMap(client);
9490
Map<String, Object> capabilities = (Map<String, Object>) json.get("capabilities");
9591

9692
assertEquals(ImmutableMap.of(), capabilities.get("desiredCapabilities"));
@@ -109,9 +105,7 @@ public void requestShouldIncludeSpecCompliantW3CCapabilities() throws IOExceptio
109105

110106
new ProtocolHandshake().createSession(client, command);
111107

112-
HttpRequest request = client.getRequest();
113-
Map<String, Object> json = new Gson()
114-
.fromJson(request.getContentString(), new TypeToken<Map<String, Object>>(){}.getType());
108+
Map<String, Object> json = getRequestPayloadAsMap(client);
115109

116110
List<Map<String, Object>> caps = mergeW3C(json);
117111

@@ -180,10 +174,7 @@ public void shouldAddBothGeckoDriverAndW3CCapabilitiesToRootCapabilitiesProperty
180174

181175
new ProtocolHandshake().createSession(client, command);
182176

183-
HttpRequest request = client.getRequest();
184-
Map<String, Object> handshakeRequest = new Gson().fromJson(
185-
request.getContentString(),
186-
new TypeToken<Map<String, Object>>() {}.getType());
177+
Map<String, Object> handshakeRequest = getRequestPayloadAsMap(client);
187178

188179
Object rawCaps = handshakeRequest.get("capabilities");
189180
assertTrue(rawCaps instanceof Map);
@@ -215,11 +206,7 @@ public void shouldNotIncludeNonProtocolExtensionKeys() throws IOException {
215206

216207
new ProtocolHandshake().createSession(client, command);
217208

218-
HttpRequest request = client.getRequest();
219-
220-
Map<String, Object> handshakeRequest = new Gson().fromJson(
221-
request.getContentString(),
222-
new TypeToken<Map<String, Object>>() {}.getType());
209+
Map<String, Object> handshakeRequest = getRequestPayloadAsMap(client);
223210

224211
Object rawCaps = handshakeRequest.get("capabilities");
225212
assertTrue(rawCaps instanceof Map);
@@ -258,10 +245,7 @@ public void firstMatchSeparatesCapsForDifferentBrowsers() throws IOException {
258245

259246
new ProtocolHandshake().createSession(client, command);
260247

261-
HttpRequest request = client.getRequest();
262-
Map<String, Object> handshakeRequest = new Gson().fromJson(
263-
request.getContentString(),
264-
new TypeToken<Map<String, Object>>() {}.getType());
248+
Map<String, Object> handshakeRequest = getRequestPayloadAsMap(client);
265249

266250
List<Map<String, Object>> capabilities = mergeW3C(handshakeRequest);
267251

@@ -288,10 +272,7 @@ public void doesNotCreateFirstMatchForNonW3CCaps() throws IOException {
288272

289273
new ProtocolHandshake().createSession(client, command);
290274

291-
HttpRequest request = client.getRequest();
292-
Map<String, Object> handshakeRequest = new Gson().fromJson(
293-
request.getContentString(),
294-
new TypeToken<Map<String, Object>>() {}.getType());
275+
Map<String, Object> handshakeRequest = getRequestPayloadAsMap(client);
295276

296277
List<Map<String, Object>> w3c = mergeW3C(handshakeRequest);
297278

@@ -320,10 +301,7 @@ public void shouldLowerCaseProxyTypeForW3CRequest() throws IOException {
320301

321302
new ProtocolHandshake().createSession(client, command);
322303

323-
HttpRequest request = client.getRequest();
324-
Map<String, Object> handshakeRequest = new Gson().fromJson(
325-
request.getContentString(),
326-
new TypeToken<Map<String, Object>>() {}.getType());
304+
Map<String, Object> handshakeRequest = getRequestPayloadAsMap(client);
327305

328306
mergeW3C(handshakeRequest).forEach(always -> {
329307
Map<String, ?> seenProxy = (Map<String, ?>) always.get("proxy");
@@ -353,10 +331,7 @@ public void shouldNotIncludeMappingOfANYPlatform() throws IOException {
353331

354332
new ProtocolHandshake().createSession(client, command);
355333

356-
HttpRequest request = client.getRequest();
357-
Map<String, Object> handshakeRequest = new Gson().fromJson(
358-
request.getContentString(),
359-
new TypeToken<Map<String, Object>>() {}.getType());
334+
Map<String, Object> handshakeRequest = getRequestPayloadAsMap(client);
360335

361336
mergeW3C(handshakeRequest)
362337
.forEach(capabilities -> {
@@ -389,33 +364,33 @@ private List<Map<String, Object>> mergeW3C(Map<String, Object> caps) {
389364
return allCaps;
390365
}
391366

367+
private Map<String, Object> getRequestPayloadAsMap(RecordingHttpClient client) {
368+
return new Gson().fromJson(
369+
client.getRequestPayload(), new TypeToken<Map<String, Object>>(){}.getType());
370+
}
371+
392372
class RecordingHttpClient implements HttpClient {
393373

394374
private final HttpResponse response;
395-
private HttpRequest request;
375+
private String payload;
396376

397-
public RecordingHttpClient(HttpResponse response) {
377+
RecordingHttpClient(HttpResponse response) {
398378
this.response = response;
399379
}
400380

401381
@Override
402-
public HttpResponse execute(HttpRequest request) throws IOException {
403-
return execute(request, true);
404-
}
405-
406-
private HttpResponse execute(HttpRequest request, boolean followRedirects) throws IOException {
407-
this.request = request;
408-
request.getContentString();
382+
public HttpResponse execute(HttpRequest request) {
383+
payload = request.getContentString();
409384
return response;
410385
}
411386

412387
@Override
413-
public void close() throws IOException {
388+
public void close() {
414389
// Does nothing
415390
}
416391

417-
public HttpRequest getRequest() {
418-
return request;
392+
String getRequestPayload() {
393+
return payload;
419394
}
420395
}
421396
}

0 commit comments

Comments
 (0)