diff options
-rw-r--r-- | ChangeLog | 18 | ||||
-rw-r--r-- | tests/junit-runner/JunitLikeXmlOutputListener.java | 21 | ||||
-rw-r--r-- | tests/junit-runner/LessVerboseTextListener.java | 38 | ||||
-rw-r--r-- | tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java | 9 | ||||
-rw-r--r-- | tests/report-styles/jreport.xsl | 10 | ||||
-rw-r--r-- | tests/reproducers/custom/remote/srcs/Makefile | 5 | ||||
-rw-r--r-- | tests/reproducers/custom/remote/testcases/RemoteApplicationSettings.java | 231 | ||||
-rw-r--r-- | tests/reproducers/custom/remote/testcases/RemoteApplicationTests.java | 144 | ||||
-rw-r--r-- | tests/test-extensions/net/sourceforge/jnlp/annotations/Remote.java | 52 |
9 files changed, 513 insertions, 15 deletions
@@ -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 { + +} |