aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog17
-rw-r--r--Makefile.am8
-rw-r--r--tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp53
-rw-r--r--tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp54
-rw-r--r--tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp54
-rw-r--r--tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp54
-rw-r--r--tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp53
-rw-r--r--tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp52
-rw-r--r--tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp49
-rw-r--r--tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp54
-rw-r--r--tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingNoAppDesc.jnlp54
-rw-r--r--tests/jnlp_tests/simple/ManifestedJar1/srcs/META-INF/MANIFEST.MF3
-rw-r--r--tests/jnlp_tests/simple/ManifestedJar1/srcs/ManifestedJar1.java45
-rw-r--r--tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java255
-rw-r--r--tests/jnlp_tests/simple/ManifestedJar2/srcs/META-INF/MANIFEST.MF3
-rw-r--r--tests/jnlp_tests/simple/ManifestedJar2/srcs/ManifestedJar2.java45
16 files changed, 852 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index b1a2e2a..c7fc1d7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2012-03-05 Jiri Vanek <[email protected]>
+
+ Added test for main-class in manifest for jnlp
+ * Makefile.am: (prepare-reproducers.stamp) fixed manifest handling. Till
+ now was manifest copied as any other non java file, and so was rewritten
+ by jar tool
+ * tests/jnlp_tests/simple/ManifestedJar2/srcs: secondary jar file which
+ should have manifest and so should help ManifestedJar1 with testing
+ * tests/jnlp_tests/simple/ManifestedJar2/resources/META-INF/MANIFEST.MF:
+ manifest for ManifestedJar2.jar
+ * tests/jnlp_tests/simple/ManifestedJar1/srcs: main testing jar
+ * tests/jnlp_tests/simple/ManifestedJar2/resources/META-INF/MANIFEST.MF:
+ manifest for ManifestedJar1.jar
+ * tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java:
+ testing class for this reproducers
+ * tests/jnlp_tests/simple/ManifestedJar1/resources/: nine reproducers jnlps
+
2012-03-06 Jiri Vanek <[email protected]>
Improved reflection test:
diff --git a/Makefile.am b/Makefile.am
index 35584c8..4b53eb2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -27,6 +27,7 @@ KEYSTORE_NAME=teststore.ks
JUNIT_RUNNER_JAR=$(abs_top_builddir)/junit-runner.jar
UNIT_CLASS_NAMES = $(abs_top_builddir)/unit_class_names
REPRODUCERS_CLASS_NAMES = $(abs_top_builddir)/reproducers_class_names
+META_MANIFEST = META-INF/MANIFEST.MF
# Build directories
@@ -490,7 +491,12 @@ stamps/netx-dist-tests-prepare-reproducers.stamp: stamps/junit-jnlp-dist-dirs
cp -R --parents "$$notSrcFiles" "$(JNLP_TESTS_DIR)/$$dir/" ; \
fi ; \
cd "$(JNLP_TESTS_DIR)/$$dir/" ; \
- $(BOOT_DIR)/bin/jar cf "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \
+ if [ -f $(META_MANIFEST) ]; \
+ then \
+ $(BOOT_DIR)/bin/jar cfm "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $(META_MANIFEST) * ; \
+ else \
+ $(BOOT_DIR)/bin/jar cf "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \
+ fi; \
cd "$$d" ; \
cp -R "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/resources/"* $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \
done ; \
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp
new file mode 100644
index 0000000..5182a95
--- /dev/null
+++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp
@@ -0,0 +1,53 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea 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 for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+<?xml version="1.0" encoding="utf-8"?>
+<jnlp spec="1.0"
+ codebase="./"
+ href="ManifestedJar-1main2mainNoAppDesc.jnlp">
+ <information>
+ <title>Test Thread.getAllStackTraces</title>
+ <vendor>NetX</vendor>
+ <homepage href="http://jnlp.sourceforge.net/netx/"/>
+ <description>testing jar with manin class in manifest. Invalid xml exception should go out</description>
+ </information>
+ <resources>
+ <jar href="ManifestedJar1.jar" main="true"/>
+ <jar href="ManifestedJar2.jar" main="true"/>
+ </resources>
+ <application-desc main-class="ManifestedJar2">
+</jnlp>
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp
new file mode 100644
index 0000000..62e04c2
--- /dev/null
+++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp
@@ -0,0 +1,54 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea 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 for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+
+<?xml version="1.0" encoding="utf-8"?>
+<jnlp spec="1.0"
+ codebase="./"
+ href="ManifestedJar-1main2mainNoAppDesc.jnlp">
+ <information>
+ <title>ManifestedJar-1main2mainNoAppDesc.jnlp</title>
+ <vendor>NetX</vendor>
+ <homepage href="http://jnlp.sourceforge.net/netx/"/>
+ <description>testing jar with manin class in manifest, hello from manifestedjar1 should go out</description>
+ </information>
+ <resources>
+ <jar href="ManifestedJar1.jar" main="true"/>
+ <jar href="ManifestedJar2.jar" main="true"/>
+ </resources>
+ <application-desc/>
+</jnlp>
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp
new file mode 100644
index 0000000..3244229
--- /dev/null
+++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp
@@ -0,0 +1,54 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea 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 for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+
+<?xml version="1.0" encoding="utf-8"?>
+<jnlp spec="1.0"
+ codebase="./"
+ href="ManifestedJar-1main2nothingNoAppDesc.jnlp">
+ <information>
+ <title>ManifestedJar-1main2nothingNoAppDesc</title>
+ <vendor>NetX</vendor>
+ <homepage href="http://jnlp.sourceforge.net/netx/"/>
+ <description>testing jar with manin class in manifest, hello from manifestedjar2 should be printed</description>
+ </information>
+ <resources>
+ <jar href="ManifestedJar1.jar" />
+ <jar href="ManifestedJar2.jar" main="true"/>
+ </resources>
+ <application-desc/>
+</jnlp>
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp
new file mode 100644
index 0000000..6717280
--- /dev/null
+++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp
@@ -0,0 +1,54 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea 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 for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+<?xml version="1.0" encoding="utf-8"?>
+<jnlp spec="1.0"
+ codebase="./"
+ href="ManifestedJar-1mainHaveAppDesc.jnlp">
+ <information>
+ <title>"ManifestedJar-1mainHaveAppDesc.jnlp</title>
+ <vendor>NetX</vendor>
+ <homepage href="http://jnlp.sourceforge.net/netx/"/>
+ <description>testing jar with manin class in manifest, hello from manifestedjar2 should be printed</description>
+ </information>
+ <resources>
+ <jar href="ManifestedJar1.jar" main="true"/>
+ <jar href="ManifestedJar2.jar" />
+ </resources>
+ <application-desc main-class="ManifestedJar2">
+ </application-desc>
+</jnlp>
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp
new file mode 100644
index 0000000..ebc4ea2
--- /dev/null
+++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp
@@ -0,0 +1,53 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea 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 for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+
+<?xml version="1.0" encoding="utf-8"?>
+<jnlp spec="1.0"
+ codebase="./"
+ href="ManifestedJar-1mainNoAppDesc.jnlp">
+ <information>
+ <title>ManifestedJar-1mainNoAppDesc.jnlp</title>
+ <vendor>NetX</vendor>
+ <homepage href="http://jnlp.sourceforge.net/netx/"/>
+ <description>testing jar with manin class in manifest, hello from manifestedjar should be printed</description>
+ </information>
+ <resources>
+ <jar href="ManifestedJar1.jar" main="true"/>
+ </resources>
+ <application-desc/>
+</jnlp>
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp
new file mode 100644
index 0000000..a15dc77
--- /dev/null
+++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp
@@ -0,0 +1,52 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea 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 for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+<?xml version="1.0" encoding="utf-8"?>
+<jnlp spec="1.0"
+ codebase="./"
+ href="ManifestedJar-1noAppDesc.jnlp">
+ <information>
+ <title>ManifestedJar-1noAppDesc</title>
+ <vendor>NetX</vendor>
+ <homepage href="http://jnlp.sourceforge.net/netx/"/>
+ <description>testing jar with manin class in manifest, hello from manifestedjar1 shold be printed</description>
+ </information>
+ <resources>
+ <jar href="ManifestedJar1.jar"/>
+ </resources>
+ <application-desc/>
+</jnlp>
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp
new file mode 100644
index 0000000..ac7c3db
--- /dev/null
+++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp
@@ -0,0 +1,49 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea 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 for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+<?xml version="1.0" encoding="utf-8"?>
+<jnlp spec="1.0" codebase="./" href="ManifestedJar-1noAppDescAtAll.jnlp">
+ <information>
+ <title>ManifestedJar-1noAppDescAtAll</title>
+ <vendor>NetX</vendor>
+ <homepage href="http://jnlp.sourceforge.net/netx/"/>
+ <description>testing jar with manin class in manifest, exception during launching, no application specified</description>
+ </information>
+ <resources>
+ <jar href="ManifestedJar1.jar"/>
+ </resources>
+</jnlp>
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp
new file mode 100644
index 0000000..52beb63
--- /dev/null
+++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp
@@ -0,0 +1,54 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea 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 for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+
+<?xml version="1.0" encoding="utf-8"?>
+<jnlp spec="1.0"
+ codebase="./"
+ href="ManifestedJar-1nothing2nothingAppDesc.jnlp">
+ <information>
+ <title>ManifestedJar-1nothing2nothingAppDesc</title>
+ <vendor>NetX</vendor>
+ <homepage href="http://jnlp.sourceforge.net/netx/"/>
+ <description>testing jar with manin class in manifest. Hello from manifestedjar2 should be printed</description>
+ </information>
+ <resources>
+ <jar href="ManifestedJar1.jar" />
+ <jar href="ManifestedJar2.jar" />
+ </resources>
+ <application-desc main-class="ManifestedJar2">
+</jnlp>
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingNoAppDesc.jnlp b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingNoAppDesc.jnlp
new file mode 100644
index 0000000..053cd46
--- /dev/null
+++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingNoAppDesc.jnlp
@@ -0,0 +1,54 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea 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 for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+
+<?xml version="1.0" encoding="utf-8"?>
+<jnlp spec="1.0"
+ codebase="./"
+ href="ManifestedJar-1nothing2nothingNoAppDesc.jnlp">
+ <information>
+ <title>ManifestedJar-1nothing2nothingNoAppDesc</title>
+ <vendor>NetX</vendor>
+ <homepage href="http://jnlp.sourceforge.net/netx/"/>
+ <description>testing jar with manin class in manifest. Hello from manifestedjar1 should be printed</description>
+ </information>
+ <resources>
+ <jar href="ManifestedJar1.jar" />
+ <jar href="ManifestedJar2.jar" />
+ </resources>
+ <application-desc/>
+</jnlp>
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/srcs/META-INF/MANIFEST.MF b/tests/jnlp_tests/simple/ManifestedJar1/srcs/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..badcd09
--- /dev/null
+++ b/tests/jnlp_tests/simple/ManifestedJar1/srcs/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: ManifestedJar1
+
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/srcs/ManifestedJar1.java b/tests/jnlp_tests/simple/ManifestedJar1/srcs/ManifestedJar1.java
new file mode 100644
index 0000000..a7cfb9b
--- /dev/null
+++ b/tests/jnlp_tests/simple/ManifestedJar1/srcs/ManifestedJar1.java
@@ -0,0 +1,45 @@
+/* AllStackTraces.java
+Copyright (C) 2011 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea 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 for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+public class ManifestedJar1 {
+ public static void main(String[] args) {
+ hello1();
+ }
+ public static void hello1() {
+ System.out.println("Hello from ManifestedJar1");
+ }
+}
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java b/tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java
new file mode 100644
index 0000000..f7bd7ba
--- /dev/null
+++ b/tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java
@@ -0,0 +1,255 @@
+/* ManifestedJar1Test.java
+Copyright (C) 2011 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea 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 for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+import net.sourceforge.jnlp.ServerAccess;
+import org.junit.Assert;
+
+import org.junit.Test;
+
+public class ManifestedJar1Test {
+
+ private static ServerAccess server = new ServerAccess();
+ private static final String nonLunchableMessage = "net.sourceforge.jnlp.LaunchException: Fatal: Application Error: Not a launchable JNLP file. File must be a JNLP application, applet, or installer type.";
+ //actually this on eis never printed as stderr will not recieve this message in headless mode :(
+ private static final String twoMainException = "net.sourceforge.jnlp.ParseException: Invalid XML document syntax";
+
+ private void assertManifestedJar1(String id, ServerAccess.ProcessResult q) {
+ String s = "Hello from ManifestedJar1";
+ Assert.assertTrue(id + " stdout should contains `" + s + "`, but didn't ", q.stdout.contains(s));
+ }
+
+ private void assertManifestedJar2(String id, ServerAccess.ProcessResult q) {
+ String s = "Hello from ManifestedJar2";
+ Assert.assertTrue(id + " stdout should contains `" + s + "`, but didn't ", q.stdout.contains(s));
+ }
+
+ private void assertNotManifestedJar1(String id, ServerAccess.ProcessResult q) {
+ String s = "Hello from ManifestedJar1";
+ Assert.assertFalse(id + " stdout should NOT contains `" + s + "`, but didn ", q.stdout.contains(s));
+ }
+ private void assertAppError(String id, ServerAccess.ProcessResult q) {
+ Assert.assertTrue(id + " stderr should contains `" + nonLunchableMessage + "`, but didnn't ", q.stderr.contains(nonLunchableMessage));
+ }
+
+ private void assertNotManifestedJar2(String id, ServerAccess.ProcessResult q) {
+ String s = "Hello from ManifestedJar2";
+ Assert.assertFalse(id + " stdout should NOT contains `" + s + "`, but didn ", q.stdout.contains(s));
+ }
+
+ private void assertNotDead(String id, ServerAccess.ProcessResult pr) {
+ String cc = "ClassNotFoundException";
+ Assert.assertFalse(id + " stderr should NOT contains `" + cc + "`, but did", pr.stderr.contains(cc));
+ Assert.assertFalse(id + " should not be terminated, but was", pr.wasTerminated);
+ Assert.assertEquals((Integer) 0, pr.returnValue);
+ }
+
+ @Test
+ /**
+ * if two jars with manifest specified, none is main and no main class, then first one is loaded
+ */
+ public void manifestedJar1nothing2nothingNoAppDesc() throws Exception {
+ String id = "ManifestedJar-1nothing2nothingNoAppDesc";
+ System.out.println("connecting " + id + " request");
+ System.err.println("connecting " + id + " request");
+ ServerAccess.ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp");
+ System.out.println(pr.stdout);
+ System.err.println(pr.stderr);
+ assertManifestedJar1(id, pr);
+ assertNotDead(id, pr);
+ }
+
+ /**
+ *if one jar with manifest, is not main, and no main class then is lunched
+ *
+ */
+ @Test
+ public void manifestedJar1noAppDesc() throws Exception {
+ String id = "ManifestedJar-1noAppDesc";
+ System.out.println("connecting " + id + " request");
+ System.err.println("connecting " + id + " request");
+ ServerAccess.ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp");
+ System.out.println(pr.stdout);
+ System.err.println(pr.stderr);
+ assertManifestedJar1(id, pr);
+ assertNotDead(id, pr);
+ }
+
+ /**
+ *if one jar with manifest, but not marked as main and no main class then is lunched
+ *
+ */
+ @Test
+ public void manifestedJar1mainNoAppDesc() throws Exception {
+ String id = "ManifestedJar-1mainNoAppDesc";
+ System.out.println("connecting " + id + " request");
+ System.err.println("connecting " + id + " request");
+ ServerAccess.ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp");
+ System.out.println(pr.stdout);
+ System.err.println(pr.stderr);
+ assertManifestedJar1(id, pr);
+ assertNotDead(id, pr);
+ }
+
+ /**
+ *if one jar with manifest, marked as main and no main class then is lunched
+ *
+ */
+ @Test
+ public void ManifestedJar1mainHaveAppDesc() throws Exception {
+ String id = "ManifestedJar-1mainHaveAppDesc";
+ System.out.println("connecting " + id + " request");
+ System.err.println("connecting " + id + " request");
+ ServerAccess.ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp");
+ System.out.println(pr.stdout);
+ System.err.println(pr.stderr);
+ assertManifestedJar2(id, pr);
+ assertNotDead(id, pr);
+ }
+
+ /**
+ *
+ * Two jars, both with manifest, First is main, but specified mainclass belongs to second one, then second one should be lunched
+ */
+ @Test
+ public void ManifestedJar1main2nothingNoAppDesc() throws Exception {
+ String id = "ManifestedJar-1main2nothingNoAppDesc";
+ System.out.println("connecting " + id + " request");
+ System.err.println("connecting " + id + " request");
+ ServerAccess.ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp");
+ System.out.println(pr.stdout);
+ System.err.println(pr.stderr);
+ assertManifestedJar2(id, pr);
+ assertNotDead(id, pr);
+ }
+
+ /**
+ *
+ * Two jars, both with manifest, seconds is main, no mainclass, then the one marked as main is lunched
+ */
+ @Test
+ public void manifestedJar1main2nothingNoAppDesc() throws Exception {
+ String id = "ManifestedJar-1main2nothingNoAppDesc";
+ System.out.println("connecting " + id + " request");
+ System.err.println("connecting " + id + " request");
+ ServerAccess.ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp");
+ System.out.println(pr.stdout);
+ System.err.println(pr.stderr);
+ assertManifestedJar2(id, pr);
+ assertNotDead(id, pr);
+ }
+
+ /**
+ *
+ * Two jars, both with manifest, sboth with main tag, no app desc
+ *
+ * thisis passing, SUSPICIOUS, but to lunch at least something is better then to lunch nothing at all.
+ * althoug it maybe SHOULD throw twoMainException
+ */
+ @Test
+ public void manifestedJar1main2mainNoAppDesc() throws Exception {
+ String id = "ManifestedJar-1main2mainNoAppDesc";
+ System.out.println("connecting " + id + " request");
+ System.err.println("connecting " + id + " request");
+ ServerAccess.ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp");
+ System.out.println(pr.stdout);
+ System.err.println(pr.stderr);
+ assertManifestedJar1(id, pr);
+ assertNotDead(id, pr);
+ }
+
+ /**
+ *
+ * Two jars, both with manifest, sboth with main tag, have app desc
+ *
+ * corectly failing with twoMainException
+ */
+ @Test
+ public void manifestedJar1main2mainAppDesc() throws Exception {
+ String id = "ManifestedJar-1main2mainAppDesc";
+ System.out.println("connecting " + id + " request");
+ System.err.println("connecting " + id + " request");
+ ServerAccess.ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp");
+ System.out.println(pr.stdout);
+ System.err.println(pr.stderr);
+ assertNotManifestedJar1(id, pr);
+ assertNotManifestedJar2(id, pr);
+ assertNotDead(id, pr);
+ }
+
+ /**
+ *
+ * Two jars, both with manifest, sboth with main tag, have app desc
+ *
+ * corectly failing
+ */
+ @Test
+ public void manifestedJar1noAppDescAtAll() throws Exception {
+ String id = "ManifestedJar-1noAppDescAtAll";
+ System.out.println("connecting " + id + " request");
+ System.err.println("connecting " + id + " request");
+ ServerAccess.ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp");
+ System.out.println(pr.stdout);
+ System.err.println(pr.stderr);
+ assertNotManifestedJar1(id, pr);
+ assertNotManifestedJar2(id, pr);
+ assertAppError(id, pr);
+ assertNotDead(id, pr);
+ }
+
+
+
+ /**
+ *
+ * Two jars, both with manifest, non with main tag, have app desc
+ *
+ * this jnlp is NOT lunched, twoMainException thrown - ok
+ *
+ */
+ @Test
+ public void manifestedJar1nothing2nothingAppDesc() throws Exception {
+ String id = "ManifestedJar-1nothing2nothingAppDesc";
+ System.out.println("connecting " + id + " request");
+ System.err.println("connecting " + id + " request");
+ ServerAccess.ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp");
+ System.out.println(pr.stdout);
+ System.err.println(pr.stderr);
+ assertNotManifestedJar2(id, pr);
+ assertNotManifestedJar1(id, pr);
+ assertNotDead(id, pr);
+ }
+
+}
diff --git a/tests/jnlp_tests/simple/ManifestedJar2/srcs/META-INF/MANIFEST.MF b/tests/jnlp_tests/simple/ManifestedJar2/srcs/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..d11e8a5
--- /dev/null
+++ b/tests/jnlp_tests/simple/ManifestedJar2/srcs/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: ManifestedJar2
+
diff --git a/tests/jnlp_tests/simple/ManifestedJar2/srcs/ManifestedJar2.java b/tests/jnlp_tests/simple/ManifestedJar2/srcs/ManifestedJar2.java
new file mode 100644
index 0000000..3682209
--- /dev/null
+++ b/tests/jnlp_tests/simple/ManifestedJar2/srcs/ManifestedJar2.java
@@ -0,0 +1,45 @@
+/* AllStackTraces.java
+Copyright (C) 2011 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea 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 for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+public class ManifestedJar2 {
+ public static void main(String[] args) {
+ hello2();
+ }
+ public static void hello2() {
+ System.out.println("Hello from ManifestedJar2");
+ }
+}