blob: c0d9abefe2d57e6028c23df0b5c95fb4795e8ead [file] [log] [blame]
/*
* Copyright 2003-2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.commons.net.telnet;
/***
* JUnit test class for TerminalTypeOptionHandler
* <p>
* @author Bruno D'Avanzo
***/
public class TerminalTypeOptionHandlerTest extends TelnetOptionHandlerTestAbstract
{
/***
* main for running the test.
***/
public static void main(String args[])
{
junit.textui.TestRunner.run(TerminalTypeOptionHandlerTest.class);
}
/***
* setUp for the test.
***/
protected void setUp()
{
opthand1 = new TerminalTypeOptionHandler("VT100");
opthand2 = new TerminalTypeOptionHandler("ANSI", true, true, true, true);
opthand3 = new TerminalTypeOptionHandler("ANSI", false, false, false, false);
}
/***
* test of the constructors.
***/
public void testConstructors()
{
assertEquals(opthand1.getOptionCode(), TelnetOption.TERMINAL_TYPE);
super.testConstructors();
}
/***
* test of client-driven subnegotiation.
* Checks that no subnegotiation is made.
***/
public void testStartSubnegotiation()
{
int resp1[] = opthand1.startSubnegotiationLocal();
int resp2[] = opthand1.startSubnegotiationRemote();
assertEquals(resp1, null);
assertEquals(resp2, null);
}
/***
* test of client-driven subnegotiation.
* Checks that the terminal type is sent
***/
public void testAnswerSubnegotiation()
{
int subn[] =
{
TelnetOption.TERMINAL_TYPE, 1
};
int expected1[] =
{
TelnetOption.TERMINAL_TYPE, 0, 'V', 'T', '1', '0', '0'
};
int expected2[] =
{
TelnetOption.TERMINAL_TYPE, 0, 'A', 'N', 'S', 'I'
};
int resp1[] = opthand1.answerSubnegotiation(subn, subn.length);
int resp2[] = opthand2.answerSubnegotiation(subn, subn.length);
assertTrue(equalInts(resp1, expected1));
assertTrue(equalInts(resp2, expected2));
}
/***
* compares two arrays of int
***/
protected boolean equalInts(int a1[], int a2[])
{
if(a1.length != a2.length)
{
return(false);
}
else
{
boolean result = true;
for(int ii=0; ii<a1.length; ii++)
{
if(a1[ii]!= a2[ii])
result = false;
}
return(result);
}
}
}