bug8002077.java revision 11111:4ef86895869c
1214518Srpaulo/*
2190214Srpaulo * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
3190214Srpaulo * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4190214Srpaulo *
5190214Srpaulo * This code is free software; you can redistribute it and/or modify it
6190214Srpaulo * under the terms of the GNU General Public License version 2 only, as
7190214Srpaulo * published by the Free Software Foundation.
8190214Srpaulo *
9190214Srpaulo * This code is distributed in the hope that it will be useful, but WITHOUT
10190214Srpaulo * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11190214Srpaulo * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12190214Srpaulo * version 2 for more details (a copy is included in the LICENSE file that
13190214Srpaulo * accompanied this code).
14190214Srpaulo *
15190214Srpaulo * You should have received a copy of the GNU General Public License version
16190214Srpaulo * 2 along with this work; if not, write to the Free Software Foundation,
17190214Srpaulo * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18190214Srpaulo *
19190214Srpaulo * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20190214Srpaulo * or visit www.oracle.com if you need additional information or have any
21190214Srpaulo * questions.
22190214Srpaulo */
23190214Srpaulo
24190214Srpauloimport java.awt.Robot;
25190214Srpauloimport java.awt.Toolkit;
26190214Srpauloimport java.awt.event.KeyEvent;
27190214Srpauloimport javax.swing.JFileChooser;
28190214Srpauloimport javax.swing.SwingUtilities;
29190214Srpauloimport javax.swing.UIManager;
30190214Srpauloimport javax.swing.UIManager.LookAndFeelInfo;
31190214Srpaulo
32190214Srpaulo/**
33190214Srpaulo * @test
34190214Srpaulo * @bug 8002077
35190214Srpaulo * @author Alexander Scherbatiy
36190214Srpaulo * @summary Possible mnemonic issue on JFileChooser Save button on nimbus L&F
37190214Srpaulo * @library ../../regtesthelpers/
38190214Srpaulo * @build Util
39190214Srpaulo * @run main bug8002077
40190214Srpaulo */
41190214Srpaulopublic class bug8002077 {
42190214Srpaulo
43190214Srpaulo    private static volatile int fileChooserState = JFileChooser.ERROR_OPTION;
44190214Srpaulo
45190214Srpaulo    public static void main(String[] args) throws Exception {
46190214Srpaulo        for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
47190214Srpaulo            if ("Nimbus".equals(info.getName())) {
48190214Srpaulo                UIManager.setLookAndFeel(info.getClassName());
49190214Srpaulo                runTest();
50190214Srpaulo                break;
51190214Srpaulo            }
52190214Srpaulo        }
53190214Srpaulo    }
54190214Srpaulo
55190214Srpaulo    private static void runTest() throws Exception {
56190214Srpaulo        Robot robot = new Robot();
57190214Srpaulo        robot.setAutoDelay(50);
58190214Srpaulo
59235426Sdelphij        SwingUtilities.invokeLater(new Runnable() {
60235426Sdelphij            public void run() {
61235426Sdelphij                fileChooserState = new JFileChooser().showSaveDialog(null);
62235426Sdelphij            }
63235426Sdelphij        });
64235426Sdelphij        robot.waitForIdle();
65235426Sdelphij
66235426Sdelphij        Util.hitMnemonics(robot, KeyEvent.VK_N);
67235426Sdelphij        robot.waitForIdle();
68235426Sdelphij
69190214Srpaulo        robot.keyPress(KeyEvent.VK_A);
70190214Srpaulo        robot.keyRelease(KeyEvent.VK_A);
71190214Srpaulo        robot.waitForIdle();
72190214Srpaulo
73190214Srpaulo        Util.hitMnemonics(robot, KeyEvent.VK_S);
74190214Srpaulo        robot.waitForIdle();
75235426Sdelphij
76190214Srpaulo        if (fileChooserState != JFileChooser.APPROVE_OPTION) {
77190214Srpaulo            throw new RuntimeException("Save button is not pressed!");
78190214Srpaulo        }
79235426Sdelphij    }
80235426Sdelphij}
81235426Sdelphij