8340719: Open source AWT List tests
Reviewed-by: prr
This commit is contained in:
parent
a32c3b43aa
commit
b11066b56b
@ -797,3 +797,4 @@ java/awt/Frame/SizeMinimizedTest.java 8305915 linux-x64
|
|||||||
java/awt/PopupMenu/PopupHangTest.java 8340022 windows-all
|
java/awt/PopupMenu/PopupHangTest.java 8340022 windows-all
|
||||||
java/awt/Focus/MinimizeNonfocusableWindowTest.java 8024487 windows-all
|
java/awt/Focus/MinimizeNonfocusableWindowTest.java 8024487 windows-all
|
||||||
java/awt/Focus/InactiveFocusRace.java 8023263 linux-all
|
java/awt/Focus/InactiveFocusRace.java 8023263 linux-all
|
||||||
|
java/awt/List/HandlingKeyEventIfMousePressedTest.java 6848358 macosx-all,windows-all
|
||||||
|
167
test/jdk/java/awt/List/HandlingKeyEventIfMousePressedTest.java
Normal file
167
test/jdk/java/awt/List/HandlingKeyEventIfMousePressedTest.java
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2005, 2024, 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
|
||||||
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License version
|
||||||
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*
|
||||||
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
|
* questions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @test
|
||||||
|
* @bug 6293432
|
||||||
|
* @summary Key events ('SPACE', 'UP', 'DOWN') aren't blocked
|
||||||
|
* if mouse is kept in 'PRESSED' state for List
|
||||||
|
* @key headful
|
||||||
|
* @run main HandlingKeyEventIfMousePressedTest
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.awt.EventQueue;
|
||||||
|
import java.awt.FlowLayout;
|
||||||
|
import java.awt.Frame;
|
||||||
|
import java.awt.List;
|
||||||
|
import java.awt.Point;
|
||||||
|
import java.awt.Robot;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.awt.event.FocusAdapter;
|
||||||
|
import java.awt.event.FocusEvent;
|
||||||
|
import java.awt.event.InputEvent;
|
||||||
|
import java.awt.event.ItemEvent;
|
||||||
|
import java.awt.event.ItemListener;
|
||||||
|
import java.awt.event.KeyEvent;
|
||||||
|
import java.awt.event.MouseAdapter;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
|
import java.awt.event.MouseMotionAdapter;
|
||||||
|
|
||||||
|
public class HandlingKeyEventIfMousePressedTest {
|
||||||
|
|
||||||
|
static Frame frame;
|
||||||
|
static List list;
|
||||||
|
static volatile Point loc;
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
Robot robot = new Robot();
|
||||||
|
robot.setAutoDelay(100);
|
||||||
|
try {
|
||||||
|
EventQueue.invokeAndWait(() -> createUI());
|
||||||
|
robot.waitForIdle();
|
||||||
|
robot.delay(1000);
|
||||||
|
EventQueue.invokeAndWait(() -> {
|
||||||
|
loc = list.getLocationOnScreen();
|
||||||
|
});
|
||||||
|
robot.mouseMove(loc.x + 10, loc.y + 10);
|
||||||
|
robot.waitForIdle();
|
||||||
|
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
|
||||||
|
|
||||||
|
// key pressing when the mouse is kept in the 'pressed' state
|
||||||
|
robot.keyPress(KeyEvent.VK_DOWN);
|
||||||
|
robot.keyRelease(KeyEvent.VK_DOWN);
|
||||||
|
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
|
||||||
|
robot.waitForIdle();
|
||||||
|
|
||||||
|
int selectedIndex = list.getSelectedIndex();
|
||||||
|
if (selectedIndex != 0) {
|
||||||
|
throw new RuntimeException("Test failed: list.getCurrentItem = " + selectedIndex);
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
EventQueue.invokeAndWait(() -> {
|
||||||
|
if (frame != null) {
|
||||||
|
frame.dispose();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void createUI() {
|
||||||
|
frame = new Frame("HandlingKeyEventIfMousePressedTest");
|
||||||
|
list = new List(10, false);
|
||||||
|
|
||||||
|
list.add("111");
|
||||||
|
list.add("222");
|
||||||
|
list.add("333");
|
||||||
|
list.add("444");
|
||||||
|
frame.add(list);
|
||||||
|
|
||||||
|
addListeners();
|
||||||
|
|
||||||
|
frame.setLayout(new FlowLayout());
|
||||||
|
frame.pack();
|
||||||
|
frame.setLocationRelativeTo(null);
|
||||||
|
frame.setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// added in order to have more information in failed case
|
||||||
|
private static void addListeners() {
|
||||||
|
|
||||||
|
list.addMouseMotionListener(
|
||||||
|
new MouseMotionAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mouseDragged(MouseEvent me) {
|
||||||
|
System.out.println(me);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseMoved(MouseEvent me) {
|
||||||
|
System.out.println(me);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
list.addMouseListener(
|
||||||
|
new MouseAdapter(){
|
||||||
|
public void mousePressed(MouseEvent me) {
|
||||||
|
System.out.println(me);
|
||||||
|
}
|
||||||
|
public void mouseClicked(MouseEvent me) {
|
||||||
|
System.out.println(me);
|
||||||
|
}
|
||||||
|
public void mouseEntered(MouseEvent me) {
|
||||||
|
System.out.println(me);
|
||||||
|
}
|
||||||
|
public void mouseExited(MouseEvent me) {
|
||||||
|
System.out.println(me);
|
||||||
|
}
|
||||||
|
public void mouseReleased(MouseEvent me) {
|
||||||
|
System.out.println(me);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
list.addActionListener(
|
||||||
|
new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent ae) {
|
||||||
|
System.out.println(ae);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
list.addItemListener(
|
||||||
|
new ItemListener() {
|
||||||
|
public void itemStateChanged(ItemEvent ie) {
|
||||||
|
System.out.println(ie);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
list.addFocusListener(
|
||||||
|
new FocusAdapter() {
|
||||||
|
public void focusGained(FocusEvent fe) {
|
||||||
|
System.out.println(fe);
|
||||||
|
}
|
||||||
|
public void focusLost(FocusEvent fe) {
|
||||||
|
System.out.println(fe);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
93
test/jdk/java/awt/List/ListActionEventTest.java
Normal file
93
test/jdk/java/awt/List/ListActionEventTest.java
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2002, 2024, 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
|
||||||
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License version
|
||||||
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*
|
||||||
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
|
* questions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @test
|
||||||
|
* @bug 4089604
|
||||||
|
* @summary Enter key doesn't fire List actionPerformed as specified
|
||||||
|
* @library /java/awt/regtesthelpers
|
||||||
|
* @build PassFailJFrame
|
||||||
|
* @run main/manual ListActionEventTest
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.awt.BorderLayout;
|
||||||
|
import java.awt.Frame;
|
||||||
|
import java.awt.List;
|
||||||
|
import java.awt.Panel;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.awt.event.ItemEvent;
|
||||||
|
import java.awt.event.ItemListener;
|
||||||
|
|
||||||
|
public class ListActionEventTest {
|
||||||
|
|
||||||
|
private static final String INSTRUCTIONS = """
|
||||||
|
A frame will be shown.
|
||||||
|
1. Click any item in the list (say item 1) in the frame
|
||||||
|
2. A message 'ItemSelected' is displayed on the message window.
|
||||||
|
3. Press the return key on the selected item.
|
||||||
|
4. If the text 'ActionPerformed' is displayed on the message window,
|
||||||
|
then press PASS else press FAIL.""";
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
PassFailJFrame.builder()
|
||||||
|
.title("ListActionEventTest Instructions")
|
||||||
|
.instructions(INSTRUCTIONS)
|
||||||
|
.rows((int) INSTRUCTIONS.lines().count() + 2)
|
||||||
|
.columns(35)
|
||||||
|
.testUI(ListActionEventTest::createTestUI)
|
||||||
|
.logArea()
|
||||||
|
.build()
|
||||||
|
.awaitAndCheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Frame createTestUI() {
|
||||||
|
Frame frame = new Frame("ListActionEventTest frame");
|
||||||
|
|
||||||
|
Panel pnl1 = new Panel();
|
||||||
|
frame.add(pnl1);
|
||||||
|
pnl1.setLayout(new BorderLayout());
|
||||||
|
|
||||||
|
List list = new List();
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
list.addItem("Item " + i);
|
||||||
|
}
|
||||||
|
pnl1.add(list);
|
||||||
|
|
||||||
|
list.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent ev) {
|
||||||
|
PassFailJFrame.log("ActionPerformed");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
list.addItemListener(new ItemListener() {
|
||||||
|
@Override
|
||||||
|
public void itemStateChanged(ItemEvent ev) {
|
||||||
|
PassFailJFrame.log("ItemSelected");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
frame.pack();
|
||||||
|
return frame;
|
||||||
|
}
|
||||||
|
}
|
80
test/jdk/java/awt/List/MultiSelectionListHorizScrollbar.java
Normal file
80
test/jdk/java/awt/List/MultiSelectionListHorizScrollbar.java
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 1999, 2024, 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
|
||||||
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License version
|
||||||
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*
|
||||||
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
|
* questions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @test
|
||||||
|
* @bug 4102881
|
||||||
|
* @summary Ensure multiple selection Lists have horizontal scrollbars when necessary
|
||||||
|
* @library /java/awt/regtesthelpers
|
||||||
|
* @build PassFailJFrame
|
||||||
|
* @run main/manual MultiSelectionListHorizScrollbar
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.awt.Frame;
|
||||||
|
import java.awt.GridLayout;
|
||||||
|
import java.awt.List;
|
||||||
|
|
||||||
|
public class MultiSelectionListHorizScrollbar {
|
||||||
|
|
||||||
|
private static final String INSTRUCTIONS = """
|
||||||
|
Resize the frame so that the lists are not wide enough
|
||||||
|
to fully display the lines of text they contain.
|
||||||
|
Once the lists are in this state, press pass
|
||||||
|
if both lists display an horizontal scrollbar. Otherwise press fail.""";
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
PassFailJFrame.builder()
|
||||||
|
.title("MultiSelectionListHorizScrollbar Instructions")
|
||||||
|
.instructions(INSTRUCTIONS)
|
||||||
|
.rows((int) INSTRUCTIONS.lines().count() + 2)
|
||||||
|
.columns(35)
|
||||||
|
.testUI(MultiSelectionListHorizScrollbar::createTestUI)
|
||||||
|
.build()
|
||||||
|
.awaitAndCheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Frame createTestUI() {
|
||||||
|
Frame frame = new Frame("MultiSelectionListHorizScrollbar Frame");
|
||||||
|
List singleList = new List(3);
|
||||||
|
List multiList = new List(3, true);
|
||||||
|
|
||||||
|
frame.setLayout(new GridLayout(1, 2));
|
||||||
|
frame.add(singleList);
|
||||||
|
frame.add(multiList);
|
||||||
|
|
||||||
|
singleList.addItem("This is the 1st item in the list! Does it scroll horizontally??");
|
||||||
|
singleList.addItem("This is the 2nd item in the list! Does it scroll horizontally??");
|
||||||
|
singleList.addItem("This is the 4th item in the list! Does it scroll horizontally??");
|
||||||
|
singleList.addItem("This is the 5th item in the list! Does it scroll horizontally??");
|
||||||
|
singleList.addItem("This is the 6th item in the list! Does it scroll horizontally??");
|
||||||
|
|
||||||
|
multiList.addItem("This is the 1st item in the list! Does it scroll horizontally??");
|
||||||
|
multiList.addItem("This is the 2nd item in the list! Does it scroll horizontally??");
|
||||||
|
multiList.addItem("This is the 4th item in the list! Does it scroll horizontally??");
|
||||||
|
multiList.addItem("This is the 5th item in the list! Does it scroll horizontally??");
|
||||||
|
multiList.addItem("This is the 6th item in the list! Does it scroll horizontally??");
|
||||||
|
|
||||||
|
frame.pack();
|
||||||
|
return frame;
|
||||||
|
}
|
||||||
|
}
|
73
test/jdk/java/awt/List/RepaintAfterResize.java
Normal file
73
test/jdk/java/awt/List/RepaintAfterResize.java
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2005, 2024, 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
|
||||||
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License version
|
||||||
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*
|
||||||
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
|
* questions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @test
|
||||||
|
* @bug 6308295
|
||||||
|
* @summary XAWTduplicate list item is displayed
|
||||||
|
* @library /java/awt/regtesthelpers
|
||||||
|
* @build PassFailJFrame
|
||||||
|
* @run main/manual RepaintAfterResize
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.awt.FlowLayout;
|
||||||
|
import java.awt.Frame;
|
||||||
|
import java.awt.List;
|
||||||
|
|
||||||
|
public class RepaintAfterResize {
|
||||||
|
|
||||||
|
private static final String INSTRUCTIONS = """
|
||||||
|
1) A Frame appears with a list
|
||||||
|
2) Resize somehow the frame using mouse
|
||||||
|
3) Move down the vertical scrollbar of the list
|
||||||
|
4) If you see that two selected items are displayed then the test failed.
|
||||||
|
Otherwise, the test passed.""";
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
PassFailJFrame.builder()
|
||||||
|
.title("RepaintAfterResize Instructions")
|
||||||
|
.instructions(INSTRUCTIONS)
|
||||||
|
.rows((int) INSTRUCTIONS.lines().count() + 2)
|
||||||
|
.columns(35)
|
||||||
|
.testUI(RepaintAfterResize::createTestUI)
|
||||||
|
.build()
|
||||||
|
.awaitAndCheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Frame createTestUI() {
|
||||||
|
Frame frame = new Frame("RepaintAfterResize Frame");
|
||||||
|
List list = new List(4, false);
|
||||||
|
|
||||||
|
frame.setLayout (new FlowLayout ());
|
||||||
|
list.setBounds(100, 100, 100, 100);
|
||||||
|
for (int i = 0 ; i < 7 ; i++) {
|
||||||
|
list.add(" " + i);
|
||||||
|
}
|
||||||
|
frame.add(list);
|
||||||
|
list.select(3);
|
||||||
|
|
||||||
|
frame.setSize(100, 100);
|
||||||
|
return frame;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user