From 2d8fcc4271802b211c4718c6abae3ce9c99eafbd Mon Sep 17 00:00:00 2001
From: Tejesh R
Date: Thu, 10 Oct 2024 15:34:39 +0000
Subject: [PATCH] 8340193: Open source several AWT Dialog tests - Batch 1
Reviewed-by: psadhukhan
---
.../Dialog/DialogIconTest/DialogIconTest.java | 91 ++++++
.../awt/Dialog/DialogIconTest/swing.small.gif | Bin 0 -> 1136 bytes
.../jdk/java/awt/Dialog/DialogResizeTest.java | 118 ++++++++
.../FileDialogIconTest.java | 258 ++++++++++++++++++
.../java/awt/Dialog/FileDialogIconTest/T1.gif | Bin 0 -> 2553 bytes
.../java/awt/Dialog/FileDialogIconTest/T2.gif | Bin 0 -> 2704 bytes
.../java/awt/Dialog/FileDialogIconTest/T3.gif | Bin 0 -> 2523 bytes
.../java/awt/Dialog/FileDialogIconTest/T4.gif | Bin 0 -> 2721 bytes
.../Dialog/FileDialogIconTest/loading-msg.gif | Bin 0 -> 1518 bytes
.../awt/Dialog/FileDialogWrongNameCrash.java | 72 +++++
.../java/awt/Dialog/GetLocationTest_1.java | 129 +++++++++
11 files changed, 668 insertions(+)
create mode 100644 test/jdk/java/awt/Dialog/DialogIconTest/DialogIconTest.java
create mode 100644 test/jdk/java/awt/Dialog/DialogIconTest/swing.small.gif
create mode 100644 test/jdk/java/awt/Dialog/DialogResizeTest.java
create mode 100644 test/jdk/java/awt/Dialog/FileDialogIconTest/FileDialogIconTest.java
create mode 100644 test/jdk/java/awt/Dialog/FileDialogIconTest/T1.gif
create mode 100644 test/jdk/java/awt/Dialog/FileDialogIconTest/T2.gif
create mode 100644 test/jdk/java/awt/Dialog/FileDialogIconTest/T3.gif
create mode 100644 test/jdk/java/awt/Dialog/FileDialogIconTest/T4.gif
create mode 100644 test/jdk/java/awt/Dialog/FileDialogIconTest/loading-msg.gif
create mode 100644 test/jdk/java/awt/Dialog/FileDialogWrongNameCrash.java
create mode 100644 test/jdk/java/awt/Dialog/GetLocationTest_1.java
diff --git a/test/jdk/java/awt/Dialog/DialogIconTest/DialogIconTest.java b/test/jdk/java/awt/Dialog/DialogIconTest/DialogIconTest.java
new file mode 100644
index 00000000000..06debe28fc5
--- /dev/null
+++ b/test/jdk/java/awt/Dialog/DialogIconTest/DialogIconTest.java
@@ -0,0 +1,91 @@
+/*
+ * 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.
+ */
+
+import java.awt.Dialog;
+import java.awt.Frame;
+import java.awt.Image;
+import java.awt.Label;
+import java.awt.MediaTracker;
+import java.awt.Toolkit;
+import java.awt.Window;
+import java.util.List;
+
+/*
+ * @test
+ * @bug 4779641
+ * @summary Test to verify that Non-resizable dialogs should not show icons
+ * @requires (os.family == "windows")
+ * @library /java/awt/regtesthelpers
+ * @build PassFailJFrame
+ * @run main/manual DialogIconTest
+ */
+
+public class DialogIconTest {
+ public static void main(String[] args) throws Exception {
+ String INSTRUCTIONS = """
+ 1. This is a Windows-only test of Dialog icons
+ 2. You can see a frame with a swing icon and two dialogs that it
+ owns. The resizable dialog should have the same icon as the
+ frame. The non-resizable dialog should have no icon at all
+ 3. Press PASS if this is true, press FAIL otherwise
+ """;
+ PassFailJFrame.builder()
+ .title("Test Instructions")
+ .instructions(INSTRUCTIONS)
+ .rows((int) INSTRUCTIONS.lines().count() + 2)
+ .columns(35)
+ .testUI(initialize())
+ .build()
+ .awaitAndCheck();
+ }
+
+ public static List initialize() {
+ Frame f = new Frame("Parent frame");
+ f.setBounds(50, 50, 200, 200);
+
+ Dialog dr = new Dialog(f, "Resizable Dialog");
+ dr.setLocation(100, 100);
+ dr.add(new Label("Should inherit icon from parent"));
+ dr.pack();
+
+ Dialog dn = new Dialog(f, "NON Resizable Dialog");
+ dn.setLocation(150, 150);
+ dn.add(new Label("Should have no icon"));
+ dn.pack();
+ dn.setResizable(false);
+
+ String fileName = System.getProperty("test.src") +
+ System.getProperty("file.separator") + "swing.small.gif";
+
+ Image icon = Toolkit.getDefaultToolkit().createImage(fileName);
+ MediaTracker tracker = new MediaTracker(f);
+ tracker.addImage(icon, 0);
+ try {
+ tracker.waitForAll();
+ } catch (InterruptedException ie) {
+ throw new RuntimeException("MediaTracker addImage Interrupted!");
+ }
+ f.setIconImage(icon);
+ return List.of(f, dn, dr);
+ }
+}
diff --git a/test/jdk/java/awt/Dialog/DialogIconTest/swing.small.gif b/test/jdk/java/awt/Dialog/DialogIconTest/swing.small.gif
new file mode 100644
index 0000000000000000000000000000000000000000..14a489ff4e7df0b4a268582701a1e7ef655047fa
GIT binary patch
literal 1136
zcmV-$1dsbiNk%w1VL$*t0QCR>_xJa}z`*bC@8{>|*4EagrKOCFjD&=QeSLjeT3Tac
zW0aJXwY9ZrX=zeYQZX?xDJdx!7#Ii$2mk;85D*X{AtA=b#@^oEb8~Y_N=iaPLanW>
zoSdAhs;ZWjmSb94)6>&TOiV%u7-I+_F&GGx5HWKYDV!lftvOoo@bFR?5PKL1jD&=*
zudk()gq(X?j9M{!N-29vA%ts6b5c2DLLr=lbG@aU|Ns9|LNQt~5K=J^LLmrBDF{+2
z5IG?TA^8LW00031EC2ui06+jh000L5z<_W_EE5BEk63?u2XB#Ki+2bU6B-(+VV7|Ys1pivl9>%6B$wrjDnqEyr{Dp!$}Mc
z5q+OT$x<1{$I(T95vY$GhC{0riB}G>s0vLRtEdn~23A8DvlIaa4GtL%!A%USvl8w~
z2qch8P-K)KW8_eUW0I!9g9!wcFqoEb;ie)R5+;1`Pv3(G8?13CmawCiA__Dnl=oy`
zL?i|TYGgU&3y}laRFZ?jL4p1+m^x_{DK%uAN}0N#EWq&72!^1&3O<^qVUYm?9MEuB
zB>~C-bVnLcpddkni4h`@HYjpS2!{#glyzj1NkP6%5dt(AQKD~&6EYW`^j1sFEezcP
z9FV{O2L!);Q+Pm?j{zGY4Io&f(w4&k&k{HQ!0`ie2^1(qOxVWAK!wdyo(b7Ep#hHD
z8CI+?o%Ye?1r+Xv;Z_8~g8{d3bReM{@`MTn11zW@oK!vx5(p&60RRE>z9vW{m4g6T
zAXfo6gx;RKfQAYxG;GMQZU}=1l?)SkpkXxo+W`27Lk5M-lYvF1z_Azz|1~(^I^2*^
zoqlIjfPjDwCKtj4bN-}(-X4FXVL$}hWyoF#_3@!e05$~x0S6}jmqSw*X)?)l7sSZk
zjP@ZIM>_#zfB|wkCYM79LrkK{8w|WwLkzIM!~WoH0h(A==?pdK;DgH_f84{v
zJVYF@nJd~?K)E!u{IbVA$jrmc5r2>~6D_z images;
+ static String fileBase;
+
+ public static void main(String[] args) throws Exception {
+ String INSTRUCTIONS = """
+ 1. Select the Image for a Dialog and Frame using either
+ Load/Save/Just Dialog.
+ 2. Set the Icon Image/s to Frame and Dialog. Verify that the
+ Icon is set for the respective Frame and Dialog.
+ If selected Icon is set to Frame and Dialog press PASS
+ else FAIL.
+ """;
+ PassFailJFrame.builder()
+ .title("Test Instructions")
+ .instructions(INSTRUCTIONS)
+ .rows((int) INSTRUCTIONS.lines().count() + 2)
+ .columns(35)
+ .testUI(initialize())
+ .logArea(8)
+ .build()
+ .awaitAndCheck();
+ }
+
+ public static void setImagesToFD(java.util.List listIcon) {
+ FileDialogIconTest.images = listIcon;
+ }
+
+ public static void setImagesToFrame(java.util.List listIcon) {
+ frame.setIconImages(listIcon);
+ }
+
+ public static void setImageToFD(Image img) {
+ FileDialogIconTest.image = img;
+ }
+
+ public static void setImageToFrame(Image img) {
+ frame.setIconImage(img);
+ }
+
+ public static Frame initialize() {
+ frame = new Frame("FileDialogIconTest");
+ Button setImageButton1 = new Button("setIconImageToFrame");
+ Button setImageButton2 = new Button("setIconImageToDialog");
+ Button setImageButton3 = new Button("setIconImagesToFrame");
+ Button setImageButton4 = new Button("setIconImagesToDialog");
+ Button setImageButton5 = new Button("setIconBufferedImagesToDialog");
+ Button setImageButton6 = new Button("setIconBufferedImagesToFrame");
+
+ if (System.getProperty("test.src") == null) {
+ fileBase = "";
+ } else {
+ fileBase = System.getProperty("test.src") + System.getProperty("file.separator");
+ }
+
+ final String fileName = fileBase + "loading-msg.gif";
+
+ setImageButton1.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent event) {
+ try {
+ Image image = Toolkit.getDefaultToolkit().getImage(fileName);
+ setImageToFrame(image);
+ PassFailJFrame.log("Loaded image . setting to frame");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+
+ setImageButton2.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent event) {
+ try {
+ Image image = Toolkit.getDefaultToolkit().getImage(fileName);
+ setImageToFD(image);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+
+ setImageButton3.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent event) {
+ try {
+ Image image;
+ java.util.List list = new java.util.ArrayList();
+ for (int i = 1; i <= 4; i++) {
+ String fileName = fileBase + "T" + i + ".gif";
+ image = Toolkit.getDefaultToolkit().getImage(fileName);
+ PassFailJFrame.log("Loaded image " + fileName + ". setting to the list for frame");
+ list.add(image);
+ }
+ setImagesToFrame(list);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+
+
+ setImageButton4.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent event) {
+ try {
+ Image image;
+ List list = new ArrayList<>();
+ for (int i = 1; i <= 4; i++) {
+ String fileName = fileBase + "T" + i + ".gif";
+ image = Toolkit.getDefaultToolkit().getImage(fileName);
+ PassFailJFrame.log("Loaded image " + fileName + ". setting to the list for dialog");
+ list.add(image);
+ }
+ setImagesToFD(list);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+
+
+ setImageButton5.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent event) {
+ List list = new ArrayList<>();
+ try {
+ Robot robot = new Robot();
+ Rectangle rectangle;
+ for (int i = 1; i <= 4; i++) {
+ rectangle = new Rectangle(i * 10, i * 10, i * 10 + 40, i * 10 + 40);
+ java.awt.image.BufferedImage image = robot.createScreenCapture(rectangle);
+ robot.delay(100);
+ list.add(image);
+ }
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ PassFailJFrame.log("Captured images and set to the list for dialog");
+ }
+ });
+
+ setImageButton6.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent event) {
+ List list = new ArrayList<>();
+ try {
+ Robot robot = new Robot();
+ Rectangle rectangle;
+ for (int i = 1; i <= 4; i++) {
+ rectangle = new Rectangle(i * 10, i * 10, i * 10 + 40, i * 10 + 40);
+ java.awt.image.BufferedImage image = robot.createScreenCapture(rectangle);
+ robot.delay(100);
+ list.add(image);
+ }
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ PassFailJFrame.log("Captured images and set to the list for frame");
+ }
+ });
+
+ Button buttonLoad = new Button("Load Dialog");
+ Button buttonSave = new Button("Save Dialog");
+ Button buttonSimple = new Button("Just Dialog");
+ buttonLoad.addActionListener(new MyActionListener(FileDialog.LOAD, "LOAD"));
+ buttonSave.addActionListener(new MyActionListener(FileDialog.SAVE, "SAVE"));
+ buttonSimple.addActionListener(new MyActionListener(-1, ""));
+
+ frame.setSize(400, 400);
+ frame.setLayout(new FlowLayout());
+ frame.add(buttonLoad);
+ frame.add(buttonSave);
+ frame.add(buttonSimple);
+ frame.add(setImageButton1);
+ frame.add(setImageButton2);
+ frame.add(setImageButton3);
+ frame.add(setImageButton4);
+ frame.pack();
+ return frame;
+ }
+}
+
+class MyActionListener implements ActionListener {
+ int id;
+ String name;
+
+ public MyActionListener(int id, String name) {
+ this.id = id;
+ this.name = name;
+ }
+
+ public void actionPerformed(ActionEvent ae) {
+ try {
+ FileDialog filedialog;
+ if (id == -1 && Objects.equals(name, "")) {
+ filedialog = new FileDialog(FileDialogIconTest.frame);
+ } else {
+ filedialog = new FileDialog(FileDialogIconTest.frame, name, id);
+ }
+ if (FileDialogIconTest.image != null) {
+ filedialog.setIconImage(FileDialogIconTest.image);
+ }
+
+ if (FileDialogIconTest.images != null) {
+ filedialog.setIconImages(FileDialogIconTest.images);
+ }
+ filedialog.setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/test/jdk/java/awt/Dialog/FileDialogIconTest/T1.gif b/test/jdk/java/awt/Dialog/FileDialogIconTest/T1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..24a7dea299fd1c877792ce09a5b64d1f57c1b323
GIT binary patch
literal 2553
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
P7x~0Bcm#DS1OWg$YOidd
literal 0
HcmV?d00001
diff --git a/test/jdk/java/awt/Dialog/FileDialogIconTest/T2.gif b/test/jdk/java/awt/Dialog/FileDialogIconTest/T2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1f3fd66328ba678811608133a189ae76837cb7db
GIT binary patch
literal 2704
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
literal 0
HcmV?d00001
diff --git a/test/jdk/java/awt/Dialog/FileDialogIconTest/T4.gif b/test/jdk/java/awt/Dialog/FileDialogIconTest/T4.gif
new file mode 100644
index 0000000000000000000000000000000000000000..67876264d8f7f4d350815a4e08f6eb1ec6f1bb0e
GIT binary patch
literal 2721
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
literal 0
HcmV?d00001
diff --git a/test/jdk/java/awt/Dialog/FileDialogIconTest/loading-msg.gif b/test/jdk/java/awt/Dialog/FileDialogIconTest/loading-msg.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6c7570a6d84358d4c81bbb4177d50410bd464674
GIT binary patch
literal 1518
zcmV6ciK{6%`g178e&67#J8C85tTH8XFrM
z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7
zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}?
zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy
zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj
zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T
za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD
zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z}
zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5(
zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p
zxVX5vxw*Q!y1To(yu7@dCU$jHda
z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4
z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg=
z{r_{{R2~EC2ui06YLZ000R80RIUbNU)&6g9sBUT*$DY!-o(fN}NcsqQ#3CGiuz(
zv7^U`zbbzF_U_rofdDH0`ST0NNr5R1h8+0r*EfRCzO5|y&E&wG7h?|m1mh2kPyc=u
zg#zc_Hy~hu6m9tr2oN|-ox+G(w4zXf5Z?WJ2jL$}m}Z;)o9YtCpRr~CsCDZVCyaqW
zp1u2IG$oLkE2;iPJJ{@7ieI0(6bM5xlvm&U0%qBEreuLT5f=;#_a6YU&r&{8%eJcJ
zf1?FLIXn@7YuCSs8bulvD~M0;U|=m>IAw0ztToOQ_{(HZfg=}=90}&p%Zf^40}=b2
z;9Thm|F@*k8Xu@W?NLE#{eLzw~I6Q;%2$qiHe<^p{+!y~SB*_{{{zJJWS`+Fx%5j+0GxNxH@}D#=ZD{vMchpT{Wu<8H@di|
zLwlX|=b(gg4%z~`~_*$hJV2UfR1hU=%r!*fFRa84hrhmhGsQsq)!IA
z1Vv-t+y#Z4F_ya0AIz?_<+dQ`#g~|%Ph_X-%#bg35vaQyPhye1a3ld)qpMIn<>lI83_PZIP9yTv-Flt4ieS*k%h
z$p*rPwLx*4QLv&%rkMmqW>S7*Z3PAxAhZ