< prev index next >
test/java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java
Print this page
*** 36,102 ****
* @build LWButton
* @build LWList
* @build ExtendedRobot
* @run main/timeout=600 ExtendedModifiersTest
*/
!
!
! import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;
import static jdk.testlibrary.Asserts.*;
import test.java.awt.event.helpers.lwcomponents.LWButton;
import test.java.awt.event.helpers.lwcomponents.LWList;
-
public class ExtendedModifiersTest implements KeyListener {
Frame frame;
-
Button button;
LWButton buttonLW;
TextField textField;
TextArea textArea;
List list;
LWList listLW;
private final ExtendedRobot robot;
! private final static int robotDelay = 1000;
! private final static int waitDelay = 5000;
! private final static int keyDelay = 500;
!
! private final Object lock;
!
! private boolean keyPressedFlag = false;
private int modifiersEx = 0;
private String exText = "";
-
@Override
! public void keyTyped(KeyEvent e) {}
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
return;
}
-
modifiersEx = e.getModifiersEx();
exText = InputEvent.getModifiersExText(modifiersEx);
keyPressedFlag = true;
! synchronized (lock) { lock.notifyAll(); }
}
@Override
! public void keyReleased(KeyEvent e) {}
!
public void createGUI() {
frame = new Frame();
frame.setTitle("ExtendedModifiersTest");
--- 36,105 ----
* @build LWButton
* @build LWList
* @build ExtendedRobot
* @run main/timeout=600 ExtendedModifiersTest
*/
! import java.awt.Button;
! import java.awt.Color;
! import java.awt.Component;
! import java.awt.EventQueue;
! import java.awt.Frame;
! import java.awt.GridLayout;
! import java.awt.List;
! import java.awt.Point;
! import java.awt.TextArea;
! import java.awt.TextField;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;
import static jdk.testlibrary.Asserts.*;
import test.java.awt.event.helpers.lwcomponents.LWButton;
import test.java.awt.event.helpers.lwcomponents.LWList;
public class ExtendedModifiersTest implements KeyListener {
Frame frame;
Button button;
LWButton buttonLW;
TextField textField;
TextArea textArea;
List list;
LWList listLW;
private final ExtendedRobot robot;
! private final static int WAIT_DELAY = 5000;
! private final static int KEY_DELAY = 500;
! private final Object LOCK;
+ private boolean keyPressedFlag;
private int modifiersEx = 0;
private String exText = "";
@Override
! public void keyTyped(KeyEvent e) {
! }
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
return;
}
modifiersEx = e.getModifiersEx();
exText = InputEvent.getModifiersExText(modifiersEx);
keyPressedFlag = true;
! synchronized (LOCK) {
! LOCK.notifyAll();
! }
}
@Override
! public void keyReleased(KeyEvent e) {
! }
public void createGUI() {
frame = new Frame();
frame.setTitle("ExtendedModifiersTest");
*** 117,193 ****
textArea = new TextArea(5, 5);
textArea.addKeyListener(this);
frame.add(textArea);
list = new List();
! for (int i = 1; i <= 5; ++i) { list.add("item " + i); }
list.addKeyListener(this);
frame.add(list);
listLW = new LWList();
! for (int i = 1; i <= 5; ++i) { listLW.add("item " + i); }
listLW.addKeyListener(this);
frame.add(listLW);
frame.setBackground(Color.gray);
frame.setSize(500, 100);
frame.setVisible(true);
frame.toFront();
}
public ExtendedModifiersTest() throws Exception {
! lock = new Object();
robot = new ExtendedRobot();
! EventQueue.invokeAndWait( this::createGUI );
}
!
! private void runScenario(int keys[], int refMask) {
!
! if (keys.length < 1) { return; }
for (int k = 0; k < keys.length; ++k) {
keyPressedFlag = false;
robot.keyPress(keys[k]);
! robot.delay(keyDelay);
if (!keyPressedFlag) {
! synchronized (lock) {
try {
! lock.wait(waitDelay);
! } catch (InterruptedException ex) {}
}
}
if (!keyPressedFlag) {
robot.keyRelease(keys[k]);
! robot.delay(keyDelay);
assertTrue(false, "key press event was not received");
}
}
! int modEx = modifiersEx & refMask;
! for (int k = keys.length - 1; k >=0; --k) {
robot.keyRelease(keys[k]);
! robot.delay(keyDelay);
}
!
! assertEQ(modifiersEx, modEx, "invalid extended modifiers");
for (int k = 0; k < keys.length; ++k) {
String keyText = KeyEvent.getKeyText(keys[k]).toLowerCase();
! assertTrue(exText.toLowerCase().contains(keyText), "invalid extended modifier keys description");
}
System.out.println(exText + " : passed");
robot.type(KeyEvent.VK_ESCAPE);
!
! robot.delay(robotDelay);
}
private void doTest() throws Exception {
ArrayList<Component> components = new ArrayList();
--- 120,201 ----
textArea = new TextArea(5, 5);
textArea.addKeyListener(this);
frame.add(textArea);
list = new List();
! for (int i = 1; i <= 5; ++i) {
! list.add("item " + i);
! }
list.addKeyListener(this);
frame.add(list);
listLW = new LWList();
! for (int i = 1; i <= 5; ++i) {
! listLW.add("item " + i);
! }
listLW.addKeyListener(this);
frame.add(listLW);
frame.setBackground(Color.gray);
frame.setSize(500, 100);
frame.setVisible(true);
frame.toFront();
}
public ExtendedModifiersTest() throws Exception {
! LOCK = new Object();
robot = new ExtendedRobot();
! EventQueue.invokeAndWait(this::createGUI);
}
! private void runScenario(int keys[], int expectedMask) {
! if (keys.length < 1) {
! return;
! }
for (int k = 0; k < keys.length; ++k) {
keyPressedFlag = false;
robot.keyPress(keys[k]);
! robot.delay(KEY_DELAY);
if (!keyPressedFlag) {
! synchronized (LOCK) {
try {
! LOCK.wait(WAIT_DELAY);
! } catch (InterruptedException ex) {
! ex.printStackTrace();
! }
}
}
if (!keyPressedFlag) {
robot.keyRelease(keys[k]);
! robot.delay(KEY_DELAY);
assertTrue(false, "key press event was not received");
}
}
! int modEx = modifiersEx & expectedMask;
! for (int k = keys.length - 1; k >= 0; --k) {
robot.keyRelease(keys[k]);
! robot.delay(KEY_DELAY);
}
! assertEQ(expectedMask, modEx, "invalid extended modifiers");
for (int k = 0; k < keys.length; ++k) {
String keyText = KeyEvent.getKeyText(keys[k]).toLowerCase();
! assertTrue(exText.toLowerCase().contains(keyText),
! "invalid extended modifier keys description");
}
System.out.println(exText + " : passed");
robot.type(KeyEvent.VK_ESCAPE);
! robot.waitForIdle();
}
private void doTest() throws Exception {
ArrayList<Component> components = new ArrayList();
*** 199,230 ****
components.add(listLW);
String OS = System.getProperty("os.name").toLowerCase();
System.out.println(OS);
! for (Component c: components) {
String className = c.getClass().getName();
System.out.println("component class : " + className);
Point origin = c.getLocationOnScreen();
int xc = origin.x + c.getWidth() / 2;
int yc = origin.y + c.getHeight() / 2;
Point center = new Point(xc, yc);
! robot.delay(robotDelay);
robot.glide(origin, center);
robot.click();
! robot.delay(robotDelay);
// 1. shift + control
runScenario(new int[]{KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL},
InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK);
// 2. alt + shift + control
! runScenario(new int[]{KeyEvent.VK_ALT, KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL},
! InputEvent.ALT_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK);
// 3. shift
runScenario(new int[]{KeyEvent.VK_SHIFT},
InputEvent.SHIFT_DOWN_MASK);
--- 207,239 ----
components.add(listLW);
String OS = System.getProperty("os.name").toLowerCase();
System.out.println(OS);
! for (Component c : components) {
String className = c.getClass().getName();
System.out.println("component class : " + className);
Point origin = c.getLocationOnScreen();
int xc = origin.x + c.getWidth() / 2;
int yc = origin.y + c.getHeight() / 2;
Point center = new Point(xc, yc);
! robot.waitForIdle();
robot.glide(origin, center);
robot.click();
! robot.waitForIdle();
// 1. shift + control
runScenario(new int[]{KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL},
InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK);
// 2. alt + shift + control
! runScenario(new int[]{KeyEvent.VK_ALT, KeyEvent.VK_SHIFT,
! KeyEvent.VK_CONTROL}, InputEvent.ALT_DOWN_MASK
! | InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK);
// 3. shift
runScenario(new int[]{KeyEvent.VK_SHIFT},
InputEvent.SHIFT_DOWN_MASK);
*** 234,263 ****
// 5. shift + alt
runScenario(new int[]{KeyEvent.VK_SHIFT, KeyEvent.VK_ALT},
InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_DOWN_MASK);
-
if (OS.contains("os x") || OS.contains("sunos")) {
// 6. meta
! runScenario(new int[]{KeyEvent.VK_META}, InputEvent.META_DOWN_MASK);
// 7. shift + ctrl + alt + meta
! runScenario(new int[]{KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_ALT, KeyEvent.VK_META},
! InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_DOWN_MASK | InputEvent.META_DOWN_MASK);
// 8. meta + shift + ctrl
! runScenario(new int[]{KeyEvent.VK_META, KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL},
! InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK);
// 9. meta + shift + alt
! runScenario(new int[]{KeyEvent.VK_META, KeyEvent.VK_SHIFT, KeyEvent.VK_ALT},
! InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_DOWN_MASK);
// 10. meta + ctrl + alt
! runScenario(new int[]{KeyEvent.VK_META, KeyEvent.VK_CONTROL, KeyEvent.VK_ALT},
! InputEvent.META_DOWN_MASK | InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_DOWN_MASK);
}
}
robot.waitForIdle();
frame.dispose();
--- 243,277 ----
// 5. shift + alt
runScenario(new int[]{KeyEvent.VK_SHIFT, KeyEvent.VK_ALT},
InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_DOWN_MASK);
if (OS.contains("os x") || OS.contains("sunos")) {
// 6. meta
! runScenario(new int[]{KeyEvent.VK_META},
! InputEvent.META_DOWN_MASK);
// 7. shift + ctrl + alt + meta
! runScenario(new int[]{KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL,
! KeyEvent.VK_ALT, KeyEvent.VK_META},
! InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK
! | InputEvent.ALT_DOWN_MASK | InputEvent.META_DOWN_MASK);
// 8. meta + shift + ctrl
! runScenario(new int[]{KeyEvent.VK_META, KeyEvent.VK_SHIFT,
! KeyEvent.VK_CONTROL}, InputEvent.META_DOWN_MASK
! | InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK);
// 9. meta + shift + alt
! runScenario(new int[]{KeyEvent.VK_META, KeyEvent.VK_SHIFT,
! KeyEvent.VK_ALT}, InputEvent.META_DOWN_MASK
! | InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_DOWN_MASK);
// 10. meta + ctrl + alt
! runScenario(new int[]{KeyEvent.VK_META, KeyEvent.VK_CONTROL,
! KeyEvent.VK_ALT}, InputEvent.META_DOWN_MASK
! | InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_DOWN_MASK);
}
}
robot.waitForIdle();
frame.dispose();
*** 266,271 ****
public static void main(String[] args) throws Exception {
ExtendedModifiersTest test = new ExtendedModifiersTest();
test.doTest();
}
}
-
--- 280,284 ----
< prev index next >