@Test public void connectWebSocketDisabled() throws URISyntaxException { setupInfoRequest(false); this.sockJsClient.doHandshake(handler, URL); assertFalse(this.webSocketTransport.invoked()); assertTrue(this.xhrTransport.invoked()); assertTrue(this.xhrTransport.getRequest().getTransportUrl().toString().endsWith("xhr_streaming")); }
@Test public void connectXhrStreamingDisabled() throws Exception { setupInfoRequest(false); this.xhrTransport.setStreamingDisabled(true); this.sockJsClient.doHandshake(handler, URL).addCallback(this.connectCallback); assertFalse(this.webSocketTransport.invoked()); assertTrue(this.xhrTransport.invoked()); assertTrue(this.xhrTransport.getRequest().getTransportUrl().toString().endsWith("xhr")); }
@Test public void connectSockJsInfo() throws Exception { setupInfoRequest(true); this.sockJsClient.doHandshake(handler, URL); verify(this.infoReceiver, times(1)).executeInfoRequest(any(), any()); }
@Test public void connectSockJsInfoCached() throws Exception { setupInfoRequest(true); this.sockJsClient.doHandshake(handler, URL); this.sockJsClient.doHandshake(handler, URL); this.sockJsClient.doHandshake(handler, URL); verify(this.infoReceiver, times(1)).executeInfoRequest(any(), any()); }
@Test public void connectAndUseSubsetOfHandshakeHeadersForHttpRequests() throws Exception { ArgumentCaptor<HttpHeaders> headersCaptor = setupInfoRequest(false); this.xhrTransport.setStreamingDisabled(true); WebSocketHttpHeaders headers = new WebSocketHttpHeaders(); headers.set("foo", "bar"); headers.set("auth", "123"); this.sockJsClient.setHttpHeaderNames("auth"); this.sockJsClient.doHandshake(handler, headers, new URI(URL)).addCallback(this.connectCallback); assertEquals(1, headersCaptor.getValue().size()); assertEquals("123", headersCaptor.getValue().getFirst("auth")); assertEquals(1, this.xhrTransport.getRequest().getHttpRequestHeaders().size()); assertEquals("123", this.xhrTransport.getRequest().getHttpRequestHeaders().getFirst("auth")); }
@Test public void connectWebSocket() throws Exception { setupInfoRequest(true); this.sockJsClient.doHandshake(handler, URL).addCallback(this.connectCallback); assertTrue(this.webSocketTransport.invoked()); WebSocketSession session = mock(WebSocketSession.class); this.webSocketTransport.getConnectCallback().onSuccess(session); verify(this.connectCallback).onSuccess(session); verifyNoMoreInteractions(this.connectCallback); }
@Test public void connectWithHandshakeHeaders() throws Exception { ArgumentCaptor<HttpHeaders> headersCaptor = setupInfoRequest(false); this.xhrTransport.setStreamingDisabled(true); WebSocketHttpHeaders headers = new WebSocketHttpHeaders(); headers.set("foo", "bar"); headers.set("auth", "123"); this.sockJsClient.doHandshake(handler, headers, new URI(URL)).addCallback(this.connectCallback); HttpHeaders httpHeaders = headersCaptor.getValue(); assertEquals(2, httpHeaders.size()); assertEquals("bar", httpHeaders.getFirst("foo")); assertEquals("123", httpHeaders.getFirst("auth")); httpHeaders = this.xhrTransport.getRequest().getHttpRequestHeaders(); assertEquals(2, httpHeaders.size()); assertEquals("bar", httpHeaders.getFirst("foo")); assertEquals("123", httpHeaders.getFirst("auth")); }