diff options
Diffstat (limited to 'tests/netx/unit/net/sourceforge/jnlp/ParserTest.java')
-rw-r--r-- | tests/netx/unit/net/sourceforge/jnlp/ParserTest.java | 57 |
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()); + } } |