diff --git a/src/main/java/org/cryptomator/common/Environment.java b/src/main/java/org/cryptomator/common/Environment.java index adb143fa5..66374fc17 100644 --- a/src/main/java/org/cryptomator/common/Environment.java +++ b/src/main/java/org/cryptomator/common/Environment.java @@ -2,7 +2,6 @@ package org.cryptomator.common; import com.google.common.base.Splitter; import com.google.common.base.Strings; -import org.apache.commons.lang3.SystemUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -80,7 +79,7 @@ public class Environment { return getPaths(P12_PATH_PROP_NAME); } - public Stream ipcSocketPath() { + public Stream getIpcSocketPath() { return getPaths(IPC_SOCKET_PATH_PROP_NAME); } @@ -131,7 +130,7 @@ public class Environment { } // visible for testing - public Stream getPaths(String propertyName) { + Stream getPaths(String propertyName) { Stream rawSettingsPaths = getRawList(propertyName, PATH_LIST_SEP); return rawSettingsPaths.filter(Predicate.not(Strings::isNullOrEmpty)).map(Path::of); } diff --git a/src/main/java/org/cryptomator/launcher/Cryptomator.java b/src/main/java/org/cryptomator/launcher/Cryptomator.java index d6bafa489..f395abf52 100644 --- a/src/main/java/org/cryptomator/launcher/Cryptomator.java +++ b/src/main/java/org/cryptomator/launcher/Cryptomator.java @@ -94,7 +94,7 @@ public class Cryptomator { * Attempts to create an IPC connection to a running Cryptomator instance and sends it the given args. * If no external process could be reached, the args will be handled by the loopback IPC endpoint. */ - try (var communicator = IpcCommunicator.create(env.ipcSocketPath().toList())) { + try (var communicator = IpcCommunicator.create(env.getIpcSocketPath().toList())) { if (communicator.isClient()) { communicator.sendHandleLaunchargs(List.of(args)); communicator.sendRevealRunningApp(); diff --git a/src/test/java/org/cryptomator/common/EnvironmentTest.java b/src/test/java/org/cryptomator/common/EnvironmentTest.java index 714d603f0..d0dc3ec44 100644 --- a/src/test/java/org/cryptomator/common/EnvironmentTest.java +++ b/src/test/java/org/cryptomator/common/EnvironmentTest.java @@ -13,6 +13,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; import java.util.Optional; +import java.util.stream.Stream; @DisplayName("Environment Variables Test") public class EnvironmentTest { @@ -34,8 +35,8 @@ public class EnvironmentTest { } @Nested - @DisplayName("Path Lists") - public class SettingsPath { + @DisplayName("Testing parsing path lists") + public class PathLists { @Test @DisplayName("test.path.property=") @@ -48,7 +49,7 @@ public class EnvironmentTest { @Test @DisplayName("test.path.property=/foo/bar/test") - public void testSingleAbsolutePath() { + public void testSinglePath() { System.setProperty("test.path.property", "/foo/bar/test"); List result = env.getPaths("test.path.property").toList(); @@ -56,6 +57,45 @@ public class EnvironmentTest { MatcherAssert.assertThat(result, Matchers.hasItem(Paths.get("/foo/bar/test"))); } + @Test + @DisplayName("test.path.property=/foo/bar/test:/bar/nez/tost") + public void testTwoPaths() { + System.setProperty("test.path.property", "/foo/bar/test:bar/nez/tost"); + List result = env.getPaths("test.path.property").toList(); + + MatcherAssert.assertThat(result, Matchers.hasSize(2)); + MatcherAssert.assertThat(result, Matchers.hasItems(Path.of("/foo/bar/test"), Path.of("bar/nez/tost"))); + } + + } + + @Nested + public class VariablesContainingPathLists { + + @Test + public void testSettingsPath() { + Mockito.doReturn(Stream.of()).when(env).getPaths(Mockito.anyString()); + env.getSettingsPath(); + Mockito.verify(env).getPaths("cryptomator.settingsPath"); + } + @Test + public void testP12Path() { + Mockito.doReturn(Stream.of()).when(env).getPaths(Mockito.anyString()); + env.getP12Path(); + Mockito.verify(env).getPaths("cryptomator.p12Path"); + } + @Test + public void testIpcSocketPath() { + Mockito.doReturn(Stream.of()).when(env).getPaths(Mockito.anyString()); + env.getIpcSocketPath(); + Mockito.verify(env).getPaths("cryptomator.ipcSocketPath"); + } + @Test + public void testKeychainPath() { + Mockito.doReturn(Stream.of()).when(env).getPaths(Mockito.anyString()); + env.getKeychainPath(); + Mockito.verify(env).getPaths("cryptomator.integrationsWin.keychainPaths"); + } } }