Skip to content

Commit 92d3172

Browse files
committed
Fix problem with query parameters in the NettyServer and switch from the JreAppServer for NettyAppServer
1 parent ac5aca9 commit 92d3172

File tree

8 files changed

+24
-19
lines changed

8 files changed

+24
-19
lines changed

java/client/test/org/openqa/selenium/devtools/CdpFacadeTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import org.openqa.selenium.HasAuthentication;
2525
import org.openqa.selenium.UsernameAndPassword;
2626
import org.openqa.selenium.environment.webserver.BasicAuthHandler;
27-
import org.openqa.selenium.environment.webserver.JreAppServer;
27+
import org.openqa.selenium.environment.webserver.NettyAppServer;
2828
import org.openqa.selenium.remote.http.HttpResponse;
2929
import org.openqa.selenium.remote.http.Route;
3030
import org.openqa.selenium.support.devtools.NetworkInterceptor;
@@ -36,11 +36,11 @@
3636

3737
public class CdpFacadeTest extends DevToolsTestBase {
3838

39-
private static JreAppServer server;
39+
private static NettyAppServer server;
4040

4141
@BeforeClass
4242
public static void startServer() {
43-
server = new JreAppServer(new BasicAuthHandler());
43+
server = new NettyAppServer(new BasicAuthHandler());
4444
server.start();
4545
}
4646

java/client/test/org/openqa/selenium/environment/BUILD.bazel

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ java_library(
5353
"//java/server/src/org/openqa/selenium/grid/config",
5454
"//java/server/src/org/openqa/selenium/grid/server",
5555
"//java/server/src/org/openqa/selenium/grid/web",
56-
"//java/server/src/org/openqa/selenium/jre/server",
56+
"//java/server/src/org/openqa/selenium/netty/server",
5757
artifact("com.google.guava:guava"),
5858
artifact("org.eclipse.jetty:jetty-http"),
5959
artifact("org.eclipse.jetty:jetty-server"),

java/client/test/org/openqa/selenium/environment/webserver/JreAppServer.java renamed to java/client/test/org/openqa/selenium/environment/webserver/NettyAppServer.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
import org.openqa.selenium.grid.web.PathResource;
2525
import org.openqa.selenium.grid.web.ResourceHandler;
2626
import org.openqa.selenium.internal.Require;
27-
import org.openqa.selenium.jre.server.JreServer;
2827
import org.openqa.selenium.json.Json;
2928
import org.openqa.selenium.net.PortProber;
29+
import org.openqa.selenium.netty.server.NettyServer;
3030
import org.openqa.selenium.remote.http.HttpClient;
3131
import org.openqa.selenium.remote.http.HttpHandler;
3232
import org.openqa.selenium.remote.http.HttpMethod;
@@ -51,19 +51,19 @@
5151
import static org.openqa.selenium.remote.http.Route.matching;
5252
import static org.openqa.selenium.remote.http.Route.post;
5353

54-
public class JreAppServer implements AppServer {
54+
public class NettyAppServer implements AppServer {
5555

5656
private final Server<?> server;
5757

58-
public JreAppServer() {
58+
public NettyAppServer() {
5959
this(emulateJettyAppServer());
6060
}
6161

62-
public JreAppServer(HttpHandler handler) {
62+
public NettyAppServer(HttpHandler handler) {
6363
Require.nonNull("Handler", handler);
6464

6565
int port = PortProber.findFreePort();
66-
server = new JreServer(
66+
server = new NettyServer(
6767
new BaseServerOptions(new MapConfig(singletonMap("server", singletonMap("port", port)))),
6868
handler);
6969
}
@@ -162,7 +162,7 @@ public String getAlternateHostName() {
162162
}
163163

164164
public static void main(String[] args) {
165-
JreAppServer server = new JreAppServer();
165+
NettyAppServer server = new NettyAppServer();
166166
server.start();
167167

168168
System.out.println(server.whereIs("/"));

java/client/test/org/openqa/selenium/environment/webserver/JreAppServerTest.java renamed to java/client/test/org/openqa/selenium/environment/webserver/NettyAppServerTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717

1818
package org.openqa.selenium.environment.webserver;
1919

20-
public class JreAppServerTest extends AppServerTestBase {
20+
public class NettyAppServerTest extends AppServerTestBase {
2121

2222
@Override
2323
protected AppServer createAppServer() {
24-
return new JreAppServer();
24+
return new NettyAppServer();
2525
}
2626
}

java/client/test/org/openqa/selenium/net/UrlCheckerTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import org.junit.After;
2020
import org.junit.Before;
2121
import org.junit.Test;
22-
import org.openqa.selenium.environment.webserver.JreAppServer;
22+
import org.openqa.selenium.environment.webserver.NettyAppServer;
2323
import org.openqa.selenium.remote.http.HttpResponse;
2424

2525
import java.net.MalformedURLException;
@@ -36,12 +36,12 @@ public class UrlCheckerTest {
3636

3737
private final UrlChecker urlChecker = new UrlChecker();
3838
private final ExecutorService executorService = Executors.newSingleThreadExecutor();
39-
private JreAppServer server;
39+
private NettyAppServer server;
4040
private URL url;
4141

4242
@Before
4343
public void buildServer() throws MalformedURLException {
44-
JreAppServer server = new JreAppServer(req -> new HttpResponse()
44+
NettyAppServer server = new NettyAppServer(req -> new HttpResponse()
4545
.setStatus(200)
4646
.setContent(utf8String("<h1>Working</h1>")));
4747
this.server = server;

java/client/test/org/openqa/selenium/support/devtools/NetworkInterceptorTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import org.openqa.selenium.By;
2525
import org.openqa.selenium.WebDriver;
2626
import org.openqa.selenium.devtools.HasDevTools;
27-
import org.openqa.selenium.environment.webserver.JreAppServer;
27+
import org.openqa.selenium.environment.webserver.NettyAppServer;
2828
import org.openqa.selenium.remote.http.Contents;
2929
import org.openqa.selenium.remote.http.HttpResponse;
3030
import org.openqa.selenium.remote.http.Route;
@@ -40,13 +40,13 @@
4040

4141
public class NetworkInterceptorTest {
4242

43-
private JreAppServer appServer;
43+
private NettyAppServer appServer;
4444
private WebDriver driver;
4545
private NetworkInterceptor interceptor;
4646

4747
@Before
4848
public void setup() {
49-
appServer = new JreAppServer(req -> new HttpResponse()
49+
appServer = new NettyAppServer(req -> new HttpResponse()
5050
.setStatus(200)
5151
.addHeader("Content-Type", MediaType.XHTML_UTF_8.toString())
5252
.setContent(utf8String("<html><head><title>Hello, World!</title></head><body/></html>")));

java/server/src/org/openqa/selenium/netty/server/BUILD.bazel

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ java_library(
55
name = "server",
66
srcs = glob(["*.java"]),
77
visibility = [
8+
"//java/client/test/org/openqa/selenium:__subpackages__",
89
"//java/server/src/org/openqa/selenium/grid:__subpackages__",
910
"//java/server/src/org/openqa/selenium/netty/server:__pkg__",
1011
"//java/server/src/org/openqa/selenium/remote/server:__pkg__",

java/server/src/org/openqa/selenium/netty/server/RequestConverter.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import io.netty.handler.codec.http.HttpUtil;
3030
import io.netty.handler.codec.http.HttpVersion;
3131
import io.netty.handler.codec.http.LastHttpContent;
32+
import io.netty.handler.codec.http.QueryStringDecoder;
3233
import io.netty.util.ReferenceCountUtil;
3334
import org.openqa.selenium.remote.http.HttpMethod;
3435
import org.openqa.selenium.remote.http.HttpRequest;
@@ -126,10 +127,13 @@ private HttpRequest createRequest(
126127
return null;
127128
}
128129

130+
QueryStringDecoder decoder = new QueryStringDecoder(nettyRequest.uri());
129131

130132
HttpRequest req = new HttpRequest(
131133
method,
132-
nettyRequest.uri());
134+
decoder.path());
135+
136+
decoder.parameters().forEach((key, values) -> values.forEach(value -> req.addQueryParameter(key, value)));
133137

134138
nettyRequest.headers().entries().stream()
135139
.filter(entry -> entry.getKey() != null)

0 commit comments

Comments
 (0)