8328484: Convert and Opensource few JFileChooser applet test to main
Reviewed-by: psadhukhan, tr
This commit is contained in:
parent
d379afbc11
commit
528efe206d
88
test/jdk/javax/swing/JFileChooser/EnterEmptyDirectory.java
Normal file
88
test/jdk/javax/swing/JFileChooser/EnterEmptyDirectory.java
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2003, 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.awt.BorderLayout;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import javax.swing.JButton;
|
||||||
|
import javax.swing.JFileChooser;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @test
|
||||||
|
* @bug 4913368
|
||||||
|
* @requires (os.family == "linux")
|
||||||
|
* @summary Test repainting when entering an empty directory w/ GTK LAF
|
||||||
|
* @library /java/awt/regtesthelpers
|
||||||
|
* @build PassFailJFrame
|
||||||
|
* @run main/manual EnterEmptyDirectory
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class EnterEmptyDirectory {
|
||||||
|
|
||||||
|
private static final String INSTRUCTIONS = """
|
||||||
|
This test is only for the GTK Look & Feel.
|
||||||
|
|
||||||
|
Step 1:
|
||||||
|
Find or create an empty directory. This directory should
|
||||||
|
be in a directory with other files and directories, such that
|
||||||
|
there are items in both the Folders and Files lists of the
|
||||||
|
JFileChooser.
|
||||||
|
|
||||||
|
Step 2:
|
||||||
|
Click the "Show JFileChooser" button and enter the empty directory.
|
||||||
|
If both lists are correctly repainted such that they are both empty
|
||||||
|
(except for the ./ and ../) then the test passes.
|
||||||
|
|
||||||
|
If the contents of the Folders or Files lists are unchanged, test FAILS. """;
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
|
||||||
|
PassFailJFrame.builder()
|
||||||
|
.title("JFileChooser Instructions")
|
||||||
|
.instructions(INSTRUCTIONS)
|
||||||
|
.rows(15)
|
||||||
|
.columns(40)
|
||||||
|
.splitUI(EnterEmptyDirectory::createAndShowUI)
|
||||||
|
.build()
|
||||||
|
.awaitAndCheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JPanel createAndShowUI() {
|
||||||
|
JButton button = new JButton("Show JFileChooser");
|
||||||
|
button.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
JFileChooser jfc = new JFileChooser();
|
||||||
|
jfc.setMultiSelectionEnabled(true);
|
||||||
|
jfc.showOpenDialog(null);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
JPanel p = new JPanel();
|
||||||
|
p.setLayout(new BorderLayout());
|
||||||
|
p.setSize(200, 200);
|
||||||
|
p.add(button);
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
}
|
145
test/jdk/javax/swing/JFileChooser/FileSelectionTests.java
Normal file
145
test/jdk/javax/swing/JFileChooser/FileSelectionTests.java
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2003, 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.awt.BorderLayout;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import javax.swing.JButton;
|
||||||
|
import javax.swing.JFileChooser;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @test
|
||||||
|
* @bug 4835633
|
||||||
|
* @requires (os.family == "windows")
|
||||||
|
* @summary Test various file selection scenarios
|
||||||
|
* @library /java/awt/regtesthelpers
|
||||||
|
* @build PassFailJFrame
|
||||||
|
* @run main/manual FileSelectionTests
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class FileSelectionTests {
|
||||||
|
private static final String INSTRUCTIONS = """
|
||||||
|
This test is only for the Windows Look & Feel.
|
||||||
|
This is a test of file selection/deselection using the mouse.
|
||||||
|
There are quite a few steps. If any step doesn't behave as
|
||||||
|
expected, press Fail else press Pass.
|
||||||
|
|
||||||
|
Make sure that you are in a directory with at least a few files.
|
||||||
|
Note that if you don't wait long enough between mouse buttons presses
|
||||||
|
that the action will be interpreted as a double-click and will dismiss
|
||||||
|
the dialog. Just re-show the dialog in this case.
|
||||||
|
|
||||||
|
Press "Show Windows JFileChooser" button to show the JFileChooser.
|
||||||
|
|
||||||
|
TEST 1:
|
||||||
|
Click on a filename. The file should become selected.
|
||||||
|
TEST 2:
|
||||||
|
Clear any selection. Click to right of a filename,
|
||||||
|
in the space between the filename and the file's icon in the next column.
|
||||||
|
The file should NOT be selected. If it becomes selected, press Fail.
|
||||||
|
TEST 3:
|
||||||
|
Select a filename. As in TEST 2, click in the empty space to the right of
|
||||||
|
the filename. The file should be deselected.
|
||||||
|
TEST 4:
|
||||||
|
Clear any selection. If necessary, resize the file dialog and/or change to
|
||||||
|
a directory with only a couple files, so that there is some space between
|
||||||
|
the list of files and the bottom of the file pane.
|
||||||
|
Click below the file list, in the empty space between the last file and
|
||||||
|
bottom of the file pane. The last file in the column above the cursor
|
||||||
|
should NOT become selected. If any file becomes selected, press Fail.
|
||||||
|
TEST 5:
|
||||||
|
Select a file. As in TEST 4, click in the empty space below the file list.
|
||||||
|
The selected file should become deselected.
|
||||||
|
TEST 6:
|
||||||
|
Clear any selection. As in TEST 4, click below the file list.
|
||||||
|
Then click on the last filename in the list. It should NOT go into edit mode.
|
||||||
|
TEST 7:
|
||||||
|
Clear any selection. Double-click below file list. The dialog should not be
|
||||||
|
dismissed, and no exception should be thrown.
|
||||||
|
TEST 8:
|
||||||
|
Clear any selection. As in TEST 2, press the mouse button in the empty space
|
||||||
|
to the right of a filename, but this time drag the mouse onto the filename.
|
||||||
|
The file should NOT become selected.
|
||||||
|
TEST 9:
|
||||||
|
Clear any selection. As in TEST 4, press the mouse button in the empty space
|
||||||
|
below the file list, but this time drag onto the last filename in the column.
|
||||||
|
The file should NOT become selected.
|
||||||
|
TEST 10:
|
||||||
|
Click on a filename, and then click again to go into rename mode.
|
||||||
|
Modify the filename, and then click to the right of the edit box.
|
||||||
|
The filename should be the new filename.
|
||||||
|
TEST 11:
|
||||||
|
As in TEST 10, rename a file, but this time end the editing by clicking below
|
||||||
|
the file list. Again, the file should retain the new name.
|
||||||
|
TEST 12:
|
||||||
|
Use shift-click to select several files. Hold "shift down" and click in
|
||||||
|
(1) the empty space to the right of a file name and
|
||||||
|
(2) in the empty space below the list of files.
|
||||||
|
The files should remain selected. If the selection is cleared press Fail.
|
||||||
|
TEST 13:
|
||||||
|
Switch to Details view. Repeat TESTS 1-11.
|
||||||
|
TEST 14:
|
||||||
|
Details view. Clear any selection. Click in the Size column.
|
||||||
|
No file should become selected.
|
||||||
|
TEST 15:
|
||||||
|
Details view. Select a file. Click in the Size column.
|
||||||
|
The file should be deselected.
|
||||||
|
TEST 16:
|
||||||
|
Details view. Shift-click to select several files. Shift-click in
|
||||||
|
(1) the empty space to the right of a filename
|
||||||
|
(2) in the Size column and
|
||||||
|
(3) below the list of files.
|
||||||
|
The files should remain selected. If the selection is cleared, press Fail. """;
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
|
||||||
|
PassFailJFrame.builder()
|
||||||
|
.title("JFileChooser Instructions")
|
||||||
|
.instructions(INSTRUCTIONS)
|
||||||
|
.rows(25)
|
||||||
|
.columns(50)
|
||||||
|
.testTimeOut(10)
|
||||||
|
.splitUI(FileSelectionTests::createAndShowUI)
|
||||||
|
.build()
|
||||||
|
.awaitAndCheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JPanel createAndShowUI() {
|
||||||
|
JButton button = new JButton("Show Windows JFileChooser");
|
||||||
|
button.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
JFileChooser jfc = new JFileChooser();
|
||||||
|
jfc.setMultiSelectionEnabled(true);
|
||||||
|
jfc.showOpenDialog(null);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
JPanel p = new JPanel();
|
||||||
|
p.setLayout(new BorderLayout());
|
||||||
|
p.setSize(200, 200);
|
||||||
|
p.add(button);
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
}
|
209
test/jdk/javax/swing/JFileChooser/ShowHiddenFiles.java
Normal file
209
test/jdk/javax/swing/JFileChooser/ShowHiddenFiles.java
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2003, 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.awt.BorderLayout;
|
||||||
|
import java.awt.GridLayout;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.beans.PropertyChangeListener;
|
||||||
|
import java.beans.PropertyChangeEvent;
|
||||||
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.JButton;
|
||||||
|
import javax.swing.JFileChooser;
|
||||||
|
import javax.swing.JFrame;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.JScrollPane;
|
||||||
|
import javax.swing.JTextArea;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @test
|
||||||
|
* @bug 4835479
|
||||||
|
* @requires (os.family == "windows")
|
||||||
|
* @summary JFileChooser should respect native setting for showing hidden files
|
||||||
|
* @library /java/awt/regtesthelpers
|
||||||
|
* @build PassFailJFrame
|
||||||
|
* @run main/manual ShowHiddenFiles
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class ShowHiddenFiles
|
||||||
|
{
|
||||||
|
private static final String INSTRUCTIONS = """
|
||||||
|
This tests JFileChooser's ability to track the native setting for
|
||||||
|
displaying of hidden files.
|
||||||
|
This test has four parts. If any portion of any of the tests don't
|
||||||
|
behave as specified, press FAIL else press PASS.
|
||||||
|
Before beginning the tests, you'll want to find the Folder Options
|
||||||
|
dialog on your Windows platform. Open an Explorer window for c:/
|
||||||
|
and select Tools->Folder Options. Under the View tab, locate
|
||||||
|
the option to show hidden files. You will need this for the tests.
|
||||||
|
|
||||||
|
TEST 1:
|
||||||
|
This tests that JFileChooser tracks the native platform setting.
|
||||||
|
Configure windows to Show Hidden Files, and in an Explorer window
|
||||||
|
locate a hidden file that is now shown (there are usually hidden
|
||||||
|
files in c:/).
|
||||||
|
Click on the TEST 1 button to display a JFileChooser.
|
||||||
|
Confirm that the hidden files are shown in the JFileChooser.
|
||||||
|
On Windows 98, TEST 1 is now complete.
|
||||||
|
On Windows 2000 and later, configure Folder Options to hide hidden
|
||||||
|
files. Confirm that
|
||||||
|
(1) the files are hidden in the JFileChooser and
|
||||||
|
(2) "PropertyChangeEvent for FILE_HIDING_CHANGED_PROPERTY"
|
||||||
|
appears in the accessory text field.
|
||||||
|
Re-enable showing of hidden files and confirm that
|
||||||
|
(1) the hidden files are again shown and
|
||||||
|
(2) you get another PropertyChangeEvent.
|
||||||
|
Press "Cancel" button to close JFileChooser window.
|
||||||
|
|
||||||
|
TEST 2:
|
||||||
|
This tests that JFileChooser.setFileHidingEnabled(true) overrides the
|
||||||
|
native platform setting.
|
||||||
|
Make sure Windows is configured to Show Hidden Files.
|
||||||
|
Click on the TEST 2 button.
|
||||||
|
Confirm that hidden files are NOT displayed in the JFileChooser.
|
||||||
|
Press "Cancel" button to close JFileChooser window.
|
||||||
|
|
||||||
|
TEST 3:
|
||||||
|
This tests that JFileChooser.setFileHidingEnabled(false) overrides the
|
||||||
|
Make sure Windows is configured to NOT show hidden files.
|
||||||
|
Click on the TEST 3 button.
|
||||||
|
Confirm that hidden files ARE displayed in the JFileChooser.
|
||||||
|
Press "Cancel" button to close JFileChooser window.
|
||||||
|
|
||||||
|
TEST 4:
|
||||||
|
This tests that calling setFileHidingEnabled() on a showing
|
||||||
|
JFileChooser will cause it to ignore further changes in the
|
||||||
|
native platform setting.
|
||||||
|
Click on the TEST 4 button. As in TEST 1, confirm that the
|
||||||
|
JFileChooser tracks the native setting.
|
||||||
|
Click on the "Show Hidden Files" button.
|
||||||
|
Confirm that hidden files remain visible, even when you change
|
||||||
|
the native setting.
|
||||||
|
Repeat the test for the "Hide Hidden Files" button.
|
||||||
|
Press "Cancel" button to close JFileChooser window.
|
||||||
|
""";
|
||||||
|
private static JButton test1, test2, test3, test4;
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
PassFailJFrame.builder()
|
||||||
|
.title("JFileChooser Instructions")
|
||||||
|
.instructions(INSTRUCTIONS)
|
||||||
|
.rows(25)
|
||||||
|
.columns(50)
|
||||||
|
.splitUI(ShowHiddenFiles::createAndShowUI)
|
||||||
|
.build()
|
||||||
|
.awaitAndCheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JPanel createAndShowUI() {
|
||||||
|
test1 = new JButton("TEST 1: Track native setting");
|
||||||
|
test2 = new JButton("TEST 2: setFileHidingEnabled(true)");
|
||||||
|
test3 = new JButton("TEST 3: setFileHidingEnabled(false)");
|
||||||
|
test4 = new JButton("TEST 4: setFileHidingEnabled() on showing JFC");
|
||||||
|
|
||||||
|
ButtonListener bl = new ButtonListener();
|
||||||
|
test1.addActionListener(bl);
|
||||||
|
test2.addActionListener(bl);
|
||||||
|
test3.addActionListener(bl);
|
||||||
|
test4.addActionListener(bl);
|
||||||
|
|
||||||
|
JPanel p = new JPanel();
|
||||||
|
p.setLayout(new GridLayout(4,1));
|
||||||
|
p.setSize(200, 200);
|
||||||
|
p.add(test1);
|
||||||
|
p.add(test2);
|
||||||
|
p.add(test3);
|
||||||
|
p.add(test4);
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class ButtonListener implements ActionListener {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
JFileChooser jfc = new JFileChooser("c:/");
|
||||||
|
if (e.getSource() == test1) {
|
||||||
|
jfc.setAccessory(createTest1Acc(jfc));
|
||||||
|
}
|
||||||
|
else if (e.getSource() == test2) {
|
||||||
|
jfc.setAccessory(null);
|
||||||
|
jfc.setFileHidingEnabled(true);
|
||||||
|
}
|
||||||
|
else if (e.getSource() == test3) {
|
||||||
|
jfc.setAccessory(null);
|
||||||
|
jfc.setFileHidingEnabled(false);
|
||||||
|
}
|
||||||
|
else if (e.getSource() == test4) {
|
||||||
|
jfc.setAccessory(createTest4Acc(jfc));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
jfc.showOpenDialog(new JFrame());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class JFCHideButton extends JButton implements ActionListener {
|
||||||
|
JFileChooser jfc;
|
||||||
|
boolean setVal;
|
||||||
|
|
||||||
|
public JFCHideButton(String label, JFileChooser jfc, boolean setVal) {
|
||||||
|
super(label);
|
||||||
|
this.jfc = jfc;
|
||||||
|
this.setVal = setVal;
|
||||||
|
addActionListener(this);
|
||||||
|
}
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
jfc.setFileHidingEnabled(setVal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static JPanel createTest1Acc(JFileChooser jfc) {
|
||||||
|
JPanel jpl = new JPanel();
|
||||||
|
jpl.add(createTAListener(jfc));
|
||||||
|
return jpl;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static JPanel createTest4Acc(JFileChooser jfc) {
|
||||||
|
JPanel jpl = new JPanel();
|
||||||
|
jpl.setLayout(new BorderLayout());
|
||||||
|
|
||||||
|
JPanel north = new JPanel();
|
||||||
|
north.setLayout(new GridLayout(2,1));
|
||||||
|
north.add(new JFCHideButton("Show Hidden Files", jfc, false));
|
||||||
|
north.add(new JFCHideButton("Hide Hidden Files", jfc, true));
|
||||||
|
jpl.add(BorderLayout.NORTH, north);
|
||||||
|
jpl.add(BorderLayout.CENTER, createTAListener(jfc));
|
||||||
|
return jpl;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static JComponent createTAListener(JFileChooser jfc) {
|
||||||
|
final JTextArea jta = new JTextArea(10,20);
|
||||||
|
PropertyChangeListener pcl = new PropertyChangeListener() {
|
||||||
|
public void propertyChange(PropertyChangeEvent e) {
|
||||||
|
jta.append("PropertyChangeEvent for FILE_HIDING_CHANGED_PROPERTY\n");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
jfc.addPropertyChangeListener(JFileChooser.FILE_HIDING_CHANGED_PROPERTY, pcl);
|
||||||
|
JScrollPane jsp = new JScrollPane(jta);
|
||||||
|
return jsp;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user