aboutsummaryrefslogtreecommitdiffstats
path: root/tests/netx/unit/net/sourceforge/jnlp/ParserTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/netx/unit/net/sourceforge/jnlp/ParserTest.java')
-rw-r--r--tests/netx/unit/net/sourceforge/jnlp/ParserTest.java57
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/netx/unit/net/sourceforge/jnlp/ParserTest.java b/tests/netx/unit/net/sourceforge/jnlp/ParserTest.java
index 47b3010..7def639 100644
--- a/tests/netx/unit/net/sourceforge/jnlp/ParserTest.java
+++ b/tests/netx/unit/net/sourceforge/jnlp/ParserTest.java
@@ -38,6 +38,7 @@ exception statement from your version.
package net.sourceforge.jnlp;
import java.io.ByteArrayInputStream;
+import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
@@ -1355,4 +1356,60 @@ public class ParserTest {
parser.checkForInformation();
}
+
+ @Test
+ public void testOverwrittenCodebaseWithValidJnlpCodebase() throws Exception {
+ String data = "<?xml version=\"1.0\"?>\n" +
+ "<jnlp spec=\"1.5+\"\n" +
+ "href=\"EmbeddedJnlpFile.jnlp\"\n" +
+ "codebase=\"http://www.redhat.com/\"\n" +
+ ">\n" +
+ "</jnlp>";
+
+ Node root = Parser.getRootNode(new ByteArrayInputStream(data.getBytes()));
+ Assert.assertEquals("Root name is not jnlp", "jnlp", root.getNodeName());
+ URL overwrittenCodebase = new URL("http://icedtea.classpath.org");
+
+ MockJNLPFile file = new MockJNLPFile(LANG_LOCALE);
+ Parser parser = new Parser(file, null, root, false, false, overwrittenCodebase);
+
+ Assert.assertEquals("http://www.redhat.com/", parser.getCodeBase().toExternalForm());
+ }
+
+ @Test
+ public void testOverwrittenCodebaseWithInvalidJnlpCodebase() throws Exception {
+ String data = "<?xml version=\"1.0\"?>\n" +
+ "<jnlp spec=\"1.5+\"\n" +
+ "href=\"EmbeddedJnlpFile.jnlp\"\n" +
+ "codebase=\"this codebase is incorrect\"\n" +
+ ">\n" +
+ "</jnlp>";
+
+ Node root = Parser.getRootNode(new ByteArrayInputStream(data.getBytes()));
+ Assert.assertEquals("Root name is not jnlp", "jnlp", root.getNodeName());
+ URL overwrittenCodebase = new URL("http://icedtea.classpath.org");
+
+ MockJNLPFile file = new MockJNLPFile(LANG_LOCALE);
+ Parser parser = new Parser(file, null, root, false, false, overwrittenCodebase);
+
+ Assert.assertEquals(overwrittenCodebase.toExternalForm(), parser.getCodeBase().toExternalForm());
+ }
+
+ @Test
+ public void testOverwrittenCodebaseWithNoJnlpCodebase() throws Exception {
+ String data = "<?xml version=\"1.0\"?>\n" +
+ "<jnlp spec=\"1.5+\"\n" +
+ "href=\"EmbeddedJnlpFile.jnlp\"\n" +
+ ">\n" +
+ "</jnlp>";
+
+ Node root = Parser.getRootNode(new ByteArrayInputStream(data.getBytes()));
+ Assert.assertEquals("Root name is not jnlp", "jnlp", root.getNodeName());
+ URL overwrittenCodebase = new URL("http://icedtea.classpath.org");
+
+ MockJNLPFile file = new MockJNLPFile(LANG_LOCALE);
+ Parser parser = new Parser(file, null, root, false, false, overwrittenCodebase);
+
+ Assert.assertEquals(overwrittenCodebase.toExternalForm(), parser.getCodeBase().toExternalForm());
+ }
}