New Upstream Snapshot - jtharness
Ready changes
Summary
Merged new upstream version: 6.0-b24+git20221123.0.eb2ab96 (was: 6.0-b24+git20220901.1.9149bb7).
Resulting package
Built on 2023-01-20T07:58 (took 18m12s)
The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:
apt install -t fresh-snapshots libjtharness-java
Diff
diff --git a/debian/changelog b/debian/changelog
index 1d2c1d3..d0ec95d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+jtharness (6.0-b24+git20221123.0.eb2ab96-1) UNRELEASED; urgency=low
+
+ * New upstream snapshot.
+ * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk> Fri, 20 Jan 2023 07:47:27 -0000
+
jtharness (6.0-b24-1) unstable; urgency=medium
* Team upload.
diff --git a/debian/patches/01_imports.patch b/debian/patches/01_imports.patch
index 2b80581..fb5e51c 100644
--- a/debian/patches/01_imports.patch
+++ b/debian/patches/01_imports.patch
@@ -1,9 +1,11 @@
## Description: Replace imports.
## Origin/Author: Tom Marble
## Bug: bug URL
---- a/src/com/sun/javatest/agent/SerialPortAgentCommand.java
-+++ b/src/com/sun/javatest/agent/SerialPortAgentCommand.java
-@@ -30,8 +30,8 @@
+Index: jtharness.git/src/com/sun/javatest/agent/SerialPortAgentCommand.java
+===================================================================
+--- jtharness.git.orig/src/com/sun/javatest/agent/SerialPortAgentCommand.java
++++ jtharness.git/src/com/sun/javatest/agent/SerialPortAgentCommand.java
+@@ -30,8 +30,8 @@ import com.sun.javatest.Command;
import com.sun.javatest.ProductInfo;
import com.sun.javatest.Status;
@@ -14,8 +16,10 @@
import java.io.IOException;
import java.io.PrintWriter;
---- a/src/com/sun/javatest/agent/SerialPortConnection.java
-+++ b/src/com/sun/javatest/agent/SerialPortConnection.java
+Index: jtharness.git/src/com/sun/javatest/agent/SerialPortConnection.java
+===================================================================
+--- jtharness.git.orig/src/com/sun/javatest/agent/SerialPortConnection.java
++++ jtharness.git/src/com/sun/javatest/agent/SerialPortConnection.java
@@ -26,12 +26,12 @@
*/
package com.sun.javatest.agent;
@@ -35,8 +39,10 @@
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.InputStream;
---- a/src/com/sun/javatest/agent/SerialPortConnectionFactory.java
-+++ b/src/com/sun/javatest/agent/SerialPortConnectionFactory.java
+Index: jtharness.git/src/com/sun/javatest/agent/SerialPortConnectionFactory.java
+===================================================================
+--- jtharness.git.orig/src/com/sun/javatest/agent/SerialPortConnectionFactory.java
++++ jtharness.git/src/com/sun/javatest/agent/SerialPortConnectionFactory.java
@@ -26,9 +26,9 @@
*/
package com.sun.javatest.agent;
@@ -50,8 +56,10 @@
import java.io.IOException;
/**
---- a/src/com/sun/javatest/agent/SerialPortModeOptions.java
-+++ b/src/com/sun/javatest/agent/SerialPortModeOptions.java
+Index: jtharness.git/src/com/sun/javatest/agent/SerialPortModeOptions.java
+===================================================================
+--- jtharness.git.orig/src/com/sun/javatest/agent/SerialPortModeOptions.java
++++ jtharness.git/src/com/sun/javatest/agent/SerialPortModeOptions.java
@@ -26,8 +26,8 @@
*/
package com.sun.javatest.agent;
diff --git a/gui-tests/src/gui/src/jthtest/CreateWorkdir/CreateWorkdir03.java b/gui-tests/src/gui/src/jthtest/CreateWorkdir/CreateWorkdir03.java
new file mode 100644
index 0000000..5fe222c
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/CreateWorkdir/CreateWorkdir03.java
@@ -0,0 +1,63 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2021, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+
+package jthtest.CreateWorkdir;
+
+import org.netbeans.jemmy.JemmyException;
+import org.netbeans.jemmy.operators.JDialogOperator;
+import org.netbeans.jemmy.operators.JFrameOperator;
+
+import jthtest.Test;
+
+import static jthtest.Tools.*;
+import static jthtest.workdir.Workdir.*;
+
+public class CreateWorkdir03 extends Test {
+
+ /**
+ * This test case verifies that creating an existing workdirectory will generate
+ * an error message.
+ */
+
+ public void testImpl() throws Exception {
+ startJavaTestWithDefaultTestSuite();
+ JFrameOperator mainFrame = findMainFrame();
+
+ String path = DEFAULT_PATH + TO_DELETE_TEMP_WD_NAME;
+ deleteDirectory(path);
+ createWorkDirectory(path, true, mainFrame);
+ createWorkDirectory(path, false, mainFrame);
+ addUsedFile(path);
+
+ try {
+ new JDialogOperator(getToolResource("wdc.exists_openIt.title"));
+ } catch (JemmyException e) {
+ errors.add(
+ "Error message offering user to open existing work directory insted of creation it was not found");
+ }
+ }
+}
diff --git a/gui-tests/src/gui/src/jthtest/CreateWorkdir/CreateWorkdir14.java b/gui-tests/src/gui/src/jthtest/CreateWorkdir/CreateWorkdir14.java
new file mode 100644
index 0000000..4aae5e4
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/CreateWorkdir/CreateWorkdir14.java
@@ -0,0 +1,57 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2021, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+
+package jthtest.CreateWorkdir;
+
+import org.netbeans.jemmy.JemmyException;
+import org.netbeans.jemmy.operators.JButtonOperator;
+import org.netbeans.jemmy.operators.JDialogOperator;
+import org.netbeans.jemmy.operators.JFrameOperator;
+
+import jthtest.Test;
+
+import static jthtest.Tools.*;
+import static jthtest.workdir.Workdir.*;
+
+public class CreateWorkdir14 extends Test {
+
+ /**
+ * This test case verifies that Cancel button in the Create Work Directory will
+ * remove the dialog box.
+ */
+
+ public void testImpl() throws Exception {
+ startJavaTestWithDefaultTestSuite();
+
+ JFrameOperator mainFrame = findMainFrame();
+ JDialogOperator wdCreate = openOpenWorkDirectoryDialog(mainFrame);
+ new JButtonOperator(wdCreate, "Cancel").push();
+
+ if (wdCreate.isVisible())
+ throw new JemmyException("Dialog box is visible after pressing Cancel button");
+ }
+}
diff --git a/gui-tests/src/gui/src/jthtest/CreateWorkdir/CreateWorkdir21.java b/gui-tests/src/gui/src/jthtest/CreateWorkdir/CreateWorkdir21.java
new file mode 100644
index 0000000..a05e1d4
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/CreateWorkdir/CreateWorkdir21.java
@@ -0,0 +1,59 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2021, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+
+package jthtest.CreateWorkdir;
+
+import java.io.File;
+import org.netbeans.jemmy.JemmyException;
+import org.netbeans.jemmy.operators.JFrameOperator;
+
+import jthtest.Test;
+
+import jthtest.Tools;
+import jthtest.tools.JTFrame;
+
+public class CreateWorkdir21 extends Test {
+
+ /**
+ * This test case verifies that creating a work directory with spaces in the
+ * filename should work properly.
+ */
+
+ public void testImpl() throws Exception {
+ JTFrame mainFrame = JTFrame.startJTWithDefaultTestSuite();
+
+ File wd = mainFrame.getWorkDirectory().createWorkDirectory(Tools.TEMP_PATH, "path with spaces", true);
+ addUsedFile(wd);
+
+ if (!wd.exists()) {
+ errors.add(("Workdir with spaces ('path with spaces') was not created in temp directory. Tried to create "
+ + wd.getAbsolutePath()));
+ }
+
+ }
+
+}
diff --git a/gui-tests/src/gui/src/jthtest/CustomReport/CReport.java b/gui-tests/src/gui/src/jthtest/CustomReport/CReport.java
new file mode 100644
index 0000000..6a4e82f
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/CustomReport/CReport.java
@@ -0,0 +1,64 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.CustomReport;
+
+import jthtest.ReportTools;
+import jthtest.Test;
+import jthtest.tools.JTFrame;
+import jthtest.tools.ReportDialog;
+import org.netbeans.jemmy.operators.JButtonOperator;
+import org.netbeans.jemmy.operators.JDialogOperator;
+
+public abstract class CReport extends Test {
+ private String path;
+ private boolean html;
+ private boolean plain;
+ private boolean xml;
+
+ public CReport(boolean html, boolean plain, boolean xml) {
+ this.html = html;
+ this.plain = plain;
+ this.xml = xml;
+ path = TEMP_PATH + REPORT_NAME + (html ? ReportTools.REPORT_POSTFIX_HTML : "") + (plain ? ReportTools.REPORT_POSTFIX_PLAIN : "") + (xml ? ReportTools.REPORT_POSTFIX_XML : "");
+ }
+
+ @Override
+ public void testImpl() throws Exception {
+ mainFrame = JTFrame.startJTWithDefaultWorkDirectory();
+
+ ReportDialog rd = mainFrame.openReportDialog();
+ rd.setHtmlChecked(html);
+ rd.setPlainChecked(plain);
+ rd.setXmlChecked(xml);
+ rd.setPath(path);
+ rd.pushCreate();
+ new JButtonOperator(ReportDialog.findShowReportDialog(), "Yes").push();
+
+ JDialogOperator report = new JDialogOperator(ReportTools.getExecResource("rb.title"));
+ CustomReport.checkReportBrowser(report, path, html, plain, xml);
+ }
+}
diff --git a/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport.java b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport.java
new file mode 100644
index 0000000..c2fec2f
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport.java
@@ -0,0 +1,91 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.CustomReport;
+
+import jthtest.ReportTools;
+import java.io.File;
+import javax.swing.JCheckBox;
+import org.netbeans.jemmy.JemmyException;
+import org.netbeans.jemmy.operators.JDialogOperator;
+import org.netbeans.jemmy.operators.JEditorPaneOperator;
+import org.netbeans.jemmy.operators.JListOperator;
+import org.netbeans.jemmy.util.NameComponentChooser;
+
+public class CustomReport extends ReportTools {
+ public static JCheckBox selectType(JDialogOperator rep, ReportType sel) {
+ JListOperator types = new JListOperator(rep, new NameComponentChooser("nrd.typel"));
+ int index = 0;
+/* switch(sel) {
+ case HTML: index = 0; break;
+ case PLAIN_TEXT: index = 1; break;
+ case XML: index = 2; break;
+ case CUSTOM_TEXT: index = 3; break;
+ case CUSTOM_XML: index = 4; break;
+ }/**/
+ index = sel.ordinal();
+ types.setSelectedIndex(index);
+ return (JCheckBox) types.getModel().getElementAt(index);
+ }
+
+ public static boolean checkReportFile(String path, ReportType type) {
+ String name = "";
+ switch(type) {
+ case HTML: name = File.separator+"html"+File.separator+"report.html"; break;
+ case PLAIN_TEXT: name = File.separator+"text"+File.separator+"summary.txt"; break;
+ case XML: name = File.separator+"xml"+File.separator+"report.xml"; break;
+ }
+ return new File(path+name).exists();
+ }
+
+ public static void checkReportBrowser(JDialogOperator report, String path, boolean html, boolean plaintext, boolean xml) throws InterruptedException {
+ JEditorPaneOperator text = new JEditorPaneOperator(report, new NameComponentChooser("text"));
+
+ if(html) {
+ Thread.sleep(500);
+ if(!text.getText().trim().replaceAll("\\s+", " ").contains("HTML Report"))
+ throw new JemmyException("'HTML Report' hyperlink was not found in the report");
+ if(!checkReportFile(path, ReportType.HTML))
+ throw new JemmyException("Html report file was not found");
+ }
+
+ if(plaintext) {
+ Thread.sleep(500);
+ if(!text.getText().trim().replaceAll("\\s+", " ").contains("Plain Text Report"))
+ throw new JemmyException("'Plain Text Report' hyperlink was not found in the report");
+ if(!checkReportFile(path, ReportType.PLAIN_TEXT))
+ throw new JemmyException("Plain text report file was not found");
+ }
+
+ if(xml) {
+ Thread.sleep(500);
+ if(!text.getText().trim().replaceAll("\\s+", " ").contains("XML Report"))
+ throw new JemmyException("'XML Report' hyperlink was not found in the report");
+ if(!checkReportFile(path, ReportType.XML))
+ throw new JemmyException("xml report file was not found");
+ }
+ }
+}
diff --git a/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport1.java b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport1.java
new file mode 100644
index 0000000..2b71755
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport1.java
@@ -0,0 +1,38 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.CustomReport;
+
+/**
+ * This test case verifies that report can be generated in html format.
+ */
+
+public class CustomReport1 extends CReport {
+
+ public CustomReport1() {
+ super(true, false, false);
+ }
+}
diff --git a/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport2.java b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport2.java
new file mode 100644
index 0000000..3a570e4
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport2.java
@@ -0,0 +1,38 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.CustomReport;
+
+/**
+ * This test case verifies that report can be generated in xml format.
+ */
+
+public class CustomReport2 extends CReport {
+
+ public CustomReport2() {
+ super(false, false, true);
+ }
+}
diff --git a/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport3.java b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport3.java
new file mode 100644
index 0000000..306b8e0
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport3.java
@@ -0,0 +1,37 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.CustomReport;
+
+/**
+ * This test case verifies that report can be generated in plain text format.
+ */
+public class CustomReport3 extends CReport {
+
+ public CustomReport3() {
+ super(false, true, false);
+ }
+}
diff --git a/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport4.java b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport4.java
new file mode 100644
index 0000000..8cd6566
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport4.java
@@ -0,0 +1,39 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.CustomReport;
+
+/**
+ * This test case verifies that report can be generated in xml and plain text
+ * format.
+ */
+
+public class CustomReport4 extends CReport {
+
+ public CustomReport4() {
+ super(false, true, true);
+ }
+}
diff --git a/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport5.java b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport5.java
new file mode 100644
index 0000000..bbc0f03
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport5.java
@@ -0,0 +1,38 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.CustomReport;
+
+/**
+ * This test case verifies that report can be generated in html and xml format.
+ */
+
+public class CustomReport5 extends CReport {
+
+ public CustomReport5() {
+ super(true, false, true);
+ }
+}
diff --git a/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport6.java b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport6.java
new file mode 100644
index 0000000..cac51c1
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport6.java
@@ -0,0 +1,40 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.CustomReport;
+
+/**
+ * This test case verifies that report can be generated in html and plain text
+ * format.
+ */
+public class CustomReport6 extends CReport {
+
+ public CustomReport6() {
+ super(true, true, false);
+ }
+
+}
+
diff --git a/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport7.java b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport7.java
new file mode 100644
index 0000000..cb433eb
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/CustomReport/CustomReport7.java
@@ -0,0 +1,39 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.CustomReport;
+
+/**
+ * This test case verifies that report can be generated in html,xml and plain
+ * text format.
+ */
+public class CustomReport7 extends CReport {
+
+ public CustomReport7() {
+ super(true, true, true);
+ }
+}
+
diff --git a/gui-tests/src/gui/src/jthtest/Markers/Markers.java b/gui-tests/src/gui/src/jthtest/Markers/Markers.java
new file mode 100644
index 0000000..1b83fa9
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/Markers/Markers.java
@@ -0,0 +1,466 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.Markers;
+
+import jthtest.ConfigTools;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.event.MouseEvent;
+import javax.swing.Icon;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import org.netbeans.jemmy.JemmyException;
+import org.netbeans.jemmy.QueueTool;
+import org.netbeans.jemmy.operators.ContainerOperator;
+import org.netbeans.jemmy.operators.JDialogOperator;
+import org.netbeans.jemmy.operators.JListOperator;
+import org.netbeans.jemmy.operators.JMenuOperator;
+import org.netbeans.jemmy.operators.JPopupMenuOperator;
+
+/**
+ * This class contains the methods to perform certain actions on Bookmarks Menu options in the JavaTest configuration editor
+ */
+public class Markers extends ConfigTools {
+
+ public static Icon getIcon(JDialogOperator config, int index) {
+ Icon icon = ((JLabel) new JListOperator(config).getRenderedComponent(index)).getIcon();
+ return icon;
+ }
+
+ public static void pushEnableBookmarks(JDialogOperator config) {
+ new JMenuOperator(config, "Bookmarks")
+ .pushMenu(new String[] { "Bookmarks", getExecResource("ct.markers.ckb") });
+ }
+
+ public static void pushShowOnlyBookmarked(JDialogOperator config) {
+ new JMenuOperator(config, "Bookmarks").pushMenu(new String[] { "Bookmarks", "Show Only Bookmarked Questions" });
+ }
+
+ public static void pushClearBookmarkedAnswer(JDialogOperator config) {
+ new JMenuOperator(config, "Bookmarks")
+ .pushMenu(new String[] { "Bookmarks", "Clear Answers For Current Question" });
+ }
+
+ public static void pushClearAllBookmarkedAnswers(JDialogOperator config) {
+ new JMenuOperator(config, "Bookmarks")
+ .pushMenu(new String[] { "Bookmarks", "Clear Answers to Bookmarked Questions" });
+ }
+
+ public static void pushOpenHiddenGroupByMenu(JDialogOperator config) {
+ new JMenuOperator(config, "Bookmarks").pushMenu(new String[] { "Bookmarks", "Open \". . .\" Group" });
+ }
+
+ public static void pushOpenHiddenGroupByMouse(JDialogOperator config, int index) {
+ JListOperatorExt list = new JListOperatorExt(config);
+ list.clickOnItem(index, 1);
+ if (list.clickOnItem(index, 2, MouseEvent.BUTTON1_MASK) == null) {
+ throw new JemmyException("Error occured while clicking on " + index + " item of list " + list);
+ }
+ }
+
+ public static void pushCloseHiddenGroupByMouse(JDialogOperator config, int index) {
+ JListOperatorExt list = new JListOperatorExt(config);
+ list.clickOnItem(index, 1);
+ if (list.clickOnItem(index, 2, MouseEvent.BUTTON1_MASK) == null) {
+ throw new JemmyException("Error occured while clicking on " + index + " item of list " + list);
+ }
+ }
+
+ public static void pushCloseByMenu(JDialogOperator config) {
+ new JMenuOperator(config, "Bookmarks").pushMenu(new String[] { "Bookmarks", "Close \". . .\" Group" });
+ }
+
+ public static void pushCloseByPopup(JDialogOperator config, int index) {
+ JListOperatorExt list = new JListOperatorExt(config);
+ list.clickOnItem(index, 1);
+ if (list.clickOnItem(index, 1, MouseEvent.BUTTON3_MASK) == null) {
+ throw new JemmyException("Error occured while clicking on " + index + " item of list " + list);
+ }
+ new JPopupMenuOperator(config).pushMenu("Close \". . .\" Group");
+ }
+
+ public static void pushOpenHiddenGroupByPopup(JDialogOperator config, int index) {
+ JListOperatorExt list = new JListOperatorExt(config);
+ list.clickOnItem(index, 1);
+ if (list.clickOnItem(index, 1, MouseEvent.BUTTON3_MASK) == null) {
+ throw new JemmyException("Error occured while clicking on " + index + " item of list " + list);
+ }
+ new JPopupMenuOperator(config).pushMenu("Open \". . .\" Group");
+ }
+
+ public static void clearByMenu(JDialogOperator config, int index) {
+ new JListOperator(config).selectItem(index);
+ new JMenuOperator(config, "Bookmarks")
+ .pushMenu(new String[] { "Bookmarks", "Clear Answer For Current Question" });
+ }
+
+ public static void setBookmarkedByMenu(JDialogOperator config, int index) {
+ new JListOperator(config).selectItem(index);
+ new JMenuOperator(config, "Bookmarks").pushMenu(new String[] { "Bookmarks", "Mark Current Question" });
+ }
+
+ public static void unsetBookmarkedByMenu(JDialogOperator config, int index) {
+ new JListOperator(config).selectItem(index);
+ new JMenuOperator(config, "Bookmarks").pushMenu(new String[] { "Bookmarks", "Unmark Current Question" });
+ }
+
+ public static void setBookmarkedByMenu(JDialogOperator config, int[] indexes) {
+ JMenuOperator bookmarksMenu = new JMenuOperator(config, "Bookmarks");
+ String[] menuPath = new String[] { "Bookmarks", "Mark Current Question" };
+ JListOperator list = new JListOperator(config);
+ for (int index : indexes) {
+ list.selectItem(index);
+ bookmarksMenu.pushMenu(menuPath);
+ }
+ }
+
+ public static void setBookmarkedByPopup(JDialogOperator config, int[] indexes) {
+ for (int index : indexes)
+ setBookmarkedByPopup(config, index);
+ }
+
+ public static void setBookmarkedByMouse(JDialogOperator config, int index) {
+ JListOperatorExt list = new JListOperatorExt(config);
+ list.clickOnItem(index, 1, MouseEvent.BUTTON1_MASK, 10);
+ }
+
+ public static String[] getElementsNames(JDialogOperator config, int[] indexes) {
+ JListOperator list = new JListOperator(config);
+ String temp[] = new String[indexes.length];
+ for (int i = 0; i < indexes.length; i++) {
+ temp[i] = ((JLabel) list.getRenderedComponent(indexes[i])).getText();
+ }
+ return temp;
+ }
+
+ public static String[] getElementsNames(JDialogOperator config) {
+ JListOperator list = new JListOperator(config);
+ String temp[] = new String[list.getModel().getSize()];
+ for (int i = 0; i < list.getModel().getSize(); i++) {
+ temp[i] = ((JLabel) list.getRenderedComponent(i)).getText();
+ }
+ return temp;
+ }
+
+ public static void setBookmarkedByPopup(JDialogOperator config, int index) {
+ JListOperatorExt list = new JListOperatorExt(config);
+ list.clickOnItem(index, 1);
+ if (list.clickOnItem(index, 1, MouseEvent.BUTTON3_MASK) == null) {
+ throw new JemmyException("Error occured while clicking on " + index + " item of list " + list);
+ }
+ new JPopupMenuOperator(config).pushMenu("Mark Current Question");
+ }
+
+ public static void clickBookmarkedByMouse(JDialogOperator config, int index) {
+ JListOperatorExt list = new JListOperatorExt(config);
+ list.clickOnItem(index, 1);
+ if (list.clickOnItem(index, 1, MouseEvent.BUTTON3_MASK) == null) {
+ throw new JemmyException("Error occured while clicking on " + index + " item of list " + list);
+ }
+ new JPopupMenuOperator(config).pushMenu("Mark Current Question");
+ }
+
+ public static void unsetBookmarkedByPopup(JDialogOperator config, int index) {
+ JListOperatorExt list = new JListOperatorExt(config);
+ list.clickOnItem(index, 1);
+ if (list.clickOnItem(index, 1, MouseEvent.BUTTON3_MASK) == null) {
+ throw new JemmyException("Error occured while clicking on " + index + " item of list " + list);
+ }
+ new JPopupMenuOperator(config).pushMenu("Unmark Current Question");
+ }
+
+ public static void clearByPopup(JDialogOperator config, int index) {
+ JListOperatorExt list = new JListOperatorExt(config);
+ new JListOperator(config).selectItem(index);
+ if (list.clickOnItem(index, 1, MouseEvent.BUTTON3_MASK) == null) {
+ throw new JemmyException("Error occured while clicking on " + index + " item of list " + list);
+ }
+ new JPopupMenuOperator(config).pushMenu("Clear Answer For Current Question");
+ }
+
+ public static int[] checkVisibility(JDialogOperator config, String[] names) {
+ JListOperator list = new JListOperator(config);
+
+ int marks[] = new int[names.length];
+ for (int mark : marks) {
+ mark = -1;
+ }
+ for (int i = 0; i < list.getModel().getSize(); i++) {
+ String text = ((JLabel) list.getRenderedComponent(i)).getText();
+ if (text != null) {
+ for (int j = 0; j < names.length; j++) {
+ if (text.equals(names[j])) {
+ marks[j] = i;
+ }
+ }
+ }
+ }
+
+ for (int i = 0; i < marks.length; i++) {
+ if (marks[i] == -1) {
+ throw new JemmyException("Element with name '" + names[i] + "' wasn't found");
+ }
+ }
+
+ return marks;
+ }
+
+ public static void checkVisibilityAll(JDialogOperator config, String[] names) {
+ JListOperator list = new JListOperator(config);
+ for (int i = 0; i < list.getModel().getSize(); i++) {
+ String text = ((JLabel) list.getRenderedComponent(i)).getText();
+ if (text == null) {
+ throw new JemmyException("Element N" + i + " hasn't any name while expected '" + names[i] + "'");
+ }
+ if (!text.equals(names[i])) {
+ throw new JemmyException("Element N" + i + " has name '" + list.getRenderedComponent(i).getName()
+ + "' while expected '" + names[i] + "'");
+ }
+ }
+ }
+
+ public static void checkHiddenGroups(JDialogOperator config, int[] indexes, String[] names) {
+ JListOperator list = new JListOperator(config);
+
+ if (indexes.length > 0) {
+ int temp = 0;
+
+ for (int i = 0; i < indexes.length; i++) {
+ if (indexes[i] - temp > 1) {
+ if (((JLabel) list.getRenderedComponent(indexes[i] - 1)).getText() != null) {
+ throw new JemmyException("element " + (indexes[i] - 1) + " isn't '...'");
+ }
+ }
+ temp = indexes[i];
+ }
+ }
+ }
+
+ public static void openGroupByMenu(JDialogOperator config, String[] namesAll, String[] namesHidden) {
+ JListOperator list = new JListOperator(config);
+
+ int i;
+ for (i = 0; i < list.getModel().getSize(); i++) {
+ if (((JLabel) list.getRenderedComponent(i)).getText() == null) {
+ break;
+ }
+ }
+
+ list.selectItem(i);
+ pushOpenHiddenGroupByMenu(config);
+
+ for (int j = i; j < list.getModel().getSize(); j++) {
+ String text = ((JLabel) list.getRenderedComponent(j)).getText();
+ if (!(text.equals(namesAll[j]))) {
+ throw new JemmyException("Element " + j + " is '" + text
+ + "' after opening '...' group while expected '" + namesAll[j] + "'");
+ }
+ if (text.equals(namesHidden[i + 1])) {
+ break;
+ }
+ }
+ }
+
+ public static void openGroupByMouse(JDialogOperator config, String[] namesAll, String[] namesHidden) {
+ JListOperator list = new JListOperator(config);
+
+ int i;
+ for (i = 0; i < list.getModel().getSize(); i++) {
+ if (((JLabel) list.getRenderedComponent(i)).getText() == null) {
+ break;
+ }
+ }
+
+ pushOpenHiddenGroupByMouse(config, i);
+
+ for (int j = i; j < list.getModel().getSize(); j++) {
+ String text = ((JLabel) list.getRenderedComponent(j)).getText();
+ if (!(text.equals(namesAll[j]))) {
+ throw new JemmyException("Element " + j + " is '" + text
+ + "' after opening '...' group while expected '" + namesAll[j] + "'");
+ }
+ if (text.equals(namesHidden[i + 1])) {
+ break;
+ }
+ }
+ }
+
+ public static void openGroupByPopup(JDialogOperator config, String[] namesAll, String[] namesHidden) {
+ JListOperator list = new JListOperator(config);
+
+ int i;
+ for (i = 0; i < list.getModel().getSize(); i++) {
+ if (((JLabel) list.getRenderedComponent(i)).getText() == null) {
+ break;
+ }
+ }
+
+ pushOpenHiddenGroupByPopup(config, i);
+
+ for (int j = i; j < list.getModel().getSize(); j++) {
+ String text = ((JLabel) list.getRenderedComponent(j)).getText();
+ if (!(text.equals(namesAll[j]))) {
+ throw new JemmyException("Element " + j + " is '" + text
+ + "' after opening '...' group while expected '" + namesAll[j] + "'");
+ }
+ if (text.equals(namesHidden[i + 1])) {
+ break;
+ }
+ }
+
+ }
+
+ public static void closeGroupByMenu(JDialogOperator config, String[] namesAll, String[] namesHidden) {
+ JListOperator list = new JListOperator(config);
+
+ int i;
+ for (i = 0; i < namesHidden.length; i++) {
+ if (namesHidden[i] == null) {
+ break;
+ }
+ }
+
+ list.selectItem(i);
+ pushCloseByMenu(config);
+
+ if (((JLabel) list.getRenderedComponent(i)).getText() != null) {
+ throw new JemmyException("Element " + i + " isn't '...' after closing");
+ }
+ if (!(((JLabel) list.getRenderedComponent(i + 1)).getText().equals(namesHidden[i + 1]))) {
+ throw new JemmyException("Element " + (i + 1) + " isn't " + namesHidden[i + 1] + " after closing");
+ }
+ }
+
+ public static void closeGroupByPopup(JDialogOperator config, String[] namesAll, String[] namesHidden) {
+ JListOperator list = new JListOperator(config);
+
+ int i;
+ for (i = 0; i < namesHidden.length; i++) {
+ if (namesHidden[i] == null) {
+ break;
+ }
+ }
+
+ pushCloseByPopup(config, i);
+
+ if (((JLabel) list.getRenderedComponent(i)).getText() != null) {
+ throw new JemmyException("Element " + i + " isn't '...' after closing");
+ }
+ if (!(((JLabel) list.getRenderedComponent(i + 1)).getText().equals(namesHidden[i + 1]))) {
+ throw new JemmyException("Element " + (i + 1) + " isn't " + namesHidden[i + 1] + " after closing");
+ }
+ }
+
+ public static void closeGroupByMouse(JDialogOperator config, String[] namesAll, String[] namesHidden) {
+ JListOperator list = new JListOperator(config);
+
+ int i;
+ for (i = 0; i < namesHidden.length; i++) {
+ if (namesHidden[i] == null) {
+ break;
+ }
+ }
+
+ pushCloseHiddenGroupByMouse(config, i);
+
+ if (((JLabel) list.getRenderedComponent(i)).getText() != null) {
+ throw new JemmyException("Element " + i + " isn't '...' after closing");
+ }
+ if (!(((JLabel) list.getRenderedComponent(i + 1)).getText().equals(namesHidden[i + 1]))) {
+ throw new JemmyException("Element " + (i + 1) + " isn't " + namesHidden[i + 1] + " after closing");
+ }
+ }
+
+ public static boolean checkBookmarked(JDialogOperator config, int index) {
+ JListOperator list = new JListOperator(config);
+ return ((JLabel) list.getRenderedComponent(index)).getIcon() != null;
+ }
+
+ static class JListOperatorExt extends JListOperator {
+
+ public JListOperatorExt(ContainerOperator c) {
+ super(c);
+ }
+
+ public Object clickOnItem(final int itemIndex, final int clickCount, final int mouseButton) {
+ if (itemIndex > getModel().getSize()) {
+ throw new JemmyException("bad index");
+ }
+ scrollToItem(itemIndex);
+
+ if (((JList) getSource()).getModel().getSize() <= itemIndex) {
+ return (null);
+ }
+ if (((JList) getSource()).getAutoscrolls()) {
+ ((JList) getSource()).ensureIndexIsVisible(itemIndex);
+ }
+ return (getQueueTool().invokeSmoothly(new QueueTool.QueueAction("Path selecting") {
+
+ public Object launch() {
+ Rectangle rect = getCellBounds(itemIndex, itemIndex);
+ if (rect == null) {
+ return (null);
+ }
+ Point point = new Point((int) (rect.getX() + rect.getWidth() / 2),
+ (int) (rect.getY() + rect.getHeight() / 2));
+ Object result = getModel().getElementAt(itemIndex);
+ clickMouse(point.x, point.y, clickCount, mouseButton);
+ return (result);
+ }
+ }));
+ }
+
+ public Object clickOnItem(final int itemIndex, final int clickCount, final int mouseButton, final int x) {
+ if (itemIndex > getModel().getSize()) {
+ throw new JemmyException("bad index");
+ }
+ scrollToItem(itemIndex);
+
+ if (((JList) getSource()).getModel().getSize() <= itemIndex) {
+ return (null);
+ }
+ if (((JList) getSource()).getAutoscrolls()) {
+ ((JList) getSource()).ensureIndexIsVisible(itemIndex);
+ }
+ return (getQueueTool().invokeSmoothly(new QueueTool.QueueAction("Path selecting") {
+
+ public Object launch() {
+ Rectangle rect = getCellBounds(itemIndex, itemIndex);
+ if (rect == null) {
+ return (null);
+ }
+ Point point = new Point((int) (rect.getX() + x == 0 ? rect.getWidth() / 2 : x),
+ (int) (rect.getY() + rect.getHeight() / 2));
+ Object result = getModel().getElementAt(itemIndex);
+ clickMouse(point.x, point.y, clickCount, mouseButton);
+ return (result);
+ }
+ }));
+ }
+ }
+}
+
diff --git a/gui-tests/src/gui/src/jthtest/Markers/Markers2.java b/gui-tests/src/gui/src/jthtest/Markers/Markers2.java
new file mode 100644
index 0000000..be605d8
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/Markers/Markers2.java
@@ -0,0 +1,71 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.Markers;
+
+/**
+ * This test case verifies that if marker is enabled, the questions in the index pane will shift to the right.
+ */
+
+import java.lang.reflect.InvocationTargetException;
+import jthtest.Config_Edit.Config_Edit;
+import org.junit.Test;
+import org.junit.runner.JUnitCore;
+import org.netbeans.jemmy.JemmyException;
+import org.netbeans.jemmy.operators.JDialogOperator;
+import org.netbeans.jemmy.operators.JFrameOperator;
+import static jthtest.Markers.Markers.*;
+
+public class Markers2 {
+ public static void main(String args[]) {
+ JUnitCore.main("jthtest.gui.Markers.Markers2");
+ }
+
+ @Test
+ public void testMarkers2() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException {
+ startJavatestNewDesktop();
+
+ JFrameOperator mainFrame = findMainFrame();
+
+ closeQS(mainFrame);
+ openTestSuite(mainFrame);
+ createWorkDirInTemp(mainFrame);
+ openConfigFile(openLoadConfigDialogByMenu(mainFrame), CONFIG_NAME);
+ Config_Edit.waitForConfigurationLoading(mainFrame, CONFIG_NAME);
+
+ openConfigDialogByKey(mainFrame);
+ JDialogOperator config = findConfigEditor(mainFrame);
+
+ if (getIcon(config, 1) != null) {
+ throw new JemmyException("Icon was found before enabling bookmark");
+ }
+ pushEnableBookmarks(config);
+ if (getIcon(config, 1) == null) {
+ throw new JemmyException("Icon wasn't found after enabling bookmark (list isn't shifted)");
+ }
+ }
+}
+
diff --git a/gui-tests/src/gui/src/jthtest/Markers/Markers3.java b/gui-tests/src/gui/src/jthtest/Markers/Markers3.java
new file mode 100644
index 0000000..bc4c721
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/Markers/Markers3.java
@@ -0,0 +1,60 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.Markers;
+
+import java.lang.reflect.InvocationTargetException;
+import javax.swing.Icon;
+import jthtest.Test;
+import jthtest.tools.ConfigDialog;
+import jthtest.tools.Configuration;
+import jthtest.tools.JTFrame;
+
+/**
+ * This test case verifies that a marked question has a small icon to indicate that it has been marked.
+ */
+public class Markers3 extends Test {
+
+ public void testImpl() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException {
+ mainFrame = new JTFrame(true);
+
+ mainFrame.openDefaultTestSuite();
+ addUsedFile(mainFrame.createWorkDirectoryInTemp());
+
+ Configuration config = mainFrame.getConfiguration();
+ config.load(CONFIG_NAME, true);
+
+ ConfigDialog confDialog = config.openByMenu(true);
+
+ confDialog.getBookmarks_EnableBookmarks().push();
+ Icon emptyIcon = confDialog.getIcon(1);
+ confDialog.setBookmarkedByMenu(1);
+ if (confDialog.getIcon(1) == emptyIcon) {
+ errors.add("Icon wasn't found");
+ }
+ }
+}
+
diff --git a/gui-tests/src/gui/src/jthtest/Markers/Markers4.java b/gui-tests/src/gui/src/jthtest/Markers/Markers4.java
new file mode 100644
index 0000000..9ceb665
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/Markers/Markers4.java
@@ -0,0 +1,60 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.Markers;
+
+import java.lang.reflect.InvocationTargetException;
+import javax.swing.Icon;
+import jthtest.Test;
+import jthtest.tools.ConfigDialog;
+import jthtest.tools.Configuration;
+import jthtest.tools.JTFrame;
+
+/**
+ * This test case verifies that a question could be marked from a popup menu.
+ */
+public class Markers4 extends Test {
+
+ public void testImpl() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException {
+ mainFrame = new JTFrame(true);
+
+ mainFrame.openDefaultTestSuite();
+ addUsedFile(mainFrame.createWorkDirectoryInTemp());
+ Configuration config = mainFrame.getConfiguration();
+ config.load(CONFIG_NAME, true);
+ ConfigDialog cd = config.openByKey();
+
+ cd.getBookmarks_EnableBookmarks().push();
+ Icon emptyIcon = cd.getIcon(1);
+ cd.setBookmarkedByPopup(1);
+ if (cd.getIcon(1) == emptyIcon) {
+ errors.add("Icon wasn't found");
+ }
+ warnings.add("predefined warning: popup menu doesn't open without left clicking");
+
+ }
+}
+
diff --git a/gui-tests/src/gui/src/jthtest/Markers/Markers5.java b/gui-tests/src/gui/src/jthtest/Markers/Markers5.java
new file mode 100644
index 0000000..0d009a0
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/Markers/Markers5.java
@@ -0,0 +1,73 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.Markers;
+
+import java.lang.reflect.InvocationTargetException;
+import javax.swing.Icon;
+import jthtest.Config_Edit.Config_Edit;
+import org.junit.Test;
+import org.junit.runner.JUnitCore;
+import org.netbeans.jemmy.JemmyException;
+import org.netbeans.jemmy.operators.JDialogOperator;
+import org.netbeans.jemmy.operators.JFrameOperator;
+import static jthtest.Markers.Markers.*;
+
+/**
+ * This test case verifies that a question could be unmarked from a popup menu.
+ */
+public class Markers5 {
+ public static void main(String args[]) {
+ JUnitCore.main("jthtest.gui.Markers.Markers5");
+ }
+
+ @Test
+ public void testMarkers5() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException {
+ startJavatestNewDesktop();
+
+ JFrameOperator mainFrame = findMainFrame();
+
+ closeQS(mainFrame);
+ openTestSuite(mainFrame);
+ createWorkDirInTemp(mainFrame);
+ openConfigFile(openLoadConfigDialogByMenu(mainFrame), CONFIG_NAME);
+ Config_Edit.waitForConfigurationLoading(mainFrame, CONFIG_NAME);
+
+ openConfigDialogByKey(mainFrame);
+ JDialogOperator config = findConfigEditor(mainFrame);
+
+ pushEnableBookmarks(config);
+ Icon emptyIcon = getIcon(config, 1);
+ setBookmarkedByPopup(config, 1);
+ if (getIcon(config, 1) == emptyIcon)
+ throw new JemmyException("Icon wasn't found");
+ unsetBookmarkedByPopup(config, 1);
+ if (getIcon(config, 1) != emptyIcon) {
+ throw new JemmyException("Icon was found after unmarking");
+ }
+ }
+}
+
diff --git a/gui-tests/src/gui/src/jthtest/Markers/Markers6.java b/gui-tests/src/gui/src/jthtest/Markers/Markers6.java
new file mode 100644
index 0000000..3e86a12
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/Markers/Markers6.java
@@ -0,0 +1,61 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.Markers;
+
+import java.lang.reflect.InvocationTargetException;
+import jthtest.Config_Edit.Config_Edit;
+import jthtest.Test;
+import jthtest.tools.ConfigDialog;
+import jthtest.tools.Configuration;
+import jthtest.tools.JTFrame;
+import org.netbeans.jemmy.operators.JDialogOperator;
+import org.netbeans.jemmy.operators.JFrameOperator;
+
+/**
+ * This test case verifies that selecting show marked questions will only
+ * display the list of marked questions in the interview.
+ */
+public class Markers6 extends Test {
+ public void testImpl() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException {
+ mainFrame = new JTFrame(true);
+
+ mainFrame.openDefaultTestSuite();
+ addUsedFile(mainFrame.createWorkDirectoryInTemp());
+ Configuration configuration = mainFrame.getConfiguration();
+ configuration.load(CONFIG_NAME, true);
+ ConfigDialog cd = configuration.openByKey();
+
+ cd.getBookmarks_EnableBookmarks().push();
+ int[] indexes = new int[] { 1, 2 };
+ cd.setBookmarkedByMenu(indexes);
+ String names[] = cd.getElementsNames(indexes);
+ cd.getBookmarks_ShowOnlyBookmarkedMenu().push();
+
+ cd.checkVisibility(names);
+ }
+}
+
diff --git a/gui-tests/src/gui/src/jthtest/Markers/Markers7.java b/gui-tests/src/gui/src/jthtest/Markers/Markers7.java
new file mode 100644
index 0000000..d17f591
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/Markers/Markers7.java
@@ -0,0 +1,62 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.Markers;
+
+import java.lang.reflect.InvocationTargetException;
+import jthtest.Test;
+import jthtest.tools.ConfigDialog;
+import jthtest.tools.Configuration;
+import jthtest.tools.JTFrame;
+
+/**
+ * This test case verifies unselecting show marked questions will display the whole list of questions in the interview.
+ */
+public class Markers7 extends Test {
+
+ public void testImpl() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException {
+ mainFrame = new JTFrame(true);
+
+ mainFrame.openDefaultTestSuite();
+ addUsedFile(mainFrame.createWorkDirectoryInTemp());
+ Configuration configuration = mainFrame.getConfiguration();
+ configuration.load(CONFIG_NAME, true);
+ ConfigDialog cd = configuration.openByKey();
+
+ cd.getBookmarks_EnableBookmarks().push();
+ int[] indexes = new int[] { 1, 2 };
+ String allNames[] = cd.getElementsNames();
+ String bookmarkedNames[] = cd.getElementsNames(indexes);
+
+ cd.setBookmarkedByMenu(indexes);
+ cd.getBookmarks_ShowOnlyBookmarkedMenu().push();
+ cd.checkVisibility(bookmarkedNames);
+
+ cd.getBookmarks_ShowOnlyBookmarkedMenu().push();
+ cd.checkVisibilityAll(allNames);
+ }
+}
+
diff --git a/gui-tests/src/gui/src/jthtest/Markers/Markers8.java b/gui-tests/src/gui/src/jthtest/Markers/Markers8.java
new file mode 100644
index 0000000..4a18726
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/Markers/Markers8.java
@@ -0,0 +1,61 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.Markers;
+
+import java.lang.reflect.InvocationTargetException;
+import javax.swing.Icon;
+import jthtest.Test;
+import jthtest.tools.ConfigDialog;
+import jthtest.tools.Configuration;
+import jthtest.tools.JTFrame;
+
+/**
+ * This test case verifies that unmark current question will remove the markers from the marked question.
+ */
+public class Markers8 extends Test {
+
+ public void testImpl() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException {
+ mainFrame = new JTFrame(true);
+
+ mainFrame.openDefaultTestSuite();
+ addUsedFile(mainFrame.createWorkDirectoryInTemp());
+ Configuration configuration = mainFrame.getConfiguration();
+ configuration.load(CONFIG_NAME, true);
+ ConfigDialog cd = configuration.openByKey();
+
+ cd.getBookmarks_EnableBookmarks().push();
+ Icon emptyIcon = cd.getIcon(1);
+ cd.setBookmarkedByMenu(1);
+ if (cd.getIcon(1) == emptyIcon)
+ errors.add("Bookmark Icon was not found after marking");
+
+ cd.unsetBookmarkedByMenu(1);
+ if (cd.getIcon(1) != emptyIcon)
+ errors.add("Empty Icon was not found after unmarking");
+ }
+}
+
diff --git a/gui-tests/src/gui/src/jthtest/OpenTestSuite/OpenTestSuite1.java b/gui-tests/src/gui/src/jthtest/OpenTestSuite/OpenTestSuite1.java
new file mode 100644
index 0000000..f8216d7
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/OpenTestSuite/OpenTestSuite1.java
@@ -0,0 +1,55 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2021, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+
+package jthtest.OpenTestSuite;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.junit.Test;
+import org.junit.runner.JUnitCore;
+import org.netbeans.jemmy.operators.JTabbedPaneOperator;
+
+public class OpenTestSuite1 extends OpenTestSuite {
+
+ /**
+ * This test case verifies that opening an existing test suite would correctly
+ * load tests.
+ */
+
+ public static void main(String[] args) {
+ JUnitCore.main("jthtest.gui.OpenTestSuite.OpenTestSuite1");
+ }
+
+ @Test
+ public void testOpenTestSuite1() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException {
+
+ openTestSuite(mainFrame);
+ waitForWDLoading(mainFrame, WDLoadingResult.SOME_NOTRUN);
+ new JTabbedPaneOperator(mainFrame, TAB_CAPTION);
+ }
+
+}
diff --git a/gui-tests/src/gui/src/jthtest/OpenTestSuite/OpenTestSuite2.java b/gui-tests/src/gui/src/jthtest/OpenTestSuite/OpenTestSuite2.java
new file mode 100644
index 0000000..145070d
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/OpenTestSuite/OpenTestSuite2.java
@@ -0,0 +1,65 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2021, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+
+package jthtest.OpenTestSuite;
+
+import static org.junit.Assert.fail;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.junit.Test;
+import org.junit.runner.JUnitCore;
+import org.netbeans.jemmy.operators.JTabbedPaneOperator;
+
+public class OpenTestSuite2 extends OpenTestSuite {
+
+ /**
+ * This test case verifies that opening an existing test suite twice would not
+ * cause an error.
+ */
+
+ public static void main(String[] args) {
+ JUnitCore.main("jthtest.gui.OpenTestSuite.OpenTestSuite2");
+ }
+
+ @Test
+ public void testOpenTestSuite2() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException {
+ openTestSuite(mainFrame);
+ openTestSuite(mainFrame);
+ waitForWDLoading(mainFrame, WDLoadingResult.SOME_NOTRUN);
+
+ JTabbedPaneOperator tabs = new JTabbedPaneOperator(mainFrame, TAB_CAPTION);
+ if (tabs.getTabCount() != 2) {
+ fail("Wrong tab count after opening the same test suite twice");
+ }
+
+ if (!tabs.getTitleAt(0).contains(TAB_CAPTION) || !tabs.getTitleAt(1).contains(TAB_CAPTION)) {
+ fail("Tabs opened from the same teststuite have different captions");
+ }
+ }
+
+}
diff --git a/gui-tests/src/gui/src/jthtest/ReportCreate/ReportCreate2.java b/gui-tests/src/gui/src/jthtest/ReportCreate/ReportCreate2.java
new file mode 100644
index 0000000..b43abe7
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/ReportCreate/ReportCreate2.java
@@ -0,0 +1,60 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.ReportCreate;
+
+import java.io.File;
+import static jthtest.ReportCreate.ReportCreate.*;
+import jthtest.Test;
+import jthtest.tools.JTFrame;
+import org.netbeans.jemmy.JemmyException;
+import org.netbeans.jemmy.operators.JDialogOperator;
+import org.netbeans.jemmy.operators.JFrameOperator;
+
+/**
+ * This test case verifies that Create Report button under Report menu will create a report directory for a valid name.
+ */
+public class ReportCreate2 extends Test {
+
+ public void testImpl() throws Exception {
+ deleteUserData();
+
+ mainFrame = JTFrame.startJTWithRunWD();
+
+ JDialogOperator rep = openReportCreation(mainFrame.getJFrameOperator());
+ String path = TEMP_PATH + REPORT_NAME + "_new" + File.separator;
+ deleteDirectory(path);
+ setPath(rep, path);
+
+ pressCreate(rep);
+ addUsedFile(path);
+
+ if (!new File(path).exists()) {
+ throw new JemmyException("Directory was not created");
+ }
+ }
+}
+
diff --git a/gui-tests/src/gui/src/jthtest/ReportCreate/ReportCreate3.java b/gui-tests/src/gui/src/jthtest/ReportCreate/ReportCreate3.java
new file mode 100644
index 0000000..18ed574
--- /dev/null
+++ b/gui-tests/src/gui/src/jthtest/ReportCreate/ReportCreate3.java
@@ -0,0 +1,57 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001, 2022, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jthtest.ReportCreate;
+
+import java.lang.reflect.InvocationTargetException;
+import org.junit.Test;
+import org.junit.runner.JUnitCore;
+import org.netbeans.jemmy.operators.JDialogOperator;
+import org.netbeans.jemmy.operators.JFrameOperator;
+
+/**
+ * This test case verifies that Create Report button under Report menu will produce an error message if a report directory name is not specified.
+ */
+public class ReportCreate3 extends ReportCreate {
+
+ public static void main(String[] args) {
+ JUnitCore.main("jthtest.gui.ReportCreate.ReportCreate3");
+ }
+
+ @Test
+ public void testReportCreate3() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException {
+ startJavaTestWithDefaultWorkDirectory();
+
+ JFrameOperator mainFrame = findMainFrame();
+
+ JDialogOperator rep = openReportCreation(mainFrame);
+
+ pressCreate(rep);
+
+ new JDialogOperator(WINDOWNAME + " Harness: Error");
+ }
+}
+
diff --git a/src/com/sun/javatest/TestSuite.java b/src/com/sun/javatest/TestSuite.java
index 7be7e76..84d2895 100644
--- a/src/com/sun/javatest/TestSuite.java
+++ b/src/com/sun/javatest/TestSuite.java
@@ -58,6 +58,8 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Vector;
+import java.util.Objects;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogRecord;
@@ -94,7 +96,6 @@ public class TestSuite {
private static final String TESTSUITE_HTML = "testsuite.html";
private static final String TESTSUITE_JTT = "testsuite.jtt";
private static final String FIND_LEGACY_CONSTRUCTOR = "com.sun.javatest.ts.findLegacyCtor";
- static Map<String, WorkDirLogHandler> handlersMap = new HashMap<>();
/**
* Disposed of the shared TestSuite object for this test suite. Use
@@ -1479,20 +1480,23 @@ public class TestSuite {
}
private static class GeneralPurposeLogger extends Logger {
- private String logFileName;
+ private static final Map<String, WorkDirLogHandler> handlersMap = new ConcurrentHashMap<>();
+ private final String logFileName;
private GeneralPurposeLogger(String name, WorkDirectory wd, String resourceBundleName, TestSuite ts) {
super(name, resourceBundleName);
this.logFileName = wd.getLogFileName();
- if (wd != null) {
- if (!handlersMap.containsKey(wd.getLogFileName())) {
- WorkDirLogHandler wdlh = new WorkDirLogHandler(ts.getObservedFile(wd));
- handlersMap.put(wd.getLogFileName(), wdlh);
- }
-
- addHandler(handlersMap.get(wd.getLogFileName()));
- }
+ addHandler(
+ handlersMap.computeIfAbsent(logFileName, fileName -> {
+ ObservedFile observedFile = ts.getObservedFile(wd);
+ Objects.requireNonNull(observedFile,
+ "Method TestSuite.getObservedFile(WorkDirectory) returned 'null' "
+ + "when called on test suite " + ts + ", passing work directory " + wd);
+ return new WorkDirLogHandler(observedFile);
+ }
+ )
+ );
setLevel(Level.ALL);
}
Debdiff
[The following lists of changes regard files as different if they have different names, permissions or owners.]
Files in second set of .debs but not in first
-rw-r--r-- root/root /usr/share/java/javatest-6.0-b24+git20221123.0.eb2ab96.jar -rw-r--r-- root/root /usr/share/java/jt-junit-6.0-b24+git20221123.0.eb2ab96.jar lrwxrwxrwx root/root /usr/share/java/javatest.jar -> javatest-6.0-b24+git20221123.0.eb2ab96.jar lrwxrwxrwx root/root /usr/share/java/jt-junit.jar -> jt-junit-6.0-b24+git20221123.0.eb2ab96.jar
Files in first set of .debs but not in second
-rw-r--r-- root/root /usr/share/java/javatest-6.0-b24.jar -rw-r--r-- root/root /usr/share/java/jt-junit-6.0-b24.jar lrwxrwxrwx root/root /usr/share/java/javatest.jar -> javatest-6.0-b24.jar lrwxrwxrwx root/root /usr/share/java/jt-junit.jar -> jt-junit-6.0-b24.jar
No differences were encountered in the control files