Refine search
@Test public void testReadFileInDirThenReadDir() { Buffer buff = vertx.fileSystem().readFileBlocking("webroot/subdir/subfile.html"); assertEquals(buff.toString(), "<html><body>subfile</body></html>"); Set<String> names = vertx.fileSystem().readDirBlocking("webroot/subdir").stream().map(path -> { int idx = path.lastIndexOf(File.separator); return idx == -1 ? path : path.substring(idx + 1); }).collect(Collectors.toSet()); assertEquals(names, new HashSet<>(Arrays.asList("subdir2", "subfile.html"))); }
@Test public void testAppendDoesNotModifyByteBufIndex() throws Exception { ByteBuf buf = Unpooled.copiedBuffer("foobar".getBytes()); assertEquals(0, buf.readerIndex()); assertEquals(6, buf.writerIndex()); Buffer buffer = Buffer.buffer(buf); Buffer other = Buffer.buffer("prefix"); other.appendBuffer(buffer); assertEquals(0, buf.readerIndex()); assertEquals(6, buf.writerIndex()); assertEquals(other.toString(), "prefixfoobar"); }
@Test public void testDirect() { Buffer buff = Buffer.factory.directBuffer("hello world".getBytes()); assertEquals("hello world", buff.toString()); buff.appendString(" foobar"); assertEquals("hello world foobar", buff.toString()); ByteBuf bb = buff.getByteBuf().unwrap(); assertTrue(bb.isDirect()); assertTrue(bb.release()); try { // Check it's deallocated buff.toString(); fail(); } catch (IllegalReferenceCountException e) { } } }
@Test public void testAppendString1() throws Exception { String str = TestUtils.randomUnicodeString(100); byte[] sb = str.getBytes("UTF-8"); Buffer b = Buffer.buffer(); b.appendString(str); assertEquals(b.length(), sb.length); assertTrue(str.equals(b.toString("UTF-8"))); assertTrue(str.equals(b.toString(StandardCharsets.UTF_8))); assertNullPointerException(() -> b.appendString(null)); assertNullPointerException(() -> b.appendString(null, "UTF-8")); assertNullPointerException(() -> b.appendString("", null)); }
@Test public void testCreateBuffers() throws Exception { Buffer buff = Buffer.buffer(1000); assertEquals(0, buff.length()); String str = TestUtils.randomUnicodeString(100); buff = Buffer.buffer(str); assertEquals(buff.length(), str.getBytes("UTF-8").length); assertEquals(str, buff.toString()); // TODO create with string with encoding byte[] bytes = TestUtils.randomByteArray(100); buff = Buffer.buffer(bytes); assertEquals(buff.length(), bytes.length); assertEquals(Buffer.buffer(bytes), Buffer.buffer(buff.getBytes())); }
@Test public void testWriteSameBufferMoreThanOnce() throws Exception { server.connectHandler(socket -> { Buffer received = Buffer.buffer(); socket.handler(buff -> { received.appendBuffer(buff); if (received.toString().equals("foofoo")) { testComplete(); } }); }).listen(testAddress, ar -> { assertTrue(ar.succeeded()); client.connect(testAddress, result -> { NetSocket socket = result.result(); Buffer buff = Buffer.buffer("foo"); socket.write(buff); socket.write(buff); }); }); await(); }
@Test public void testListenSocketAddress() { NetClient netClient = vertx.createNetClient(); server = vertx.createHttpServer().requestHandler(req -> req.response().end()); SocketAddress sockAddress = SocketAddress.inetSocketAddress(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST); server.listen(sockAddress, onSuccess(server -> { netClient.connect(sockAddress, onSuccess(sock -> { sock.handler(buf -> { assertTrue("Response is not an http 200", buf.toString("UTF-8").startsWith("HTTP/1.1 200 OK")); testComplete(); }); sock.write("GET / HTTP/1.1\r\n\r\n"); })); })); try { await(); } finally { netClient.close(); } }
@Test public void testDefaultRequestHeaders() { Handler<HttpServerRequest> requestHandler = req -> { // assertEquals(2, req.headers().size()); assertEquals(HttpVersion.HTTP_2, req.version()); // assertEquals("localhost:" + DEFAULT_HTTP_PORT, req.headers().get("host")); assertNotNull(req.headers().get("Accept-Encoding")); req.response().end(Buffer.buffer(COMPRESS_TEST_STRING).toString(CharsetUtil.UTF_8)); }; serverWithMinCompressionLevel.requestHandler(requestHandler); serverWithMaxCompressionLevel.requestHandler(requestHandler); serverWithMinCompressionLevel.listen(onSuccess(serverReady -> { testMinCompression(); testRawMinCompression(); })); serverWithMaxCompressionLevel.listen(onSuccess(serverReady -> { testMaxCompression(); testRawMaxCompression(); })); await(); }
@Test public void testServerWebsocketPingPong() { server = vertx.createHttpServer(new HttpServerOptions().setIdleTimeout(1).setPort(DEFAULT_HTTP_PORT).setHost(HttpTestBase.DEFAULT_HTTP_HOST)); server.websocketHandler(ws -> { ws.pongHandler(buff -> { assertEquals("ping", buff.toString()); testComplete(); }); ws.writePing(Buffer.buffer("ping")); }).listen(onSuccess(v -> { client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> {}); })); await(); }
@Test public void testSendFileFromClasspath() { vertx.createHttpServer(new HttpServerOptions().setPort(8080)).requestHandler(res -> { res.response().sendFile(webRoot + "/somefile.html"); }).listen(onSuccess(res -> { vertx.createHttpClient(new HttpClientOptions()).request(HttpMethod.GET, 8080, "localhost", "/", onSuccess(resp -> { resp.bodyHandler(buff -> { assertTrue(buff.toString().startsWith("<html><body>blah</body></html>")); testComplete(); }); })).end(); })); await(); }
@Test public void testDefaultRequestHeaders() { Handler<HttpServerRequest> requestHandler = req -> { assertEquals(2, req.headers().size()); // assertEquals("localhost:" + DEFAULT_HTTP_PORT, req.headers().get("host")); assertNotNull(req.headers().get("Accept-Encoding")); req.response().end(Buffer.buffer(COMPRESS_TEST_STRING).toString(CharsetUtil.UTF_8)); }; serverWithMinCompressionLevel.requestHandler(requestHandler); serverWithMaxCompressionLevel.requestHandler(requestHandler); serverWithMinCompressionLevel.listen(onSuccess(serverReady -> { testMinCompression(); testRawMinCompression(); })); serverWithMaxCompressionLevel.listen(onSuccess(serverReady -> { testMaxCompression(); testRawMaxCompression(); })); await(); }
@Test public void testSkipEncoding() throws Exception { serverWithMaxCompressionLevel.requestHandler(req -> { assertNotNull(req.headers().get("Accept-Encoding")); req.response() .putHeader(HttpHeaders.CONTENT_ENCODING, HttpHeaders.IDENTITY) .end(Buffer.buffer(COMPRESS_TEST_STRING).toString(CharsetUtil.UTF_8)); }); startServer(serverWithMaxCompressionLevel); clientraw.get(DEFAULT_HTTP_PORT + 1, DEFAULT_HTTP_HOST, "some-uri", onSuccess(resp -> { resp.bodyHandler(responseBuffer -> { String responseBody = responseBuffer.toString(CharsetUtil.UTF_8); assertEquals(COMPRESS_TEST_STRING, responseBody); testComplete(); }); })).putHeader(HttpHeaders.ACCEPT_ENCODING, HttpHeaders.DEFLATE_GZIP).end(); await(); }
@Test public void testSendOpenRangeFileFromClasspath() { vertx.createHttpServer(new HttpServerOptions().setPort(8080)).requestHandler(res -> { res.response().sendFile("webroot/somefile.html", 6); }).listen(onSuccess(res -> { vertx.createHttpClient(new HttpClientOptions()).request(HttpMethod.GET, 8080, "localhost", "/", onSuccess(resp -> { resp.bodyHandler(buff -> { assertTrue(buff.toString().startsWith("<body>blah</body></html>")); testComplete(); }); })).end(); })); await(); }
@Test public void testServerActualPortWhenSet() { server .requestHandler(request -> { request.response().end("hello"); }) .listen(ar -> { assertEquals(ar.result().actualPort(), DEFAULT_HTTP_PORT); vertx.createHttpClient(createBaseClientOptions()).getNow(ar.result().actualPort(), DEFAULT_HTTP_HOST, "/", onSuccess(response -> { assertEquals(response.statusCode(), 200); response.bodyHandler(body -> { assertEquals(body.toString("UTF-8"), "hello"); testComplete(); }); })); }); await(); }
@Test public void testClientWebsocketPingPong() { server = vertx.createHttpServer(new HttpServerOptions().setIdleTimeout(1).setPort(DEFAULT_HTTP_PORT).setHost(HttpTestBase.DEFAULT_HTTP_HOST)); server.websocketHandler(ws -> { }).listen(onSuccess(v -> { client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> { ws.pongHandler( pong -> { assertEquals("ping", pong.toString()); testComplete(); }); ws.writePing(Buffer.buffer("ping")); }); })); await(); }
@Test // Let's manually handle the websocket handshake and write a frame to the client public void testHandleWSManually() throws Exception { String path = "/some/path"; String message = "here is some text data"; server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT)).requestHandler(req -> { NetSocket sock = getUpgradedNetSocket(req, path); // Let's write a Text frame raw Buffer buff = Buffer.buffer(); buff.appendByte((byte)129); // Text frame buff.appendByte((byte)message.length()); buff.appendString(message); sock.write(buff); }); server.listen(ar -> { assertTrue(ar.succeeded()); client.websocketStream(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, path). handler(ws -> { ws.handler(buff -> { assertEquals(message, buff.toString("UTF-8")); testComplete(); }); }); }); await(); }
@Test public void testSendRangeFileFromClasspath() { vertx.createHttpServer(new HttpServerOptions().setPort(8080)).requestHandler(res -> { res.response().sendFile("webroot/somefile.html", 6, 6); }).listen(onSuccess(res -> { vertx.createHttpClient(new HttpClientOptions()).request(HttpMethod.GET, 8080, "localhost", "/", onSuccess(resp -> { resp.bodyHandler(buff -> { assertEquals("<body>", buff.toString()); testComplete(); }); })).end(); })); await(); }