mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-20 21:58:02 +01:00
enforce provisioning websocket timeouts
This commit is contained in:
committed by
ravi-signal
parent
8c2f3c839f
commit
c2e3ab832c
@@ -133,7 +133,6 @@ public class ProvisioningTimeoutIntegrationTest {
|
||||
.thenReturn(mock(ScheduledFuture.class));
|
||||
|
||||
final ClientUpgradeRequest upgradeRequest = new ClientUpgradeRequest();
|
||||
upgradeRequest.setHeader(WebsocketHeaders.X_SIGNAL_WEBSOCKET_TIMEOUT_HEADER, "");
|
||||
try (Session ignored = client.connect(testWebsocketListener,
|
||||
URI.create(String.format("ws://127.0.0.1:%d/websocket", DROPWIZARD_APP_EXTENSION.getLocalPort())),
|
||||
upgradeRequest).join()) {
|
||||
@@ -151,22 +150,6 @@ public class ProvisioningTimeoutIntegrationTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void websocketTimeoutNoHeader() throws IOException {
|
||||
final TestProvisioningListener testWebsocketListener = new TestProvisioningListener();
|
||||
|
||||
final ClientUpgradeRequest upgradeRequest = new ClientUpgradeRequest();
|
||||
try (Session ignored = client.connect(testWebsocketListener,
|
||||
URI.create(String.format("ws://127.0.0.1:%d/websocket", DROPWIZARD_APP_EXTENSION.getLocalPort())),
|
||||
upgradeRequest).join()) {
|
||||
assertThat(testWebsocketListener.closeFuture()).isNotDone();
|
||||
|
||||
final TestApplication testApplication = DROPWIZARD_APP_EXTENSION.getApplication();
|
||||
verify(testApplication.scheduler, never()).schedule(any(Runnable.class), anyLong(), any());
|
||||
assertThat(testWebsocketListener.closeFuture()).isNotDone();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void websocketTimeoutCancelled() throws IOException {
|
||||
final TestProvisioningListener testWebsocketListener = new TestProvisioningListener();
|
||||
@@ -176,7 +159,6 @@ public class ProvisioningTimeoutIntegrationTest {
|
||||
doReturn(scheduled).when(testApplication.scheduler).schedule(any(Runnable.class), anyLong(), any());
|
||||
|
||||
final ClientUpgradeRequest upgradeRequest = new ClientUpgradeRequest();
|
||||
upgradeRequest.setHeader(WebsocketHeaders.X_SIGNAL_WEBSOCKET_TIMEOUT_HEADER, "");
|
||||
final Session session = client.connect(testWebsocketListener,
|
||||
URI.create(String.format("ws://127.0.0.1:%d/websocket", DROPWIZARD_APP_EXTENSION.getLocalPort())),
|
||||
upgradeRequest).join();
|
||||
|
||||
@@ -47,6 +47,8 @@ class ProvisioningConnectListenerTest {
|
||||
void onWebSocketConnect() {
|
||||
final WebSocketClient webSocketClient = mock(WebSocketClient.class);
|
||||
final WebSocketSessionContext context = new WebSocketSessionContext(webSocketClient);
|
||||
final ScheduledFuture<?> scheduledFuture = mock(ScheduledFuture.class);
|
||||
doReturn(scheduledFuture).when(scheduledExecutorService).schedule(any(Runnable.class), anyLong(), any());
|
||||
|
||||
provisioningConnectListener.onWebSocketConnect(context);
|
||||
context.notifyClosed(1000, "Test");
|
||||
@@ -81,7 +83,6 @@ class ProvisioningConnectListenerTest {
|
||||
final WebSocketClient webSocketClient = mock(WebSocketClient.class);
|
||||
final WebSocketSessionContext context = new WebSocketSessionContext(webSocketClient);
|
||||
|
||||
when(webSocketClient.supportsProvisioningSocketTimeouts()).thenReturn(true);
|
||||
final ScheduledFuture<?> scheduledFuture = mock(ScheduledFuture.class);
|
||||
doReturn(scheduledFuture).when(scheduledExecutorService).schedule(any(Runnable.class), anyLong(), any());
|
||||
|
||||
@@ -99,7 +100,6 @@ class ProvisioningConnectListenerTest {
|
||||
final WebSocketClient webSocketClient = mock(WebSocketClient.class);
|
||||
final WebSocketSessionContext context = new WebSocketSessionContext(webSocketClient);
|
||||
|
||||
when(webSocketClient.supportsProvisioningSocketTimeouts()).thenReturn(true);
|
||||
final ScheduledFuture<?> scheduledFuture = mock(ScheduledFuture.class);
|
||||
doReturn(scheduledFuture).when(scheduledExecutorService).schedule(any(Runnable.class), anyLong(), any());
|
||||
|
||||
@@ -111,13 +111,4 @@ class ProvisioningConnectListenerTest {
|
||||
verify(scheduledFuture).cancel(false);
|
||||
verify(webSocketClient, never()).close(anyInt(), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
void skipsTimeoutIfUnsupported() {
|
||||
final WebSocketClient webSocketClient = mock(WebSocketClient.class);
|
||||
final WebSocketSessionContext context = new WebSocketSessionContext(webSocketClient);
|
||||
provisioningConnectListener.onWebSocketConnect(context);
|
||||
verify(scheduledExecutorService, never())
|
||||
.schedule(any(Runnable.class), eq(TIMEOUT.getSeconds()), eq(TimeUnit.SECONDS));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user