# HG changeset patch # User sveerabhadra # Date 1542261313 -19800 # Node ID 9d2c9970c95060d92f03678146e067c09bdb344c # Parent 85fb403c0141b64a35993cee72285d2ea9eea144 6849922: java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html fails Reviewed-by: kaddepalli, serb diff -r 85fb403c0141 -r 9d2c9970c950 test/jdk/ProblemList.txt --- a/test/jdk/ProblemList.txt Wed Nov 14 20:47:57 2018 -0800 +++ b/test/jdk/ProblemList.txt Thu Nov 15 11:25:13 2018 +0530 @@ -251,7 +251,6 @@ java/awt/print/PrinterJob/PSQuestionMark.java 7003378 generic-all java/awt/print/PrinterJob/GlyphPositions.java 7003378 generic-all java/awt/Choice/PopupPosTest/PopupPosTest.html 8192930 windows-all -java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html 6849922 macosx-all java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java 7100044 macosx-all,linux-all java/awt/Component/CreateImage/CreateImage.java 8198334 windows-all java/awt/Component/GetScreenLocTest/GetScreenLocTest.java 4753654 generic-all diff -r 85fb403c0141 -r 9d2c9970c950 test/jdk/java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html --- a/test/jdk/java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html Wed Nov 14 20:47:57 2018 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ - - - - - - - - - -

ChoiceKeyEventReaction
Bug ID: 6252982

- -

This is an AUTOMATIC test, simply wait for completion

