You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by br...@apache.org on 2003/08/10 11:23:32 UTC
cvs commit: jakarta-commons/net/src/test/org/apache/commons/net/telnet TelnetClientTest.java
brudav 2003/08/10 02:23:32
Modified: net/src/test/org/apache/commons/net/telnet
TelnetClientTest.java
Log:
Added option negotiation notification interface.
Revision Changes Path
1.3 +110 -2 jakarta-commons/net/src/test/org/apache/commons/net/telnet/TelnetClientTest.java
Index: TelnetClientTest.java
===================================================================
RCS file: /home/cvs/jakarta-commons/net/src/test/org/apache/commons/net/telnet/TelnetClientTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TelnetClientTest.java 18 May 2003 04:03:17 -0000 1.2
+++ TelnetClientTest.java 10 Aug 2003 09:23:32 -0000 1.3
@@ -67,7 +67,7 @@
* <p>
* @author Bruno D'Avanzo
***/
-public class TelnetClientTest extends TestCase
+public class TelnetClientTest extends TestCase implements TelnetNotificationHandler
{
protected TelnetTestSimpleServer server1;
protected TelnetTestSimpleServer server2;
@@ -75,6 +75,10 @@
protected TelnetClient tc1;
protected TelnetClient tc2;
protected TelnetClient tc3;
+ protected int numdo = 0;
+ protected int numdont = 0;
+ protected int numwill = 0;
+ protected int numwont = 0;
/***
* main for running the test.
@@ -92,7 +96,7 @@
server1 = new TelnetTestSimpleServer(3333);
server2 = new TelnetTestSimpleServer(3334);
server3 = new TelnetTestSimpleServer(3335);
-
+
tc1 = new TelnetClient();
tc2 = new TelnetClient();
tc3 = new TelnetClient("ANSI");
@@ -423,6 +427,80 @@
}
/***
+ * test of option negotiation notification
+ ***/
+ public void testNotification() throws Exception
+ {
+ byte buffread1[] = new byte[6];
+ byte send1[] =
+ {
+ (byte)TelnetCommand.IAC, (byte)TelnetCommand.DO, (byte)15,
+ (byte)TelnetCommand.IAC, (byte)TelnetCommand.WILL, (byte)15,
+ };
+
+ byte buffread2[] = new byte[9];
+ byte send2[] =
+ {
+ (byte)TelnetCommand.IAC, (byte)TelnetCommand.DO, (byte)TelnetOption.TERMINAL_TYPE,
+ (byte)TelnetCommand.IAC, (byte)TelnetCommand.DONT, (byte)TelnetOption.ECHO,
+ (byte)TelnetCommand.IAC, (byte)TelnetCommand.DO, (byte)TelnetOption.SUPPRESS_GO_AHEAD,
+ (byte)TelnetCommand.IAC, (byte)TelnetCommand.WONT, (byte)TelnetOption.SUPPRESS_GO_AHEAD
+ };
+
+ byte buffread2b[] = new byte[11];
+ byte send2b[] =
+ {
+ (byte)TelnetCommand.IAC, (byte)TelnetCommand.SB, (byte)TelnetOption.TERMINAL_TYPE,
+ (byte)1, (byte)TelnetCommand.IAC, (byte)TelnetCommand.SE,
+ };
+
+ openConnections();
+
+ numdo = 0;
+ numdont = 0;
+ numwill = 0;
+ numwont = 0;
+ tc2.registerNotifHandler(this);
+
+ InputStream is1 = server1.getInputStream();
+ OutputStream os1 = server1.getOutputStream();
+ is1.skip(is1.available());
+ os1.write(send1);
+ os1.flush();
+ Thread.sleep(500);
+ if(is1.available() > 0)
+ {
+ is1.read(buffread1);
+ }
+
+ InputStream is2 = server2.getInputStream();
+ OutputStream os2 = server2.getOutputStream();
+ Thread.sleep(500);
+ is2.skip(is2.available());
+ os2.write(send2);
+ os2.flush();
+ Thread.sleep(500);
+ if(is2.available() > 0)
+ {
+ is2.read(buffread2);
+ Thread.sleep(1000);
+ if(is2.available() > 0)
+ {
+ is2.read(buffread2b);
+ }
+ }
+
+
+ closeConnections();
+
+ assertTrue(numdo == 2);
+ assertTrue(numdont == 1);
+ assertTrue(numwont == 1);
+ assertTrue(numwill == 0);
+ }
+
+
+ /***
* protocol compliance test in case of option handler removal
***/
public void testDeleteOptionHandler() throws Exception
@@ -640,6 +718,36 @@
result = false;
}
return(result);
+ }
+ }
+
+ /***
+ * Callback method called when TelnetClient receives an option
+ * negotiation command.
+ * <p>
+ * @param negotiation_code - type of negotiation command received
+ * (RECEIVED_DO, RECEIVED_DONT, RECEIVED_WILL, RECEIVED_WONT)
+ * <p>
+ * @param option_code - code of the option negotiated
+ * <p>
+ ***/
+ public void receivedNegotiation(int negotiation_code, int option_code)
+ {
+ if(negotiation_code == TelnetNotificationHandler.RECEIVED_DO)
+ {
+ numdo++;
+ }
+ else if(negotiation_code == TelnetNotificationHandler.RECEIVED_DONT)
+ {
+ numdont++;
+ }
+ else if(negotiation_code == TelnetNotificationHandler.RECEIVED_WILL)
+ {
+ numwill++;
+ }
+ else if(negotiation_code == TelnetNotificationHandler.RECEIVED_WONT)
+ {
+ numwont++;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org