1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17 package org.apache.commons.net.telnet;
18
19 /***
20 * JUnit test class for TerminalTypeOptionHandler
21 * <p>
22 * @author Bruno D'Avanzo
23 ***/
24 public class TerminalTypeOptionHandlerTest extends TelnetOptionHandlerTestAbstract
25 {
26 /***
27 * main for running the test.
28 ***/
29 public static void main(String args[])
30 {
31 junit.textui.TestRunner.run(TerminalTypeOptionHandlerTest.class);
32 }
33
34 /***
35 * setUp for the test.
36 ***/
37 @Override
38 protected void setUp()
39 {
40 opthand1 = new TerminalTypeOptionHandler("VT100");
41 opthand2 = new TerminalTypeOptionHandler("ANSI", true, true, true, true);
42 opthand3 = new TerminalTypeOptionHandler("ANSI", false, false, false, false);
43 }
44
45 /***
46 * test of the constructors.
47 ***/
48 @Override
49 public void testConstructors()
50 {
51 assertEquals(opthand1.getOptionCode(), TelnetOption.TERMINAL_TYPE);
52 super.testConstructors();
53 }
54
55 /***
56 * test of client-driven subnegotiation.
57 * Checks that no subnegotiation is made.
58 ***/
59 @Override
60 public void testStartSubnegotiation()
61 {
62
63 int resp1[] = opthand1.startSubnegotiationLocal();
64 int resp2[] = opthand1.startSubnegotiationRemote();
65
66 assertEquals(resp1, null);
67 assertEquals(resp2, null);
68 }
69
70
71 /***
72 * test of client-driven subnegotiation.
73 * Checks that the terminal type is sent
74 ***/
75 @Override
76 public void testAnswerSubnegotiation()
77 {
78 int subn[] =
79 {
80 TelnetOption.TERMINAL_TYPE, 1
81 };
82
83 int expected1[] =
84 {
85 TelnetOption.TERMINAL_TYPE, 0, 'V', 'T', '1', '0', '0'
86 };
87
88 int expected2[] =
89 {
90 TelnetOption.TERMINAL_TYPE, 0, 'A', 'N', 'S', 'I'
91 };
92
93 int resp1[] = opthand1.answerSubnegotiation(subn, subn.length);
94 int resp2[] = opthand2.answerSubnegotiation(subn, subn.length);
95
96 assertTrue(equalInts(resp1, expected1));
97 assertTrue(equalInts(resp2, expected2));
98 }
99
100
101 /***
102 * compares two arrays of int
103 ***/
104 protected boolean equalInts(int a1[], int a2[])
105 {
106 if(a1.length != a2.length)
107 {
108 return(false);
109 }
110 else
111 {
112 boolean result = true;
113 for(int ii=0; ii<a1.length; ii++)
114 {
115 if(a1[ii]!= a2[ii])
116 result = false;
117 }
118 return(result);
119 }
120 }
121 }