aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language-web/src/test/java
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2023-06-18 17:39:27 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2023-06-18 17:49:03 +0200
commit8fe6d4b9abe14fdc84f5b7a41e8f6e956f03b0dc (patch)
tree6d6e342b019a1f3ad0baae710cf520a5dffe4b9e /subprojects/language-web/src/test/java
parentrefactor: prefer Query.of over Dnf.of (diff)
downloadrefinery-8fe6d4b9abe14fdc84f5b7a41e8f6e956f03b0dc.tar.gz
refinery-8fe6d4b9abe14fdc84f5b7a41e8f6e956f03b0dc.tar.zst
refinery-8fe6d4b9abe14fdc84f5b7a41e8f6e956f03b0dc.zip
chore(deps): bump dependencies
Diffstat (limited to 'subprojects/language-web/src/test/java')
-rw-r--r--subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java46
-rw-r--r--subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java17
2 files changed, 37 insertions, 26 deletions
diff --git a/subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java b/subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java
index 40f5281d..927eeab1 100644
--- a/subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java
+++ b/subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java
@@ -7,17 +7,18 @@ package tools.refinery.language.web;
7 7
8import org.eclipse.jetty.ee10.servlet.ServletContextHandler; 8import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
9import org.eclipse.jetty.ee10.servlet.ServletHolder; 9import org.eclipse.jetty.ee10.servlet.ServletHolder;
10import org.eclipse.jetty.ee10.websocket.api.Session;
11import org.eclipse.jetty.ee10.websocket.api.StatusCode;
12import org.eclipse.jetty.ee10.websocket.api.annotations.WebSocket;
13import org.eclipse.jetty.ee10.websocket.api.exceptions.UpgradeException;
14import org.eclipse.jetty.ee10.websocket.client.ClientUpgradeRequest;
15import org.eclipse.jetty.ee10.websocket.client.WebSocketClient;
16import org.eclipse.jetty.ee10.websocket.server.config.JettyWebSocketServletContainerInitializer; 10import org.eclipse.jetty.ee10.websocket.server.config.JettyWebSocketServletContainerInitializer;
17import org.eclipse.jetty.http.HttpHeader; 11import org.eclipse.jetty.http.HttpHeader;
18import org.eclipse.jetty.http.HttpStatus; 12import org.eclipse.jetty.http.HttpStatus;
19import org.eclipse.jetty.server.Server; 13import org.eclipse.jetty.server.Server;
20import org.eclipse.jetty.util.thread.QueuedThreadPool; 14import org.eclipse.jetty.util.thread.QueuedThreadPool;
15import org.eclipse.jetty.websocket.api.Callback;
16import org.eclipse.jetty.websocket.api.Session;
17import org.eclipse.jetty.websocket.api.StatusCode;
18import org.eclipse.jetty.websocket.api.annotations.WebSocket;
19import org.eclipse.jetty.websocket.api.exceptions.UpgradeException;
20import org.eclipse.jetty.websocket.client.ClientUpgradeRequest;
21import org.eclipse.jetty.websocket.client.WebSocketClient;
21import org.eclipse.xtext.testing.GlobalRegistries; 22import org.eclipse.xtext.testing.GlobalRegistries;
22import org.eclipse.xtext.testing.GlobalRegistries.GlobalStateMemento; 23import org.eclipse.xtext.testing.GlobalRegistries.GlobalStateMemento;
23import org.junit.jupiter.api.AfterEach; 24import org.junit.jupiter.api.AfterEach;
@@ -95,23 +96,34 @@ class ProblemWebSocketServletIntegrationTest {
95 assertThat(responses, hasSize(5)); 96 assertThat(responses, hasSize(5));
96 assertThat(responses.get(0), equalTo("{\"id\":\"foo\",\"response\":{\"stateId\":\"-80000000\"}}")); 97 assertThat(responses.get(0), equalTo("{\"id\":\"foo\",\"response\":{\"stateId\":\"-80000000\"}}"));
97 assertThat(responses.get(1), startsWith( 98 assertThat(responses.get(1), startsWith(
98 "{\"resource\":\"test.problem\",\"stateId\":\"-80000000\",\"service\":\"highlight\",\"push\":{\"regions\":[")); 99 "{\"resource\":\"test.problem\",\"stateId\":\"-80000000\",\"service\":\"highlight\"," +
100 "\"push\":{\"regions\":["));
99 assertThat(responses.get(2), equalTo( 101 assertThat(responses.get(2), equalTo(
100 "{\"resource\":\"test.problem\",\"stateId\":\"-80000000\",\"service\":\"validate\",\"push\":{\"issues\":[]}}")); 102 "{\"resource\":\"test.problem\",\"stateId\":\"-80000000\",\"service\":\"validate\"," +
103 "\"push\":{\"issues\":[]}}"));
101 assertThat(responses.get(3), equalTo("{\"id\":\"bar\",\"response\":{\"stateId\":\"-7fffffff\"}}")); 104 assertThat(responses.get(3), equalTo("{\"id\":\"bar\",\"response\":{\"stateId\":\"-7fffffff\"}}"));
102 assertThat(responses.get(4), startsWith( 105 assertThat(responses.get(4), startsWith(
103 "{\"resource\":\"test.problem\",\"stateId\":\"-7fffffff\",\"service\":\"highlight\",\"push\":{\"regions\":[")); 106 "{\"resource\":\"test.problem\",\"stateId\":\"-7fffffff\",\"service\":\"highlight\"," +
107 "\"push\":{\"regions\":["));
104 } 108 }
105 109
106 @WebSocket 110 @WebSocket
107 public static class UpdateTestClient extends WebSocketIntegrationTestClient { 111 public static class UpdateTestClient extends WebSocketIntegrationTestClient {
108 @Override 112 @Override
109 protected void arrange(Session session, int responsesReceived) throws IOException { 113 protected void arrange(Session session, int responsesReceived) {
110 switch (responsesReceived) { 114 switch (responsesReceived) {
111 case 0 -> session.getRemote().sendString( 115 case 0 -> session.sendText(
112 "{\"id\":\"foo\",\"request\":{\"resource\":\"test.problem\",\"serviceType\":\"update\",\"fullText\":\"class Person.\n\"}}"); 116 "{\"id\":\"foo\",\"request\":{\"resource\":\"test.problem\",\"serviceType\":\"update\"," +
113 case 3 -> session.getRemote().sendString( 117 "\"fullText\":\"class Person.\n\"}}",
114 "{\"id\":\"bar\",\"request\":{\"resource\":\"test.problem\",\"serviceType\":\"update\",\"requiredStateId\":\"-80000000\",\"deltaText\":\"indiv q.\nnode(q).\n\",\"deltaOffset\":\"0\",\"deltaReplaceLength\":\"0\"}}"); 118 Callback.NOOP
119 );
120 case 3 -> //noinspection TextBlockMigration
121 session.sendText(
122 "{\"id\":\"bar\",\"request\":{\"resource\":\"test.problem\",\"serviceType\":\"update\"," +
123 "\"requiredStateId\":\"-80000000\",\"deltaText\":\"indiv q.\nnode(q).\n\"," +
124 "\"deltaOffset\":\"0\",\"deltaReplaceLength\":\"0\"}}",
125 Callback.NOOP
126 );
115 case 5 -> session.close(); 127 case 5 -> session.close();
116 } 128 }
117 } 129 }
@@ -161,13 +173,13 @@ class ProblemWebSocketServletIntegrationTest {
161 @WebSocket 173 @WebSocket
162 public static class InvalidJsonTestClient extends WebSocketIntegrationTestClient { 174 public static class InvalidJsonTestClient extends WebSocketIntegrationTestClient {
163 @Override 175 @Override
164 protected void arrange(Session session, int responsesReceived) throws IOException { 176 protected void arrange(Session session, int responsesReceived) {
165 session.getRemote().sendString("<invalid json>"); 177 session.sendText("<invalid json>", Callback.NOOP);
166 } 178 }
167 } 179 }
168 180
169 @ParameterizedTest(name = "validOriginTest(\"{0}\")") 181 @ParameterizedTest(name = "validOriginTest(\"{0}\")")
170 @ValueSource(strings = { "https://refinery.example", "https://refinery.example:443", "HTTPS://REFINERY.EXAMPLE" }) 182 @ValueSource(strings = {"https://refinery.example", "https://refinery.example:443", "HTTPS://REFINERY.EXAMPLE"})
171 void validOriginTest(String origin) { 183 void validOriginTest(String origin) {
172 startServer("https://refinery.example,https://refinery.example:443"); 184 startServer("https://refinery.example,https://refinery.example:443");
173 var clientSocket = new CloseImmediatelyTestClient(); 185 var clientSocket = new CloseImmediatelyTestClient();
diff --git a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java
index 46220777..6ccf1760 100644
--- a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java
+++ b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java
@@ -5,13 +5,12 @@
5 */ 5 */
6package tools.refinery.language.web.tests; 6package tools.refinery.language.web.tests;
7 7
8import org.eclipse.jetty.ee10.websocket.api.Session; 8import org.eclipse.jetty.websocket.api.Session;
9import org.eclipse.jetty.ee10.websocket.api.annotations.OnWebSocketClose; 9import org.eclipse.jetty.websocket.api.annotations.OnWebSocketClose;
10import org.eclipse.jetty.ee10.websocket.api.annotations.OnWebSocketConnect; 10import org.eclipse.jetty.websocket.api.annotations.OnWebSocketError;
11import org.eclipse.jetty.ee10.websocket.api.annotations.OnWebSocketError; 11import org.eclipse.jetty.websocket.api.annotations.OnWebSocketMessage;
12import org.eclipse.jetty.ee10.websocket.api.annotations.OnWebSocketMessage; 12import org.eclipse.jetty.websocket.api.annotations.OnWebSocketOpen;
13 13
14import java.io.IOException;
15import java.time.Duration; 14import java.time.Duration;
16import java.util.ArrayList; 15import java.util.ArrayList;
17import java.util.List; 16import java.util.List;
@@ -39,8 +38,8 @@ public abstract class WebSocketIntegrationTestClient {
39 return responses; 38 return responses;
40 } 39 }
41 40
42 @OnWebSocketConnect 41 @OnWebSocketOpen
43 public void onConnect(Session session) { 42 public void onOpen(Session session) {
44 arrangeAndCatchErrors(session); 43 arrangeAndCatchErrors(session);
45 } 44 }
46 45
@@ -52,7 +51,7 @@ public abstract class WebSocketIntegrationTestClient {
52 } 51 }
53 } 52 }
54 53
55 protected abstract void arrange(Session session, int responsesReceived) throws IOException; 54 protected abstract void arrange(Session session, int responsesReceived);
56 55
57 @OnWebSocketClose 56 @OnWebSocketClose
58 public void onClose(int statusCode, String reason) { 57 public void onClose(int statusCode, String reason) {