protected final void assertWrite(int... codePoints) throws Exception { assertWrite(Helper.fromCodePoints(codePoints)); }
protected final void assertWrite(int... codePoints) throws Exception { assertWrite(Helper.fromCodePoints(codePoints)); }
protected final void assertWrite(int... codePoints) throws Exception { assertWrite(Helper.fromCodePoints(codePoints)); }
assertConnect(); Thread.sleep(15); assertWrite("hello"); awaitLatch(latch); Thread.sleep(15); assertWrite("byebye"); await();
@Test public void testServerDisconnect() throws Exception { CountDownLatch closedLatch = new CountDownLatch(1); server(conn -> { conn.setStdinHandler(bytes -> { conn.close(); }); conn.setCloseHandler(v -> { closedLatch.countDown(); }); }); assertConnect(); assertWrite("whatever"); assertTrue(closedLatch.await(10, TimeUnit.SECONDS)); }
@Test public void testServerDisconnect() throws Exception { CountDownLatch closedLatch = new CountDownLatch(1); server(conn -> { conn.setStdinHandler(bytes -> { conn.close(); }); conn.setCloseHandler(v -> { closedLatch.countDown(); }); }); assertConnect(); assertWrite("whatever"); assertTrue(closedLatch.await(10, TimeUnit.SECONDS)); }
@Test public void testServerDisconnect() throws Exception { final CountDownLatch closedLatch = new CountDownLatch(1); server(new Consumer<TtyConnection>() { @Override public void accept(final TtyConnection conn) { conn.setStdinHandler(new Consumer<int[]>() { @Override public void accept(int[] bytes) { conn.close(); } }); conn.setCloseHandler(new Consumer<Void>() { @Override public void accept(Void v) { closedLatch.countDown(); } }); } }); assertConnect(); assertWrite("whatever"); assertTrue(closedLatch.await(10, TimeUnit.SECONDS)); }
@Test public void testLastAccessedTime() throws Exception { CountDownLatch latch = new CountDownLatch(1); AtomicInteger count = new AtomicInteger(); long connTime = System.currentTimeMillis(); server(conn -> { assertTrue(conn.lastAccessedTime() >= connTime); long openTime = System.currentTimeMillis(); conn.setStdinHandler(cp -> { long delta = conn.lastAccessedTime() - openTime; switch (count.getAndIncrement()) { case 0: assertTrue(delta >= 0); latch.countDown(); break; case 1: assertTrue(delta >= 10); testComplete(); break; } }); }); assertConnect(); Thread.sleep(15); assertWrite("hello"); awaitLatch(latch); Thread.sleep(15); assertWrite("byebye"); await(); }
@Test public void testLastAccessedTime() throws Exception { CountDownLatch latch = new CountDownLatch(1); AtomicInteger count = new AtomicInteger(); long connTime = System.currentTimeMillis(); server(conn -> { assertTrue(conn.lastAccessedTime() >= connTime); long openTime = System.currentTimeMillis(); conn.setStdinHandler(cp -> { long delta = conn.lastAccessedTime() - openTime; switch (count.getAndIncrement()) { case 0: assertTrue(delta >= 0); latch.countDown(); break; case 1: assertTrue(delta >= 10); testComplete(); break; } }); }); assertConnect(); Thread.sleep(15); assertWrite("hello"); awaitLatch(latch); Thread.sleep(15); assertWrite("byebye"); await(); }
assertWrite('h', 'e', 'l', 'l', 'o', 3, 'b', 'y', 'e', 3); await();
@Test public void testConnectionClose() throws Exception { final AtomicInteger closeCount = new AtomicInteger(); server(new Consumer<TtyConnection>() { @Override public void accept(final TtyConnection conn) { conn.setCloseHandler(new Consumer<Void>() { @Override public void accept(Void v) { if (closeCount.incrementAndGet() > 1) { fail("Closed call several times"); } else { testComplete(); } } }); conn.setStdinHandler(new Consumer<int[]>() { @Override public void accept(int[] text) { conn.close(); } }); } }); assertConnect(); assertWrite("bye"); await(); }
}); assertConnect(); assertWrite('h', 'e', 'l', 'l', 'o', 3, 'b', 'y', 'e', 3); await();
}); assertConnect(); assertWrite('h', 'e', 'l', 'l', 'o', 3, 'b', 'y', 'e', 3); await();
@Test public void testTerminalType() throws Exception { Consumer<String> assertTerm = term -> { if (term.equals("xterm") || term.equals("vt100")) { testComplete(); } else { fail("Unexpected term " + term); } }; server(conn -> { if (conn.terminalType() != null) { assertTerm.accept(conn.terminalType()); } else { conn.setTerminalTypeHandler(assertTerm); } }); assertConnect("xterm"); assertWrite("bye"); await(); }
@Test public void testTerminalType() throws Exception { Consumer<String> assertTerm = term -> { if (term.equals("xterm") || term.equals("vt100")) { testComplete(); } else { fail("Unexpected term " + term); } }; server(conn -> { if (conn.terminalType() != null) { assertTerm.accept(conn.terminalType()); } else { conn.setTerminalTypeHandler(assertTerm); } }); assertConnect("xterm"); assertWrite("bye"); await(); }
@Test public void testConnectionClose() throws Exception { AtomicInteger closeCount = new AtomicInteger(); server(conn -> { conn.setCloseHandler(v -> { if (closeCount.incrementAndGet() > 1) { fail("Closed call several times"); } else { testComplete(); } }); conn.setStdinHandler(text -> conn.close()); }); assertConnect(); assertWrite("bye"); await(); }
@Test public void testSignals() throws Exception { StringBuilder buffer = new StringBuilder(); AtomicInteger count = new AtomicInteger(); server(conn -> { conn.setStdinHandler(event -> Helper.appendCodePoints(event, buffer)); conn.setEventHandler((event, cp) -> { switch (count.get()) { case 0: assertEquals(TtyEvent.INTR, event); count.set(1); break; case 1: assertEquals(TtyEvent.EOF, event); count.set(2); break; case 2: assertEquals(TtyEvent.SUSP, event); count.set(3); testComplete(); break; default: fail("Not expected"); } }); }); assertConnect(); assertWrite(3, 4, 26); await(); }
@Test public void testTerminalType() throws Exception { final Consumer<String> assertTerm = new Consumer<String>() { @Override public void accept(String term) { if (term.equals("xterm") || term.equals("vt100")) { testComplete(); } else { fail("Unexpected term " + term); } } }; server(new Consumer<TtyConnection>() { @Override public void accept(TtyConnection conn) { if (conn.terminalType() != null) { assertTerm.accept(conn.terminalType()); } else { conn.setTerminalTypeHandler(assertTerm); } } }); assertConnect("xterm"); assertWrite("bye"); await(); }
@Test public void testSignals() throws Exception { StringBuilder buffer = new StringBuilder(); AtomicInteger count = new AtomicInteger(); server(conn -> { conn.setStdinHandler(event -> Helper.appendCodePoints(event, buffer)); conn.setEventHandler((event, cp) -> { switch (count.get()) { case 0: assertEquals(TtyEvent.INTR, event); count.set(1); break; case 1: assertEquals(TtyEvent.EOF, event); count.set(2); break; case 2: assertEquals(TtyEvent.SUSP, event); count.set(3); testComplete(); break; default: fail("Not expected"); } }); }); assertConnect(); assertWrite(3, 4, 26); await(); }
@Test public void testConnectionClose() throws Exception { AtomicInteger closeCount = new AtomicInteger(); server(conn -> { conn.setCloseHandler(v -> { if (closeCount.incrementAndGet() > 1) { fail("Closed call several times"); } else { testComplete(); } }); conn.setStdinHandler(text -> conn.close()); }); assertConnect(); assertWrite("bye"); await(); }