Mercurial > hg > release > icedtea-web-1.7
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 +}