- - - - - diff -r 85fb403c0141 -r 9d2c9970c950 test/jdk/java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.java --- a/test/jdk/java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.java Wed Nov 14 20:47:57 2018 -0800 +++ b/test/jdk/java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.java Thu Nov 15 11:25:13 2018 +0530 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,121 +22,126 @@ */ /* - test - @bug 6252982 - @summary PIT: Keyboard FocusTraversal not working when choice's drop-down is visible, on XToolkit - @author andrei.dmitriev : area=awt.choice - @run applet ChoiceKeyEventReaction.html -*/ + * @test + * @bug 6252982 + * @key headful + * @summary PIT: Keyboard FocusTraversal not working when choice's drop-down is visible, on XToolkit + * @author andrei.dmitriev : area=awt.choice + * @run main ChoiceKeyEventReaction + */ -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import test.java.awt.regtesthelpers.Util; +import java.awt.Robot; +import java.awt.Choice; +import java.awt.Point; +import java.awt.Toolkit; +import java.awt.TextField; +import java.awt.FlowLayout; +import java.awt.event.InputEvent; +import java.awt.event.KeyEvent; +import java.awt.event.ItemEvent; +import java.awt.event.KeyAdapter; +import java.awt.event.ItemListener; +import java.awt.Frame; -public class ChoiceKeyEventReaction extends Applet +public class ChoiceKeyEventReaction { - Robot robot; - Choice choice1 = new Choice(); - Point pt; - TextField tf = new TextField("Hi"); + private static Robot robot; + private static Choice choice1 = new Choice(); + private static Point pt; + private static TextField tf = new TextField("Hi"); + private static boolean keyTypedOnTextField = false; + private static boolean itemChanged = false; + private static Frame frame; + private static String toolkit; - boolean keyTypedOnTextField = false; - boolean itemChanged = false; - String toolkit; + public static void main(String[] args) { + createAndShowGUI(); - public void init() - { + try { + robot = new Robot(); + robot.setAutoDelay(100); + + moveFocusToTextField(); + testKeyOnChoice(InputEvent.BUTTON1_MASK, KeyEvent.VK_UP); + } catch (Exception e) { + throw new RuntimeException("Test failed. Exception thrown: "+e); + } finally { + if (frame != null) { + frame.dispose(); + } + } + } + + private static void createAndShowGUI() { + frame = new Frame(); toolkit = Toolkit.getDefaultToolkit().getClass().getName(); System.out.println("Current toolkit is :" +toolkit); for (int i = 1; i<20; i++){ choice1.add("item-0"+i); } + tf.addKeyListener(new KeyAdapter(){ - public void keyPressed(KeyEvent ke) { - keyTypedOnTextField = true; - System.out.println(ke); - } - }); - + public void keyPressed(KeyEvent ke) { + keyTypedOnTextField = true; + System.out.println(ke); + } + }); choice1.addItemListener(new ItemListener() { - public void itemStateChanged(ItemEvent e) { - itemChanged = true; - System.out.println(e); - } - }); + public void itemStateChanged(ItemEvent e) { + itemChanged = true; + System.out.println(e); + } + }); + choice1.setFocusable(false); - choice1.setFocusable(false); - add(tf); - add(choice1); - setLayout (new FlowLayout()); - }//End init() + frame.add(tf); + frame.add(choice1); + frame.setLayout (new FlowLayout()); + frame.setSize (200,200); + frame.setVisible(true); + } - public void start () - { - setSize (200,200); - setVisible(true); - validate(); - try{ - robot = new Robot(); - Util.waitForIdle(robot); - moveFocusToTextField(); - testKeyOnChoice(InputEvent.BUTTON1_MASK, KeyEvent.VK_UP); - } catch (Throwable e) { - throw new RuntimeException("Test failed. Exception thrown: "+e); - } - }// start() - - public void testKeyOnChoice(int button, int key){ + private static void testKeyOnChoice(int button, int key) { pt = choice1.getLocationOnScreen(); robot.mouseMove(pt.x + choice1.getWidth()/2, pt.y + choice1.getHeight()/2); - Util.waitForIdle(robot); + robot.mousePress(button); - robot.delay(10); robot.mouseRelease(button); - Util.waitForIdle(robot); robot.keyPress(key); robot.keyRelease(key); - Util.waitForIdle(robot); - System.out.println("keyTypedOnTextField = "+keyTypedOnTextField +": itemChanged = " + itemChanged); - - if (itemChanged){ - throw new RuntimeException("Test failed. ItemChanged event occur on Choice."); + if (itemChanged) { + throw new RuntimeException("Test failed. ItemChanged event occur on Choice."); } - // We may just write - // if (toolkit.equals("sun.awt.windows.WToolkit") == keyTypedOnTextField) {fail;} - // but must report differently in these cases so put two separate if statements for simplicity. - if (toolkit.equals("sun.awt.windows.WToolkit") && - !keyTypedOnTextField) - { - throw new RuntimeException("Test failed. (Win32) KeyEvent wasn't addressed to TextField. "); - } + // We may just write + // if (toolkit.equals("sun.awt.windows.WToolkit") == keyTypedOnTextField) {fail;} + // but must report differently in these cases so put two separate if statements for simplicity. + if (toolkit.equals("sun.awt.windows.WToolkit") && + !keyTypedOnTextField) { + throw new RuntimeException("Test failed. (Win32) KeyEvent wasn't addressed to TextField. "); + } - if (!toolkit.equals("sun.awt.windows.WToolkit") && - keyTypedOnTextField) - { - throw new RuntimeException("Test failed. (XToolkit/MToolkit). KeyEvent was addressed to TextField."); + if (!toolkit.equals("sun.awt.windows.WToolkit") && + keyTypedOnTextField) { + throw new RuntimeException("Test failed. (XToolkit/MToolkit). KeyEvent was addressed to TextField."); } System.out.println("Test passed. Unfocusable Choice doesn't react on keys."); + //close opened choice robot.keyPress(KeyEvent.VK_ESCAPE); robot.keyRelease(KeyEvent.VK_ESCAPE); - Util.waitForIdle(robot); } - public void moveFocusToTextField(){ + public static void moveFocusToTextField() { pt = tf.getLocationOnScreen(); robot.mouseMove(pt.x + tf.getWidth()/2, pt.y + tf.getHeight()/2); - Util.waitForIdle(robot); + robot.mousePress(InputEvent.BUTTON1_MASK); - robot.delay(10); robot.mouseRelease(InputEvent.BUTTON1_MASK); - Util.waitForIdle(robot); } -}//:~ +}