aboutsummaryrefslogtreecommitdiffstats
path: root/tests/netx/unit/net/sourceforge
diff options
context:
space:
mode:
authorDanesh Dadachanji <[email protected]>2012-06-04 13:35:25 -0400
committerDanesh Dadachanji <[email protected]>2012-06-04 13:35:25 -0400
commitb6a2b55190c36fd9b42fdb3c61e8ff0e06776263 (patch)
tree194690c969f4375fa9e690ccb81446944e2fda3f /tests/netx/unit/net/sourceforge
parent9a31bacf619e4f9ffa32fb6c1e348079db2d417c (diff)
Handle absolute paths passed into jnlp_href's value.
Diffstat (limited to 'tests/netx/unit/net/sourceforge')
-rw-r--r--tests/netx/unit/net/sourceforge/jnlp/PluginBridgeTest.java99
1 files changed, 99 insertions, 0 deletions
diff --git a/tests/netx/unit/net/sourceforge/jnlp/PluginBridgeTest.java b/tests/netx/unit/net/sourceforge/jnlp/PluginBridgeTest.java
new file mode 100644
index 0000000..c006fef
--- /dev/null
+++ b/tests/netx/unit/net/sourceforge/jnlp/PluginBridgeTest.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2012 Red Hat, Inc.
+ * This file is part of IcedTea, http://icedtea.classpath.org
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+package net.sourceforge.jnlp;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Hashtable;
+
+import net.sourceforge.jnlp.cache.UpdatePolicy;
+
+import org.junit.Test;
+
+public class PluginBridgeTest {
+ private class MockJNLPCreator extends JNLPCreator {
+
+ private URL JNLPHref;
+
+ public URL getJNLPHref() {
+ return JNLPHref;
+ }
+
+ public JNLPFile create(URL location, Version version, boolean strict,
+ UpdatePolicy policy, URL forceCodebase) throws IOException, ParseException {
+ JNLPHref = location;
+ return new MockJNLPFile();
+ }
+ }
+
+ private class MockJNLPFile extends JNLPFile {
+ public AppletDesc getApplet() {
+ return new AppletDesc(null, null, null, 0, 0, new HashMap<String, String>());
+ }
+
+ public ResourcesDesc getResources() {
+ return new ResourcesDesc(null, null, null, null);
+ }
+ }
+
+ @Test
+ public void testAbsoluteJNLPHref() throws MalformedURLException, Exception {
+ URL codeBase = new URL("http://undesired.absolute.codebase.com");
+ String absoluteLocation = "http://absolute.href.com/test.jnlp";
+ Hashtable<String, String> atts = new Hashtable<String, String>();
+ atts.put("jnlp_href", absoluteLocation);
+ MockJNLPCreator mockCreator = new MockJNLPCreator();
+ PluginBridge pb = new PluginBridge(codeBase, null, "", "", 0, 0, atts, "", mockCreator);
+ assertEquals(absoluteLocation, mockCreator.getJNLPHref().toExternalForm());
+ }
+
+ @Test
+ public void testRelativeJNLPHref() throws MalformedURLException, Exception {
+ URL codeBase = new URL("http://desired.absolute.codebase.com/");
+ String relativeLocation = "sub/dir/test.jnlp";
+ Hashtable<String, String> atts = new Hashtable<String, String>();
+ atts.put("jnlp_href", relativeLocation);
+ MockJNLPCreator mockCreator = new MockJNLPCreator();
+ PluginBridge pb = new PluginBridge(codeBase, null, "", "", 0, 0, atts, "", mockCreator);
+ assertEquals(codeBase.toExternalForm() + relativeLocation,
+ mockCreator.getJNLPHref().toExternalForm());
+ }
+
+ @Test
+ public void testNoSubDirInCodeBase() throws MalformedURLException, Exception {
+ String desiredDomain = "http://desired.absolute.codebase.com";
+ URL codeBase = new URL(desiredDomain + "/undesired/sub/dir");
+ String relativeLocation = "/app/test/test.jnlp";
+ Hashtable<String, String> atts = new Hashtable<String, String>();
+ atts.put("jnlp_href", relativeLocation);
+ MockJNLPCreator mockCreator = new MockJNLPCreator();
+ PluginBridge pb = new PluginBridge(codeBase, null, "", "", 0, 0, atts, "", mockCreator);
+ assertEquals(desiredDomain + relativeLocation,
+ mockCreator.getJNLPHref().toExternalForm());
+ }
+
+} \ No newline at end of file