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