changeset 1233:9d92f5640f83

Improved caching of files obtained via query
author Jiri Vanek <jvanek@redhat.com>
date Wed, 27 May 2015 16:56:55 +0200
parents 6e7d203b9374
children 4e3281c63564
files ChangeLog netx/net/sourceforge/jnlp/cache/CacheUtil.java tests/netx/unit/net/sourceforge/jnlp/cache/CacheUtilTest.java tests/netx/unit/net/sourceforge/jnlp/cache/ResourceDownloaderTest.java
diffstat 4 files changed, 31 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri May 22 19:34:22 2015 +0200
+++ b/ChangeLog	Wed May 27 16:56:55 2015 +0200
@@ -1,3 +1,13 @@
+2015-05-27  Jiri Vanek  <jvanek@redhat.com>
+
+	Improved caching of files obtained via query
+	* netx/net/sourceforge/jnlp/cache/CacheUtil.java: now consider also query(if any)
+	when creating file-name for item to be cached
+	* tests/netx/unit/net/sourceforge/jnlp/cache/CacheUtilTest.java: fixed old
+	tests due to change and added two new tests to test change.
+	* tests/netx/unit/net/sourceforge/jnlp/cache/ResourceDownloaderTest.java:
+	removed unused import.
+
 2015-05-22  Jiri Vanek  <jvanek@redhat.com>
 
 	Comments in deployment.properties now persists saving via itweb-settings
--- a/netx/net/sourceforge/jnlp/cache/CacheUtil.java	Fri May 22 19:34:22 2015 +0200
+++ b/netx/net/sourceforge/jnlp/cache/CacheUtil.java	Wed May 27 16:56:55 2015 +0200
@@ -481,6 +481,9 @@
         path.append(location.getHost());
         path.append(File.separatorChar);
         path.append(location.getPath().replace('/', File.separatorChar));
+        if (location.getQuery() != null && !location.getQuery().trim().isEmpty()) {
+            path.append(".").append(location.getQuery());
+        }
 
         return new File(FileUtils.sanitizePath(path.toString()));
     }
--- a/tests/netx/unit/net/sourceforge/jnlp/cache/CacheUtilTest.java	Fri May 22 19:34:22 2015 +0200
+++ b/tests/netx/unit/net/sourceforge/jnlp/cache/CacheUtilTest.java	Wed May 27 16:56:55 2015 +0200
@@ -58,7 +58,24 @@
     @Test
     public void testUrlToPath() throws Exception {
         final URL u = new URL("https://example.com/applet/some:weird*applet?.jar");
-        final File expected = new File("/tmp/https/example.com/applet/some_weird_applet");
+        //stuf behind querry is kept
+        final File expected = new File("/tmp/https/example.com/applet/some_weird_applet..jar");
+        Assert.assertEquals(expected, CacheUtil.urlToPath(u, "/tmp"));
+    }
+    
+    
+    @Test
+    public void testUrlToPathWithQuery() throws Exception {
+        final URL u = new URL("https://example.com/applet/applet.php?id=applet5");
+        //querry is kept and sanitized
+        final File expected = new File("/tmp/https/example.com/applet/applet.php.id_applet5");
+        Assert.assertEquals(expected, CacheUtil.urlToPath(u, "/tmp"));
+    }
+    @Test
+    public void testUrlToPathWithoutQuery() throws Exception {
+        final URL u = new URL("https://example.com/applet/applet.php");
+        //no doubledot is caused by patch adding query to file
+        final File expected = new File("/tmp/https/example.com/applet/applet.php");
         Assert.assertEquals(expected, CacheUtil.urlToPath(u, "/tmp"));
     }
 }
--- a/tests/netx/unit/net/sourceforge/jnlp/cache/ResourceDownloaderTest.java	Fri May 22 19:34:22 2015 +0200
+++ b/tests/netx/unit/net/sourceforge/jnlp/cache/ResourceDownloaderTest.java	Wed May 27 16:56:55 2015 +0200
@@ -29,7 +29,6 @@
 import net.sourceforge.jnlp.ServerAccess;
 import net.sourceforge.jnlp.ServerLauncher;
 import net.sourceforge.jnlp.Version;
-import net.sourceforge.jnlp.config.DeploymentConfiguration;
 import net.sourceforge.jnlp.config.PathsAndFiles;
 import net.sourceforge.jnlp.runtime.JNLPRuntime;
 import net.sourceforge.jnlp.util.JarFile;