aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog18
-rw-r--r--tests/junit-runner/JunitLikeXmlOutputListener.java21
-rw-r--r--tests/junit-runner/LessVerboseTextListener.java38
-rw-r--r--tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java9
-rw-r--r--tests/report-styles/jreport.xsl10
-rw-r--r--tests/reproducers/custom/remote/srcs/Makefile5
-rw-r--r--tests/reproducers/custom/remote/testcases/RemoteApplicationSettings.java231
-rw-r--r--tests/reproducers/custom/remote/testcases/RemoteApplicationTests.java144
-rw-r--r--tests/test-extensions/net/sourceforge/jnlp/annotations/Remote.java52
9 files changed, 513 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index b11b0d0..4fe3313 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,23 @@
2012-12-18 Jiri Vanek <[email protected]>
+ Added and applied Remote annotation, added Remote tests:
+ * tests/report-styles/jreport.xsl: and
+ * tests/junit-runner/JunitLikeXmlOutputListener: and
+ * tests/junit-runner/LessVerboseTextListener.java: added handling of
+ Remote annotation
+ * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java:
+ Tests downloading from classpath.org marked.
+ * tests/reproducers/custom/remote/testcases/RemoteApplicationSettings.java:
+ new file, handling url and evaluations of remote reproducers
+ * tests/reproducers/custom/remote/testcases/RemoteApplicationTests.java:
+ launcher for remote tests.
+ * tests/test-extensions/net/sourceforge/jnlp/annotations/Remote.java:
+ Implementation of Remote annotation
+
+
+
+2012-12-18 Jiri Vanek <[email protected]>
+
Cleaned unit-tests:
* tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java:
(DummyJNLPFile) class extracted from its anonymous members to private
diff --git a/tests/junit-runner/JunitLikeXmlOutputListener.java b/tests/junit-runner/JunitLikeXmlOutputListener.java
index fe17f19..24cfb30 100644
--- a/tests/junit-runner/JunitLikeXmlOutputListener.java
+++ b/tests/junit-runner/JunitLikeXmlOutputListener.java
@@ -23,6 +23,7 @@ import java.util.Set;
import java.util.concurrent.TimeUnit;
import net.sourceforge.jnlp.annotations.Bug;
import net.sourceforge.jnlp.annotations.KnownToFail;
+import net.sourceforge.jnlp.annotations.Remote;
import org.junit.internal.JUnitSystem;
@@ -49,6 +50,7 @@ public class JunitLikeXmlOutputListener extends RunListener {
private static final String BUGS = "bugs";
private static final String BUG = "bug";
private static final String K2F = "known-to-fail";
+ private static final String REMOTE = "remote";
private static final String TEST_NAME_ATTRIBUTE = "name";
private static final String TEST_TIME_ATTRIBUTE = "time";
private static final String TEST_IGNORED_ATTRIBUTE = "ignored";
@@ -172,6 +174,7 @@ public class JunitLikeXmlOutputListener extends RunListener {
double testTimeSeconds = ((double) testTime) / 1000d;
testDone(description, testTime, testTimeSeconds, false);
}
+
private void testDone(Description description, long testTime, double testTimeSeconds, boolean ignored) throws Exception {
Class testClass = null;
@@ -197,16 +200,14 @@ public class JunitLikeXmlOutputListener extends RunListener {
if (ignored){
testcaseAtts.put(TEST_IGNORED_ATTRIBUTE, Boolean.TRUE.toString());
}
- KnownToFail k2f=null;
- try {
- if (testClass != null && testMethod != null) {
- k2f = testMethod.getAnnotation(KnownToFail.class);
- if (k2f != null) {
- testcaseAtts.put(K2F, Boolean.TRUE.toString());
- }
- }
- } catch (Exception ex) {
- ex.printStackTrace();
+ KnownToFail k2f = LessVerboseTextListener.getAnnotation(testClass, testMethod.getName(), KnownToFail.class);
+ Remote remote = LessVerboseTextListener.getAnnotation(testClass, testMethod.getName(), Remote.class);
+ if (k2f != null) {
+ testcaseAtts.put(K2F, Boolean.TRUE.toString());
+ }
+ if (remote != null) {
+ testcaseAtts.put(REMOTE, Boolean.TRUE.toString());
+
}
openElement(TEST_ELEMENT, testcaseAtts);
if (testFailed != null) {
diff --git a/tests/junit-runner/LessVerboseTextListener.java b/tests/junit-runner/LessVerboseTextListener.java
index 828722b..8b2ccce 100644
--- a/tests/junit-runner/LessVerboseTextListener.java
+++ b/tests/junit-runner/LessVerboseTextListener.java
@@ -6,8 +6,10 @@
* http://www.eclipse.org/legal/cpl-v10.html
*/
import java.io.PrintStream;
+import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import net.sourceforge.jnlp.annotations.KnownToFail;
+import net.sourceforge.jnlp.annotations.Remote;
import org.junit.internal.JUnitSystem;
import org.junit.runner.Description;
@@ -37,6 +39,7 @@ public class LessVerboseTextListener extends RunListener {
public void testIgnored(Description description) throws Exception {
writer.println("Ignored: " + description.getClassName() + "." + description.getMethodName());
printK2F(writer, null, description);
+ printRemote(writer, description);
}
@@ -45,6 +48,7 @@ public class LessVerboseTextListener extends RunListener {
testFailed = true;
writer.println("FAILED: " + failure.getTestHeader() + " " + failure.getMessage());
printK2F(writer,true,failure.getDescription());
+ printRemote(writer, failure.getDescription());
}
@Override
@@ -52,6 +56,7 @@ public class LessVerboseTextListener extends RunListener {
if (!testFailed) {
writer.println("Passed: " + description.getClassName() + "." + description.getMethodName());
printK2F(writer,false,description);
+ printRemote(writer, description);
}
}
@@ -93,18 +98,22 @@ public class LessVerboseTextListener extends RunListener {
}
}
- public static KnownToFail getK2F(Description description) {
+
+ public static <T extends Annotation> T getAnnotation(Class q, String methodName, Class<T> a) {
try {
- Class q = description.getTestClass();
if (q != null) {
- String qs = description.getMethodName();
+ T rem = (T) q.getAnnotation(a);
+ if (rem != null) {
+ return rem;
+ }
+ String qs = methodName;
if (qs.contains(" - ")) {
qs = qs.replaceAll(" - .*", "");
}
Method qm = q.getMethod(qs);
if (qm != null) {
- KnownToFail k2f = qm.getAnnotation(KnownToFail.class);
- return k2f;
+ rem = qm.getAnnotation(a);
+ return rem;
}
}
@@ -114,4 +123,23 @@ public class LessVerboseTextListener extends RunListener {
return null;
}
+ public static KnownToFail getK2F(Description description) {
+ return (KnownToFail) getAnnotation(description.getTestClass(), description.getMethodName(), KnownToFail.class);
+ }
+
+ public static Remote getRemote(Description description) {
+ return (Remote) getAnnotation(description.getTestClass(), description.getMethodName(), Remote.class);
+
+ }
+
+ private void printRemote(PrintStream writer, Description description) {
+ try {
+ Remote rem = getRemote(description);
+ if (rem != null) {
+ writer.println(" - This test is running remote content, note that failures may be caused by broken taget application or connection");
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
}
diff --git a/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java b/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java
index 9d763ae..726cc79 100644
--- a/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java
+++ b/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java
@@ -50,6 +50,7 @@ import net.sourceforge.jnlp.SecurityDesc;
import net.sourceforge.jnlp.ServerAccess;
import net.sourceforge.jnlp.runtime.JNLPClassLoader.CodeBaseClassLoader;
import net.sourceforge.jnlp.annotations.Bug;
+import net.sourceforge.jnlp.annotations.Remote;
import org.junit.AfterClass;
import org.junit.Assert;
@@ -122,6 +123,7 @@ public class CodeBaseClassLoaderTest {
"http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017626.html",
"http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017667.html"})
@Test
+ @Remote
public void testClassResourceLoadSuccessCachingApplication() throws Exception {
setWSA();
//we are testing new resource not in cache
@@ -129,6 +131,7 @@ public class CodeBaseClassLoaderTest {
}
@Test
+ @Remote
public void testClassResourceLoadSuccessCachingApplet() throws Exception {
setApplet();
//so new resource again not in cache
@@ -136,6 +139,7 @@ public class CodeBaseClassLoaderTest {
}
@Test
+ @Remote
public void testResourceLoadSuccessCachingApplication() throws Exception {
setWSA();
//we are testing new resource not in cache
@@ -143,6 +147,7 @@ public class CodeBaseClassLoaderTest {
}
@Test
+ @Remote
public void testResourceLoadSuccessCachingApplet() throws Exception {
setApplet();
//so new resource again not in cache
@@ -196,6 +201,7 @@ public class CodeBaseClassLoaderTest {
"http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017626.html",
"http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017667.html"})
@Test
+ @Remote
public void testResourceLoadFailureCachingApplication() throws Exception {
setWSA();
testResourceCaching("net/sourceforge/jnlp/about/Main_FOO_.class", false);
@@ -208,12 +214,14 @@ public class CodeBaseClassLoaderTest {
}
@Test
+ @Remote
public void testParentClassLoaderIsAskedForClassesApplication() throws Exception {
setWSA();
testParentClassLoaderIsAskedForClasses();
}
@Test
+ @Remote
public void testParentClassLoaderIsAskedForClassesApplet() throws Exception {
setApplet();
testParentClassLoaderIsAskedForClasses();
@@ -248,6 +256,7 @@ public class CodeBaseClassLoaderTest {
}
@Test
+ @Remote
public void testNullFileSecurityDescApplet() throws Exception {
setApplet();
testNullFileSecurityDesc();
diff --git a/tests/report-styles/jreport.xsl b/tests/report-styles/jreport.xsl
index ccc6e6a..5cc3fa4 100644
--- a/tests/report-styles/jreport.xsl
+++ b/tests/report-styles/jreport.xsl
@@ -268,6 +268,11 @@ If there is no need for linking, please use value "none" for this variable
</xsl:otherwise>
</xsl:choose>
</xsl:when>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@remote">
+ <i><xsl:text> - This test is running remote content, note that failures may be caused by broken taget application or connection</xsl:text></i>
+ </xsl:when>
</xsl:choose>
</div>
</xsl:when>
@@ -279,6 +284,11 @@ If there is no need for linking, please use value "none" for this variable
<b><xsl:text> - This test is known to fail</xsl:text></b>
</xsl:when>
</xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@remote">
+ <i><xsl:text> - This test is running remote content, note that failures may be caused by broken taget application or connection</xsl:text></i>
+ </xsl:when>
+ </xsl:choose>
</div>
<div class="wtrace">
<div class="theader">
diff --git a/tests/reproducers/custom/remote/srcs/Makefile b/tests/reproducers/custom/remote/srcs/Makefile
new file mode 100644
index 0000000..6aae102
--- /dev/null
+++ b/tests/reproducers/custom/remote/srcs/Makefile
@@ -0,0 +1,5 @@
+prepare-reproducer:
+ echo "Nothing to do to prepare remote reproducers now"
+
+clean-reproducer:
+ echo "Nothing to do to clean remote reproducers now"
diff --git a/tests/reproducers/custom/remote/testcases/RemoteApplicationSettings.java b/tests/reproducers/custom/remote/testcases/RemoteApplicationSettings.java
new file mode 100644
index 0000000..99455bc
--- /dev/null
+++ b/tests/reproducers/custom/remote/testcases/RemoteApplicationSettings.java
@@ -0,0 +1,231 @@
+/* RemoteApplicationTests.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 java.net.MalformedURLException;
+import java.net.URL;
+import net.sourceforge.jnlp.ProcessResult;
+import org.junit.Assert;
+import org.junit.Test;
+
+;
+
+public class RemoteApplicationSettings {
+
+ public static final String mustEmpty = "must be empty, was not";
+ public static final String stdout = "Stdout";
+ public static final String stderr = "Stderr";
+ public static final String stdoutEmpty = stdout + " " + mustEmpty;
+ public static final String stderrEmpty = stderr + " " + mustEmpty;
+
+ public static URL createCatchedUrl(String r) {
+ try {
+ return new URL(r);
+ } catch (MalformedURLException mex) {
+ throw new RuntimeException(mex);
+ }
+ }
+
+ public interface RemoteApplicationTestcaseSettings {
+
+ public URL getUrl();
+
+ public void evaluate(ProcessResult pr);
+ }
+
+ public static abstract class StringBasedURL implements RemoteApplicationTestcaseSettings {
+
+ URL u;
+
+ @Override
+ public URL getUrl() {
+ return u;
+ }
+
+ public StringBasedURL(String r) {
+ this.u = createCatchedUrl(r);
+ }
+ }
+
+ public static class FourierTransform extends StringBasedURL {
+
+ public FourierTransform() {
+ super("http://www.cs.brown.edu/exploratories/freeSoftware/repository/edu/brown/cs/exploratories/applets/fft1DApp/1d_fast_fourier_transform_java_jnlp.jnlp");
+ }
+
+ @Override
+ public void evaluate(ProcessResult pr) {
+ Assert.assertTrue(stdoutEmpty, pr.stdout.length() == 0);
+ Assert.assertTrue(pr.stderr.length() == 0 || pr.stderr.contains(IllegalStateException.class.getName()));
+
+ }
+ }
+
+ public static class OrawebCernCh extends StringBasedURL {
+
+ public OrawebCernCh() {
+ super("https://oraweb.cern.ch/pls/atlasintegration/docs/EMDH_atlas.jnlp");
+ }
+
+ @Override
+ public void evaluate(ProcessResult pr) {
+ Assert.assertTrue(stdoutEmpty, pr.stdout.length() == 0);
+ Assert.assertTrue(pr.stderr.length() == 0 || pr.stderr.contains("Cannot grant permissions to unsigned jars. Application requested security permissions, but jars are not signed"));
+
+ }
+ }
+
+ public static class GnattProject extends StringBasedURL {
+
+ public GnattProject() {
+ super("http://ganttproject.googlecode.com/svn/webstart/ganttproject-2.0.10/ganttproject-2.0.10.jnlp");
+ }
+
+ @Override
+ public void evaluate(ProcessResult pr) {
+ Assert.assertTrue(stdout, pr.stdout.length() == 0);
+ Assert.assertTrue(pr.stderr.contains("Splash closed"));
+ Assert.assertFalse(pr.stderr.contains("Exception"));
+
+ }
+ }
+
+ public static class GeoGebra extends StringBasedURL {
+
+ public GeoGebra() {
+ super("http://www.geogebra.org/webstart/geogebra.jnlp");
+ }
+
+ @Override
+ public void evaluate(ProcessResult pr) {
+ Assert.assertTrue(pr.stdout.length() > 0);
+ Assert.assertTrue(pr.stderr.length() > 0);
+ Assert.assertFalse(pr.stderr.contains("Exception"));
+ Assert.assertFalse(pr.stdout.contains("Exception"));
+
+ }
+ }
+
+ public abstract static class NoOutputs extends StringBasedURL {
+
+ public NoOutputs(String r) {
+ super(r);
+ }
+
+ @Override
+ public void evaluate(ProcessResult pr) {
+ Assert.assertTrue(stdoutEmpty, pr.stdout.length() == 0);
+ Assert.assertTrue(stderrEmpty, pr.stderr.length() == 0);
+
+ }
+ }
+
+ public static class Arbores extends NoOutputs {
+
+ public Arbores() {
+ super("http://www.arbores.ca/AnnuityCalc.jnlp");
+ }
+ }
+
+ public static class PhetSims extends NoOutputs {
+
+ public PhetSims() {
+ super("http://phetsims.colorado.edu/sims/circuit-construction-kit/circuit-construction-kit-dc_en.jnlp");
+ }
+ }
+
+ public static class TopCoder extends NoOutputs {
+
+ public TopCoder() {
+ super("http://www.topcoder.com/contest/arena/ContestAppletProd.jnlp");
+ }
+ }
+
+ public static class SunSwingDemo extends NoOutputs {
+
+ public SunSwingDemo() throws MalformedURLException {
+ super("http://java.sun.com/docs/books/tutorialJWS/uiswing/events/ex6/ComponentEventDemo.jnlp");
+ }
+ }
+
+ public static class ArboresDeposit extends NoOutputs {
+
+ public ArboresDeposit() throws MalformedURLException {
+ super("http://www.arbores.ca/Deposit.jnlp");
+ }
+ }
+
+ public static class AviationWeather extends NoOutputs {
+
+ public AviationWeather() {
+ super("http://aviationweather.gov/static/adds/java/fpt/fpt.jnlp");
+ }
+ }
+
+ public static class FuseSwing extends NoOutputs {
+
+ public FuseSwing() {
+ super("http://www.progx.org/users/Gfx/apps/fuse-swing-demo.jnlp");
+ }
+ }
+
+ @Test
+ public void remoteApplicationSettingsAreWorking() throws Exception {
+ RemoteApplicationTestcaseSettings s5 = new FourierTransform();
+ Assert.assertNotNull(s5.getUrl());
+ RemoteApplicationTestcaseSettings s4 = new Arbores();
+ Assert.assertNotNull(s4.getUrl());
+ RemoteApplicationTestcaseSettings s3 = new PhetSims();
+ Assert.assertNotNull(s3.getUrl());
+ RemoteApplicationTestcaseSettings s2 = new TopCoder();
+ Assert.assertNotNull(s2.getUrl());
+ RemoteApplicationTestcaseSettings s1 = new SunSwingDemo();
+ Assert.assertNotNull(s1.getUrl());
+ RemoteApplicationTestcaseSettings s6 = new ArboresDeposit();
+ Assert.assertNotNull(s6.getUrl());
+ RemoteApplicationTestcaseSettings s7 = new OrawebCernCh();
+ Assert.assertNotNull(s7.getUrl());
+ RemoteApplicationTestcaseSettings s8 = new AviationWeather();
+ Assert.assertNotNull(s8.getUrl());
+ RemoteApplicationTestcaseSettings s9 = new FuseSwing();
+ Assert.assertNotNull(s9.getUrl());
+ RemoteApplicationTestcaseSettings s10 = new GnattProject();
+ Assert.assertNotNull(s10.getUrl());
+ RemoteApplicationTestcaseSettings s11 = new GeoGebra();
+ Assert.assertNotNull(s11.getUrl());
+
+ }
+}
diff --git a/tests/reproducers/custom/remote/testcases/RemoteApplicationTests.java b/tests/reproducers/custom/remote/testcases/RemoteApplicationTests.java
new file mode 100644
index 0000000..4152db8
--- /dev/null
+++ b/tests/reproducers/custom/remote/testcases/RemoteApplicationTests.java
@@ -0,0 +1,144 @@
+/* RemoteApplicationTests.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 java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import net.sourceforge.jnlp.ProcessResult;
+import net.sourceforge.jnlp.ServerAccess;
+import net.sourceforge.jnlp.annotations.KnownToFail;
+import net.sourceforge.jnlp.annotations.NeedsDisplay;
+import net.sourceforge.jnlp.annotations.Remote;
+import org.junit.Test;
+
+@Remote
+public class RemoteApplicationTests {
+
+ private static ServerAccess server = new ServerAccess();
+ private final List<String> l = Collections.unmodifiableList(Arrays.asList(new String[]{"-Xtrustall"}));
+ private final List<String> ll = Collections.unmodifiableList(Arrays.asList(new String[]{"-Xtrustall", "-Xnofork"}));
+
+ @Test
+ @NeedsDisplay
+ public void topCoderRemoteTest() throws Exception {
+ RemoteApplicationSettings.RemoteApplicationTestcaseSettings settings = new RemoteApplicationSettings.TopCoder();
+ ProcessResult pr = server.executeJavawsUponUrl(ll, settings.getUrl());
+ settings.evaluate(pr);
+ }
+
+ @Test
+ @NeedsDisplay
+ public void sunSwingRemoteTest() throws Exception {
+ RemoteApplicationSettings.RemoteApplicationTestcaseSettings settings = new RemoteApplicationSettings.SunSwingDemo();
+ ProcessResult pr = server.executeJavawsUponUrl(l, settings.getUrl());
+ settings.evaluate(pr);
+ }
+
+ @Test
+ @NeedsDisplay
+ public void fourierTransformRemoteTest() throws Exception {
+ RemoteApplicationSettings.RemoteApplicationTestcaseSettings settings = new RemoteApplicationSettings.FourierTransform();
+ ProcessResult pr = server.executeJavawsUponUrl(null, settings.getUrl());
+ settings.evaluate(pr);
+ }
+
+ @Test
+ @NeedsDisplay
+ public void arboresRemoteTest() throws Exception {
+ RemoteApplicationSettings.RemoteApplicationTestcaseSettings settings = new RemoteApplicationSettings.Arbores();
+ ProcessResult pr = server.executeJavawsUponUrl(l, settings.getUrl());
+ settings.evaluate(pr);
+ }
+
+ @Test
+ @NeedsDisplay
+ public void phetsimsRemoteTest() throws Exception {
+ RemoteApplicationSettings.RemoteApplicationTestcaseSettings settings = new RemoteApplicationSettings.PhetSims();
+ ProcessResult pr = server.executeJavawsUponUrl(l, settings.getUrl());
+ settings.evaluate(pr);
+ }
+
+ @Test
+ @NeedsDisplay
+ public void arboresDepositRemoteTest() throws Exception {
+ RemoteApplicationSettings.RemoteApplicationTestcaseSettings settings = new RemoteApplicationSettings.ArboresDeposit();
+ ProcessResult pr = server.executeJavawsUponUrl(l, settings.getUrl());
+ settings.evaluate(pr);
+ }
+
+ /* This application need all permissions, but contains unsigned jar. Have exception but works at least somehow
+ */
+ @Test
+ @NeedsDisplay
+ public void orawebCernChRemoteTest() throws Exception {
+ RemoteApplicationSettings.RemoteApplicationTestcaseSettings settings = new RemoteApplicationSettings.OrawebCernCh();
+ ProcessResult pr = server.executeJavawsUponUrl(ll, settings.getUrl());
+ settings.evaluate(pr);
+ }
+
+ @Test
+ @NeedsDisplay
+ public void AviationWeatherRemoteTest() throws Exception {
+ RemoteApplicationSettings.RemoteApplicationTestcaseSettings settings = new RemoteApplicationSettings.AviationWeather();
+ ProcessResult pr = server.executeJavawsUponUrl(ll, settings.getUrl());
+ settings.evaluate(pr);
+ }
+
+ @Test
+ @NeedsDisplay
+ public void fuseSysRemoteTest() throws Exception {
+ RemoteApplicationSettings.RemoteApplicationTestcaseSettings settings = new RemoteApplicationSettings.FuseSwing();
+ ProcessResult pr = server.executeJavawsUponUrl(l, settings.getUrl());
+ settings.evaluate(pr);
+ }
+
+ @Test
+ @NeedsDisplay
+ public void gantProjectRemoteTest() throws Exception {
+ RemoteApplicationSettings.RemoteApplicationTestcaseSettings settings = new RemoteApplicationSettings.GnattProject();
+ ProcessResult pr = server.executeJavawsUponUrl(l, settings.getUrl());
+ settings.evaluate(pr);
+ }
+
+ @Test
+ @NeedsDisplay
+ public void geogebraRemoteTest() throws Exception {
+ RemoteApplicationSettings.RemoteApplicationTestcaseSettings settings = new RemoteApplicationSettings.GeoGebra();
+ ProcessResult pr = server.executeJavawsUponUrl(ll, settings.getUrl());
+ settings.evaluate(pr);
+ }
+}
diff --git a/tests/test-extensions/net/sourceforge/jnlp/annotations/Remote.java b/tests/test-extensions/net/sourceforge/jnlp/annotations/Remote.java
new file mode 100644
index 0000000..300d065
--- /dev/null
+++ b/tests/test-extensions/net/sourceforge/jnlp/annotations/Remote.java
@@ -0,0 +1,52 @@
+/* Bug.java
+Copyright (C) 2012 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.
+ */
+
+package net.sourceforge.jnlp.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Mark for tests running content on remote servers
+ */
+@Target({ElementType.TYPE,ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Remote {
+
+}