001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: /**
018: * @author Michael Danilov
019: * @version $Revision$
020: */package java.awt.event;
021:
022: import java.awt.Button;
023: import java.awt.Container;
024:
025: import junit.framework.TestCase;
026:
027: public class KeyEventTest extends TestCase {
028:
029: public final void testGetKeyText()
030: throws StringIndexOutOfBoundsException {
031: assertEquals(KeyEvent.getKeyText(KeyEvent.VK_1), "1");
032: assertEquals(KeyEvent.getKeyText(KeyEvent.VK_SHIFT), "Shift");
033: assertEquals(KeyEvent
034: .getKeyText(KeyEvent.VK_INVERTED_EXCLAMATION_MARK),
035: "Inverted Exclamation Mark");
036: // assertTrue(KeyEvent.getKeyText(KeyEvent.VK_SEPARATOR).startsWith("NumPad ,"));
037: assertEquals(KeyEvent.getKeyText(-16), "Unknown keyCode: -0x10");
038:
039: // Regression test for HARMONY-2406
040: KeyEvent.getKeyText(4);
041: }
042:
043: public final void testGetKeyModifiersText() {
044: assertTrue(KeyEvent.getKeyModifiersText(
045: InputEvent.ALT_DOWN_MASK).indexOf("Alt") != -1);
046: assertTrue(KeyEvent.getKeyModifiersText(
047: InputEvent.ALT_GRAPH_DOWN_MASK).indexOf("Alt Graph") != -1);
048: assertTrue(KeyEvent.getKeyModifiersText(
049: InputEvent.CTRL_DOWN_MASK).indexOf("Ctrl") != -1);
050: assertTrue(KeyEvent.getKeyModifiersText(
051: InputEvent.SHIFT_DOWN_MASK).indexOf("Shift") != -1);
052: assertTrue(KeyEvent.getKeyModifiersText(
053: InputEvent.META_DOWN_MASK).indexOf("Meta") != -1);
054: assertTrue(KeyEvent.getKeyModifiersText(InputEvent.ALT_MASK)
055: .indexOf("Alt") != -1);
056: assertTrue(KeyEvent.getKeyModifiersText(
057: InputEvent.ALT_GRAPH_MASK).indexOf("Alt Graph") != -1);
058: assertTrue(KeyEvent.getKeyModifiersText(InputEvent.CTRL_MASK)
059: .indexOf("Ctrl") != -1);
060: assertTrue(KeyEvent.getKeyModifiersText(InputEvent.SHIFT_MASK)
061: .indexOf("Shift") != -1);
062: assertTrue(KeyEvent.getKeyModifiersText(InputEvent.META_MASK)
063: .indexOf("Meta") != -1);
064: }
065:
066: public final void testKeyEventComponentintlongintintchar() {
067: long when = 1000000000;
068: Button button = new Button("Button");
069: KeyEvent event = new KeyEvent(button, KeyEvent.KEY_PRESSED,
070: when, InputEvent.ALT_GRAPH_MASK, KeyEvent.VK_A, 'a');
071:
072: assertEquals(event.getSource(), button);
073: assertEquals(event.getID(), KeyEvent.KEY_PRESSED);
074: assertEquals(event.getWhen(), when);
075: assertEquals(event.getModifiers(), InputEvent.ALT_GRAPH_MASK);
076: assertEquals(event.getModifiersEx(),
077: InputEvent.ALT_GRAPH_DOWN_MASK);
078: assertEquals(event.getKeyCode(), KeyEvent.VK_A);
079: assertEquals(event.getKeyChar(), 'a');
080: assertEquals(event.getKeyLocation(),
081: KeyEvent.KEY_LOCATION_UNKNOWN);
082:
083: boolean typedKeyCode = false;
084: try {
085: event = new KeyEvent(button, KeyEvent.KEY_TYPED, when,
086: InputEvent.ALT_GRAPH_MASK, KeyEvent.VK_A, 'a');
087: } catch (Throwable t) {
088: typedKeyCode = true;
089: }
090: assertTrue(typedKeyCode);
091:
092: boolean typedUndefinedChar = false;
093: try {
094: event = new KeyEvent(button, KeyEvent.KEY_TYPED, when,
095: InputEvent.ALT_GRAPH_MASK, KeyEvent.VK_UNDEFINED,
096: KeyEvent.CHAR_UNDEFINED);
097: } catch (Throwable t) {
098: typedUndefinedChar = true;
099: }
100: assertTrue(typedUndefinedChar);
101: }
102:
103: public final void testKeyEventComponentintlongintintcharint() {
104: long when = 1000000000;
105: Button button = new Button("Button");
106: KeyEvent event = new KeyEvent(button, KeyEvent.KEY_PRESSED,
107: when, InputEvent.ALT_GRAPH_MASK, KeyEvent.VK_A, 'a',
108: KeyEvent.KEY_LOCATION_NUMPAD);
109:
110: assertEquals(event.getSource(), button);
111: assertEquals(event.getID(), KeyEvent.KEY_PRESSED);
112: assertEquals(event.getWhen(), when);
113: assertEquals(event.getModifiers(), InputEvent.ALT_GRAPH_MASK);
114: assertEquals(event.getModifiersEx(),
115: InputEvent.ALT_GRAPH_DOWN_MASK);
116: assertEquals(event.getKeyCode(), KeyEvent.VK_A);
117: assertEquals(event.getKeyChar(), 'a');
118: assertEquals(event.getKeyLocation(),
119: KeyEvent.KEY_LOCATION_NUMPAD);
120:
121: boolean typedKeyCode = false;
122: try {
123: event = new KeyEvent(button, KeyEvent.KEY_TYPED, when,
124: InputEvent.ALT_GRAPH_MASK, KeyEvent.VK_A, 'a',
125: KeyEvent.KEY_LOCATION_NUMPAD);
126: } catch (Throwable t) {
127: typedKeyCode = true;
128: }
129: assertTrue(typedKeyCode);
130:
131: boolean typedUndefinedChar = false;
132: try {
133: event = new KeyEvent(button, KeyEvent.KEY_TYPED, when,
134: InputEvent.ALT_GRAPH_MASK, KeyEvent.VK_UNDEFINED,
135: KeyEvent.CHAR_UNDEFINED,
136: KeyEvent.KEY_LOCATION_NUMPAD);
137: } catch (Throwable t) {
138: typedUndefinedChar = true;
139: }
140: assertTrue(typedUndefinedChar);
141:
142: // Regression for HARMONY-2491
143: try {
144: new KeyEvent(new Container(), (-1), 62554L, 5, 1, '\1', -1);
145: fail("IllegalArgumentException expected");
146: } catch (IllegalArgumentException e) {
147: // expected
148: }
149:
150: try {
151: new KeyEvent(new Container(), (-1), 62554L, 5, 1, '\1', 5);
152: fail("IllegalArgumentException expected");
153: } catch (IllegalArgumentException e) {
154: // expected
155: }
156: }
157:
158: public final void testGetSetKeyCode() {
159: Button button = new Button("Button");
160: KeyEvent event = new KeyEvent(button, KeyEvent.KEY_PRESSED, 0l,
161: InputEvent.ALT_GRAPH_MASK, KeyEvent.VK_A, 'a');
162:
163: event.setKeyCode(KeyEvent.VK_1);
164: assertEquals(event.getKeyCode(), KeyEvent.VK_1);
165: event.setKeyCode(KeyEvent.VK_UNDEFINED);
166: assertEquals(event.getKeyCode(), KeyEvent.VK_UNDEFINED);
167:
168: event = new KeyEvent(button, KeyEvent.KEY_TYPED, 0l,
169: InputEvent.ALT_GRAPH_MASK, KeyEvent.VK_UNDEFINED, 'a',
170: KeyEvent.KEY_LOCATION_NUMPAD);
171: boolean typedKeyCode = false;
172: try {
173: event.setKeyCode(KeyEvent.VK_A);
174: } catch (Throwable t) {
175: typedKeyCode = true;
176: }
177: assertFalse(typedKeyCode);
178: }
179:
180: public final void testGetSetKeyChar() {
181: Button button = new Button("Button");
182: KeyEvent event = new KeyEvent(button, KeyEvent.KEY_PRESSED, 0l,
183: InputEvent.ALT_GRAPH_MASK, KeyEvent.VK_A, 'a');
184:
185: event.setKeyChar('1');
186: assertEquals(event.getKeyChar(), '1');
187: event.setKeyChar(KeyEvent.CHAR_UNDEFINED);
188: assertEquals(event.getKeyChar(), KeyEvent.CHAR_UNDEFINED);
189:
190: event = new KeyEvent(button, KeyEvent.KEY_TYPED, 0l,
191: InputEvent.ALT_GRAPH_MASK, KeyEvent.VK_UNDEFINED, 'a',
192: KeyEvent.KEY_LOCATION_NUMPAD);
193: boolean typedKeyChar = false;
194: try {
195: event.setKeyChar(KeyEvent.CHAR_UNDEFINED);
196: } catch (Throwable t) {
197: typedKeyChar = true;
198: }
199: assertFalse(typedKeyChar);
200: }
201:
202: public final void testIsActionKey() {
203: Button button = new Button("Button");
204: KeyEvent event = new KeyEvent(button, KeyEvent.KEY_PRESSED, 0l,
205: InputEvent.ALT_GRAPH_MASK, KeyEvent.VK_A, 'a');
206:
207: assertFalse(event.isActionKey());
208: event = new KeyEvent(button, KeyEvent.KEY_PRESSED, 0l,
209: InputEvent.ALT_GRAPH_MASK, KeyEvent.VK_DELETE,
210: KeyEvent.CHAR_UNDEFINED);
211: assertTrue(event.isActionKey());
212: event.setKeyChar('1');
213: assertFalse(event.isActionKey());
214: event.setKeyChar(KeyEvent.CHAR_UNDEFINED);
215: event.setKeyCode(KeyEvent.VK_SHIFT);
216: assertFalse(event.isActionKey());
217: event.setKeyChar(KeyEvent.CHAR_UNDEFINED);
218: event.setKeyCode(KeyEvent.VK_UNDEFINED);
219: assertFalse(event.isActionKey());
220: }
221:
222: public final void testParamString() {
223: Button button = new Button("Button");
224: KeyEvent event = new KeyEvent(button, KeyEvent.KEY_PRESSED, 0l,
225: InputEvent.ALT_GRAPH_MASK, KeyEvent.VK_A, 'a',
226: KeyEvent.KEY_LOCATION_NUMPAD);
227:
228: assertEquals(
229: event.paramString(),
230: "KEY_PRESSED,keyCode=65,keyChar='a',modifiers=Alt Graph,extModifiers=Alt Graph,keyLocation=KEY_LOCATION_NUMPAD");
231: event = new KeyEvent(button, KeyEvent.KEY_PRESSED + 1024, 0l,
232: InputEvent.ALT_GRAPH_MASK, KeyEvent.VK_A, 'a',
233: KeyEvent.KEY_LOCATION_NUMPAD);
234: assertEquals(
235: event.paramString(),
236: "unknown type,keyCode=65,keyChar='a',modifiers=Alt Graph,extModifiers=Alt Graph,keyLocation=KEY_LOCATION_NUMPAD");
237: }
238: }
|