changeset 1446:c72a8aea9450

Windows desktop path attempted to be handled correctly * netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java: adapted to new name * netx/net/sourceforge/jnlp/util/XDesktopEntry.java: added windows desktop locating * tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java: on windows excluded xdg tests. Added test for windows desktop
author Jiri Vanek <jvanek@redhat.com>
date Mon, 22 May 2017 19:59:53 +0200
parents 483cc3f4db73
children c8563e8bfc2b
files ChangeLog netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java netx/net/sourceforge/jnlp/util/XDesktopEntry.java tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java
diffstat 4 files changed, 54 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon May 22 19:33:13 2017 +0200
+++ b/ChangeLog	Mon May 22 19:59:53 2017 +0200
@@ -1,3 +1,12 @@
+2017-05-22  Jiri Vanek <jvanek@redhat.com>
+
+	Windows desktop path attempted to be handled correctly
+	* netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java: adapted to new name
+	* netx/net/sourceforge/jnlp/util/XDesktopEntry.java: added windows desktop locating
+	* tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java: on windows excluded xdg tests. Added test
+	for windows desktop
+
+
 2017-05-22  Jiri Vanek <jvanek@redhat.com>
             Tomáš Votava <tomcacolca@gmail.com>
 
--- a/netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java	Mon May 22 19:33:13 2017 +0200
+++ b/netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java	Mon May 22 19:59:53 2017 +0200
@@ -152,7 +152,7 @@
     private void addMenuAndDesktopEntries() {
         XDesktopEntry entry = new XDesktopEntry(file);
         ShortcutDesc sd = file.getInformation().getShortcut();
-        File possibleDesktopFile = entry.getLinuxDesktopIconFile();
+        File possibleDesktopFile = entry.getDesktopIconFile();
         File possibleMenuFile = entry.getLinuxMenuIconFile();
         File generatedJnlp = entry.getGeneratedJnlpFileName();
         //if one of menu or desktop exists, do not bother user
--- a/netx/net/sourceforge/jnlp/util/XDesktopEntry.java	Mon May 22 19:33:13 2017 +0200
+++ b/netx/net/sourceforge/jnlp/util/XDesktopEntry.java	Mon May 22 19:59:53 2017 +0200
@@ -37,6 +37,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import javax.swing.filechooser.FileSystemView;
 
 import net.sourceforge.jnlp.IconDesc;
 import net.sourceforge.jnlp.JNLPFile;
@@ -498,8 +499,16 @@
         return sanitize(file.createJnlpTitle());
     }
 
-    public File getLinuxDesktopIconFile() {
-        return new File(findFreedesktopOrgDesktopPathCatch() + "/" + getDesktopIconFileName());
+    public File getDesktopIconFile() {
+            return new File(getDesktop(), getDesktopIconFileName());
+    }
+    public static File getDesktop(){
+        if (JNLPRuntime.isWindows()) {
+            FileSystemView filesys = FileSystemView.getFileSystemView();
+            return filesys.getHomeDirectory();
+        } else {
+            return new File(findFreedesktopOrgDesktopPathCatch());
+        }
     }
 
     public File getLinuxMenuIconFile() {
--- a/tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java	Mon May 22 19:33:13 2017 +0200
+++ b/tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java	Mon May 22 19:59:53 2017 +0200
@@ -52,6 +52,7 @@
 import net.sourceforge.jnlp.PluginBridgeTest;
 import net.sourceforge.jnlp.ServerAccess;
 import net.sourceforge.jnlp.annotations.KnownToFail;
+import net.sourceforge.jnlp.annotations.WindowsIssue;
 import net.sourceforge.jnlp.mock.DummyJNLPFileWithJar;
 import net.sourceforge.jnlp.runtime.JNLPRuntime;
 import net.sourceforge.jnlp.security.dialogresults.AccessWarningPaneComplexReturn;
@@ -174,33 +175,48 @@
     }
 
     @Test
+    @WindowsIssue
     public void getFreedesktopOrgDesktopPathFromtestSimpleWithHome() throws IOException {
-        String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src4)));
-        Assert.assertEquals(s, des2Res);
+        if (JNLPRuntime.isUnix()) {
+            String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src4)));
+            Assert.assertEquals(s, des2Res);
+        }
     }
 
     @Test
+    @WindowsIssue
     public void getFreedesktopOrgDesktopPathFromtestSpacedWithHome() throws IOException {
-        String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src5)));
-        Assert.assertEquals(s, des2Res);
+        if (JNLPRuntime.isUnix()) {
+            String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src5)));
+            Assert.assertEquals(s, des2Res);
+        }
     }
 
     @Test
+    @WindowsIssue
     public void getFreedesktopOrgDesktopPathFromtestSpacedWithHomeAndQuotes() throws IOException {
-        String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src7)));
-        Assert.assertEquals(s, des7res);
+        if (JNLPRuntime.isUnix()) {
+            String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src7)));
+            Assert.assertEquals(s, des7res);
+        }
     }
 
     @Test
+    @WindowsIssue
     public void getFreedesktopOrgDesktopPathFromtestSpacedWithHomeAndEscapedQuotes() throws IOException {
-        String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src8)));
-        Assert.assertEquals(s, des8res);
+        if (JNLPRuntime.isUnix()) {
+            String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src8)));
+            Assert.assertEquals(s, des8res);
+        }
     }
 
     @Test
+    @WindowsIssue
     public void getFreedesktopOrgDesktopPathFromtestSpacedWithHomeAndMixedQuotes() throws IOException {
-        String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src9)));
-        Assert.assertEquals(s, des9res);
+        if (JNLPRuntime.isUnix()) {
+            String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src9)));
+            Assert.assertEquals(s, des9res);
+        }
     }
 
     @Test(expected = IOException.class)
@@ -208,6 +224,11 @@
         String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src6)));
     }
 
+    @Test
+    public void desktopPath() {
+            Assert.assertTrue(XDesktopEntry.getDesktop().getAbsolutePath().startsWith(System.getProperty("user.home")));;
+    }
+
     private static void envToString() {
         mapToString(System.getenv());
     }
@@ -224,7 +245,7 @@
         JNLPFile jnlpf = new DummyJnlpWithTitle();
         XDesktopEntry xde = new XDesktopEntry(jnlpf);
         File f1 = xde.getShortcutTmpFile();
-        File f2 = xde.getLinuxDesktopIconFile();
+        File f2 = xde.getDesktopIconFile();
         File f3 = xde.getLinuxMenuIconFile();
         Assert.assertEquals(f1.getName(), f2.getName());
         Assert.assertEquals(f2.getName(), f3.getName());
@@ -282,4 +303,4 @@
         }
 
     };
-}
\ No newline at end of file
+}