@Test public void testAcceptNAWS() throws Exception { final AtomicReference<Boolean> serverValue = new AtomicReference<>(); final AtomicReference<int[]> size = new AtomicReference<>(); WindowSizeOptionHandler optionHandler = new WindowSizeOptionHandler(20, 10, false, false, true, false); testOptionValue(() -> new TelnetHandler() { @Override protected void onOpen(TelnetConnection conn) { conn.writeDoOption(Option.NAWS); } @Override protected void onNAWS(boolean naws) { serverValue.set(naws); } @Override protected void onSize(int width, int height) { size.set(new int[]{width, height}); testComplete(); } }, optionHandler); assertEquals(true, serverValue.get()); assertEquals(true, optionHandler.getAcceptLocal()); assertEquals(2, size.get().length); assertEquals(20, size.get()[0]); assertEquals(10, size.get()[1]); }
@Test public void testWillUnknownOption() throws Exception { server.start(TelnetHandler::new); client.registerNotifHandler((negotiation_code, option_code) -> { if (option_code == 47) { assertEquals(TelnetNotificationHandler.RECEIVED_DONT, negotiation_code); testComplete(); } }); client.setOptionHandler(new SimpleOptionHandler(47, true, false, false, false)); client.connect("localhost", 4000); await(); }
@Test public void testOpen() throws Exception { server.start(() -> new TelnetHandler() { @Override protected void onOpen(TelnetConnection conn) { testComplete(); } }); client.connect("localhost", 4000); await(); }
int read = reader.read(hello, num, expectedLen - num); if (read == -1) { fail("Unexpected"); assertEquals(5, num); assertEquals("hello", new String(hello)); long now = System.currentTimeMillis(); byte[] data; while ((data = baos.toByteArray()).length < 10) { assertTrue(System.currentTimeMillis() - now < 10000); Thread.sleep(5); assertEquals((byte)'h', data[3]); assertEquals((byte)'e', data[4]); assertEquals((byte)'l', data[5]); assertEquals((byte)'l', data[6]); assertEquals((byte)'o', data[7]); assertEquals((byte)-1, data[8]); assertEquals((byte)-1, data[9]);
int read = reader.read(hello, num, expectedLen - num); if (read == -1) { fail("Unexpected"); assertEquals(5, num); assertEquals("hello", new String(hello)); byte[] data = baos.toByteArray(); assertEquals(10, data.length); assertEquals((byte)'h', data[3]); assertEquals((byte)'e', data[4]); assertEquals((byte)'l', data[5]); assertEquals((byte)'l', data[6]); assertEquals((byte)'o', data[7]); assertEquals((byte)-1, data[8]); assertEquals((byte)-1, data[9]);
@Override public void accept(Integer negotiation_code, Integer option_code) { if (option_code == 47) { assertEquals(TelnetNotificationHandler.RECEIVED_DONT, negotiation_code); testComplete(); } } });
@Test public void testDoUnknownOption() throws Exception { server.start(TelnetHandler::new); client.registerNotifHandler((negotiation_code, option_code) -> { if (option_code == 47) { assertEquals(TelnetNotificationHandler.RECEIVED_WONT, negotiation_code); testComplete(); } }); client.setOptionHandler(new SimpleOptionHandler(47, false, true, false, false)); client.connect("localhost", 4000); await(); }
private void testOptionValue(Supplier<TelnetHandler> factory, TelnetOptionHandler optionHandler) throws Exception { server.start(factory); client.setOptionHandler(optionHandler); client.connect("localhost", 4000); await(); }
int read = reader.read(hello, num, expectedLen - num); if (read == -1) { fail("Unexpected"); assertEquals(5, num); assertEquals("hello", new String(hello)); long now = System.currentTimeMillis(); byte[] data; while ((data = baos.toByteArray()).length < 10) { assertTrue(System.currentTimeMillis() - now < 10000); Thread.sleep(5); assertEquals((byte)'h', data[3]); assertEquals((byte)'e', data[4]); assertEquals((byte)'l', data[5]); assertEquals((byte)'l', data[6]); assertEquals((byte)'o', data[7]); assertEquals((byte)-1, data[8]); assertEquals((byte)-1, data[9]);
@Override public void accept(Integer negotiation_code, Integer option_code) { if (option_code == 47) { assertEquals(TelnetNotificationHandler.RECEIVED_WONT, negotiation_code); testComplete(); } } });
@Test public void testAcceptNAWS() throws Exception { final AtomicReference<Boolean> serverValue = new AtomicReference<>(); final AtomicReference<int[]> size = new AtomicReference<>(); WindowSizeOptionHandler optionHandler = new WindowSizeOptionHandler(20, 10, false, false, true, false); testOptionValue(() -> new TelnetHandler() { @Override protected void onOpen(TelnetConnection conn) { conn.writeDoOption(Option.NAWS); } @Override protected void onNAWS(boolean naws) { serverValue.set(naws); } @Override protected void onSize(int width, int height) { size.set(new int[]{width, height}); testComplete(); } }, optionHandler); assertEquals(true, serverValue.get()); assertEquals(true, optionHandler.getAcceptLocal()); assertEquals(2, size.get().length); assertEquals(20, size.get()[0]); assertEquals(10, size.get()[1]); }
@Test public void testWillUnknownOption() throws Exception { server.start(TelnetHandler::new); client.registerNotifHandler((negotiation_code, option_code) -> { if (option_code == 47) { assertEquals(TelnetNotificationHandler.RECEIVED_DONT, negotiation_code); testComplete(); } }); client.setOptionHandler(new SimpleOptionHandler(47, true, false, false, false)); client.connect("localhost", 4000); await(); }
@Test public void testOpen() throws Exception { server.start(() -> new TelnetHandler() { @Override protected void onOpen(TelnetConnection conn) { testComplete(); } }); client.connect("localhost", 4000); await(); }
@Test public void testSend() throws Exception { server.start(() -> new TelnetHandler() { @Override protected void onOpen(TelnetConnection conn) { conn.write(new byte[]{0, 1, 2, 3, 127, (byte) 0x80, (byte) 0x81, -1}); } }); client.connect("localhost", 4000); byte[] data = client.assertReadBytes(8); assertEquals((byte)0, data[0]); assertEquals((byte)1, data[1]); assertEquals((byte)2, data[2]); assertEquals((byte)3, data[3]); assertEquals((byte)127, data[4]); assertEquals((byte)0, data[5]); assertEquals((byte)1, data[6]); assertEquals((byte)127, data[7]); }
@Test public void testRejectSGA() throws Exception { final AtomicReference<Boolean> serverValue = new AtomicReference<>(); SuppressGAOptionHandler optionHandler = new SuppressGAOptionHandler(false, false, false, false); testOptionValue(() -> new TelnetHandler() { @Override protected void onOpen(TelnetConnection conn) { conn.writeWillOption(Option.SGA); } @Override protected void onSGA(boolean sga) { serverValue.set(sga); testComplete(); } }, optionHandler); assertEquals(false, serverValue.get()); assertEquals(false, optionHandler.getAcceptRemote()); }
@Test public void testDoUnknownOption() throws Exception { server.start(TelnetHandler::new); client.registerNotifHandler((negotiation_code, option_code) -> { if (option_code == 47) { assertEquals(TelnetNotificationHandler.RECEIVED_WONT, negotiation_code); testComplete(); } }); client.setOptionHandler(new SimpleOptionHandler(47, false, true, false, false)); client.connect("localhost", 4000); await(); }
private void testOptionValue(Supplier<TelnetHandler> factory, TelnetOptionHandler optionHandler) throws Exception { server.start(factory); client.setOptionHandler(optionHandler); client.connect("localhost", 4000); await(); }
@Test public void testSend() throws Exception { server.start(() -> new TelnetHandler() { @Override protected void onOpen(TelnetConnection conn) { conn.write(new byte[]{0, 1, 2, 3, 127, (byte) 0x80, (byte) 0x81, -1}); } }); client.connect("localhost", 4000); byte[] data = client.assertReadBytes(8); assertEquals((byte)0, data[0]); assertEquals((byte)1, data[1]); assertEquals((byte)2, data[2]); assertEquals((byte)3, data[3]); assertEquals((byte)127, data[4]); assertEquals((byte)0, data[5]); assertEquals((byte)1, data[6]); assertEquals((byte)127, data[7]); }
@Test public void testRejectEcho() throws Exception { final AtomicReference<Boolean> serverValue = new AtomicReference<>(); EchoOptionHandler optionHandler = new EchoOptionHandler(false, false, false, false); testOptionValue(() -> new TelnetHandler() { @Override protected void onOpen(TelnetConnection conn) { conn.writeWillOption(Option.ECHO); } @Override protected void onEcho(boolean echo) { serverValue.set(echo); testComplete(); } }, optionHandler); assertEquals(false, serverValue.get()); assertEquals(false, optionHandler.getAcceptRemote()); }
private void testOptionValue(Supplier<TelnetHandler> factory, TelnetOptionHandler optionHandler) throws Exception { server.start(factory); client.setOptionHandler(optionHandler); client.connect("localhost", 4000); await(); }