jdk/test/javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
author yan
Mon, 28 Nov 2016 14:36:46 +0300
changeset 42725 eb5bfee6130a
parent 40703 ce049694fe74
permissions -rw-r--r--
8167284: [TESTBUG] [PIT] possible regression: javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java Reviewed-by: ssadetsky, yan Contributed-by: Maksim Khramov <maksim.khramov@oracle.com>
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     1
/*
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     2
 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     4
 *
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     7
 * published by the Free Software Foundation.
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     8
 *
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    13
 * accompanied this code).
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    14
 *
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    18
 *
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    21
 * questions.
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    22
 */
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    23
40128
e635645d2a8a 8160974: [TESTBUG] Mark more headful tests with @key headful.
goetz
parents: 40127
diff changeset
    24
/* @test
e635645d2a8a 8160974: [TESTBUG] Mark more headful tests with @key headful.
goetz
parents: 40127
diff changeset
    25
 * @key headful
40703
ce049694fe74 8163169: [PIT][TEST_BUG] fix to JDK-8161470 doesn't work
aniyogi
parents: 40128
diff changeset
    26
 * @bug 8129940 8132770 8161470 8163169
40128
e635645d2a8a 8160974: [TESTBUG] Mark more headful tests with @key headful.
goetz
parents: 40127
diff changeset
    27
 * @summary JRadioButton should run custom FocusTraversalKeys for all LaFs
e635645d2a8a 8160974: [TESTBUG] Mark more headful tests with @key headful.
goetz
parents: 40127
diff changeset
    28
 * @run main FocusTraversal
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    29
 */
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    30
import java.awt.BorderLayout;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    31
import java.awt.Component;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    32
import java.awt.KeyboardFocusManager;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    33
import java.awt.Robot;
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    34
import java.awt.event.KeyEvent;
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    35
import java.util.HashSet;
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    36
import java.util.Set;
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    37
import javax.swing.ButtonGroup;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    38
import javax.swing.FocusManager;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    39
import javax.swing.JButton;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    40
import javax.swing.JFrame;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    41
import javax.swing.JPanel;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    42
import javax.swing.JRadioButton;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    43
import javax.swing.JTextField;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    44
import javax.swing.KeyStroke;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    45
import javax.swing.SwingUtilities;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    46
import javax.swing.UIManager;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    47
import javax.swing.UnsupportedLookAndFeelException;
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    48
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    49
public class FocusTraversal {
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    50
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    51
    private static JFrame frame;
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    52
    private static JRadioButton a;
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    53
    private static JRadioButton b;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    54
    private static JRadioButton c;
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    55
    private static JRadioButton d;
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    56
    private static JTextField next;
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    57
    private static JTextField prev;
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    58
    private static Robot robot;
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    59
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    60
    public static void main(String[] args) throws Exception {
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    61
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    62
        robot = new Robot();
40703
ce049694fe74 8163169: [PIT][TEST_BUG] fix to JDK-8161470 doesn't work
aniyogi
parents: 40128
diff changeset
    63
        robot.setAutoDelay(100);
40127
2720cd366dc2 8161470: Failure javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
aniyogi
parents: 34402
diff changeset
    64
        robot.waitForIdle();
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    65
        UIManager.LookAndFeelInfo[] lookAndFeelArray
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    66
                = UIManager.getInstalledLookAndFeels();
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    67
        for (UIManager.LookAndFeelInfo lookAndFeelItem : lookAndFeelArray) {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    68
            executeCase(lookAndFeelItem.getClassName());
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    69
        }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    70
    }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    71
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    72
    private static void executeCase(String lookAndFeelString)
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    73
            throws Exception {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    74
        if (tryLookAndFeel(lookAndFeelString)) {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    75
            createUI(lookAndFeelString);
40127
2720cd366dc2 8161470: Failure javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
aniyogi
parents: 34402
diff changeset
    76
            robot.waitForIdle();
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    77
            runTestCase();
40127
2720cd366dc2 8161470: Failure javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
aniyogi
parents: 34402
diff changeset
    78
            robot.waitForIdle();
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    79
            cleanUp();
40127
2720cd366dc2 8161470: Failure javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
aniyogi
parents: 34402
diff changeset
    80
            robot.waitForIdle();
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    81
        }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    82
    }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    83
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    84
    private static void createUI(final String lookAndFeelString)
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    85
            throws Exception {
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    86
        SwingUtilities.invokeAndWait(new Runnable() {
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    87
            @Override
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    88
            public void run() {
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    89
                Set<KeyStroke> keystrokes = new HashSet<KeyStroke>();
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    90
                keystrokes.add(KeyStroke.getKeyStroke("TAB"));
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    91
                keystrokes.add(KeyStroke.getKeyStroke("ENTER"));
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    92
                frame = new JFrame("FocusTraversalTest " + lookAndFeelString);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    93
                frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    94
                frame.setUndecorated(true);
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    95
                frame.setFocusTraversalKeys(
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    96
                        KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    97
                        keystrokes);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    98
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    99
                a = new JRadioButton("a");
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   100
                b = new JRadioButton("b");
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   101
                c = new JRadioButton("c");
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   102
                d = new JRadioButton("d");
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   103
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   104
                ButtonGroup radioButtonGroup = new ButtonGroup();
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   105
                radioButtonGroup.add(a);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   106
                radioButtonGroup.add(b);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   107
                radioButtonGroup.add(c);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   108
                radioButtonGroup.add(d);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   109
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   110
                JPanel panel = new JPanel();
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   111
                prev = new JTextField("text");
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   112
                panel.add(prev);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   113
                panel.add(a);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   114
                panel.add(b);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   115
                panel.add(c);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   116
                panel.add(d);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   117
                next = new JTextField("text");
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   118
                panel.add(next);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   119
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   120
                JPanel root = new JPanel();
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   121
                root.setLayout(new BorderLayout());
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   122
                root.add(panel, BorderLayout.CENTER);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   123
                root.add(new JButton("OK"), BorderLayout.SOUTH);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   124
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   125
                frame.add(root);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   126
                frame.pack();
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   127
                frame.setLocationRelativeTo(null);
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   128
                frame.setVisible(true);
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   129
                frame.toFront();
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   130
            }
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   131
        });
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   132
    }
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   133
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   134
    private static void runTestCase() throws Exception {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   135
        focusOn(a);
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   136
42725
eb5bfee6130a 8167284: [TESTBUG] [PIT] possible regression: javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
yan
parents: 40703
diff changeset
   137
        robot.keyPress(KeyEvent.VK_ENTER);
eb5bfee6130a 8167284: [TESTBUG] [PIT] possible regression: javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
yan
parents: 40703
diff changeset
   138
        robot.keyRelease(KeyEvent.VK_ENTER);
eb5bfee6130a 8167284: [TESTBUG] [PIT] possible regression: javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
yan
parents: 40703
diff changeset
   139
        robot.waitForIdle();
eb5bfee6130a 8167284: [TESTBUG] [PIT] possible regression: javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
yan
parents: 40703
diff changeset
   140
        isFocusOwner(next, "forward");
eb5bfee6130a 8167284: [TESTBUG] [PIT] possible regression: javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
yan
parents: 40703
diff changeset
   141
        robot.keyPress(KeyEvent.VK_SHIFT);
eb5bfee6130a 8167284: [TESTBUG] [PIT] possible regression: javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
yan
parents: 40703
diff changeset
   142
        robot.keyPress(KeyEvent.VK_TAB);
eb5bfee6130a 8167284: [TESTBUG] [PIT] possible regression: javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
yan
parents: 40703
diff changeset
   143
        robot.keyRelease(KeyEvent.VK_TAB);
eb5bfee6130a 8167284: [TESTBUG] [PIT] possible regression: javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
yan
parents: 40703
diff changeset
   144
        robot.keyRelease(KeyEvent.VK_SHIFT);
eb5bfee6130a 8167284: [TESTBUG] [PIT] possible regression: javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
yan
parents: 40703
diff changeset
   145
        robot.waitForIdle();
eb5bfee6130a 8167284: [TESTBUG] [PIT] possible regression: javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
yan
parents: 40703
diff changeset
   146
        isFocusOwner(a, "backward");
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   147
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   148
    }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   149
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   150
    private static void focusOn(Component component)
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   151
            throws Exception {
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   152
        SwingUtilities.invokeAndWait(new Runnable() {
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   153
            @Override
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   154
            public void run() {
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   155
                component.requestFocusInWindow();
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   156
            }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   157
        });
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   158
    }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   159
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   160
    private static void isFocusOwner(Component queriedFocusOwner,
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   161
            String direction)
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   162
            throws Exception {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   163
        SwingUtilities.invokeAndWait(new Runnable() {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   164
            @Override
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   165
            public void run() {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   166
                Component actualFocusOwner
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   167
                        = FocusManager.getCurrentManager().getFocusOwner();
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   168
                if (actualFocusOwner != queriedFocusOwner) {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   169
                    frame.dispose();
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   170
                    throw new RuntimeException(
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   171
                            "Focus component is wrong after " + direction
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   172
                            + " direction ");
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   173
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   174
                }
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   175
            }
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   176
        });
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   177
    }
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   178
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   179
    private static boolean tryLookAndFeel(String lookAndFeelString)
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   180
            throws Exception {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   181
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   182
        try {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   183
            UIManager.setLookAndFeel(
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   184
                    lookAndFeelString);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   185
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   186
        } catch (UnsupportedLookAndFeelException
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   187
                | ClassNotFoundException
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   188
                | InstantiationException
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   189
                | IllegalAccessException e) {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   190
            return false;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   191
        }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   192
        return true;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   193
    }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   194
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   195
    private static void cleanUp() throws Exception {
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   196
        SwingUtilities.invokeAndWait(new Runnable() {
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   197
            @Override
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   198
            public void run() {
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   199
                frame.dispose();
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   200
            }
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   201
        });
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   202
    }
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   203
}