diff --git a/.woodpecker.yml b/.woodpecker.yml index b2f8907..6cde0a1 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,4 +1,9 @@ pipeline: + test: + image: maven:3-jdk-11 + commands: + - mvn test + build: image: maven:3-jdk-11 commands: diff --git a/src/main/java/tech/bitgoblin/io/IOUtils.java b/src/main/java/tech/bitgoblin/io/IOUtils.java index 237cfe7..a5363de 100644 --- a/src/main/java/tech/bitgoblin/io/IOUtils.java +++ b/src/main/java/tech/bitgoblin/io/IOUtils.java @@ -14,9 +14,9 @@ public class IOUtils { } public static String resolveTilda(String path) { - if (path.startsWith("~" + File.separator)) { + if (path.startsWith("~" + File.separator) || path.equals("~")) { path = System.getProperty("user.home") + path.substring(1); - } else if (path.startsWith("~")) { + } else if ((!path.equals("~")) && path.startsWith("~")) { // here you can implement reading homedir of other users if you care throw new UnsupportedOperationException("Home dir expansion not implemented for explicit usernames"); } diff --git a/src/test/java/tech/bitgoblin/io/IOUtilsTest.java b/src/test/java/tech/bitgoblin/io/IOUtilsTest.java new file mode 100644 index 0000000..be41884 --- /dev/null +++ b/src/test/java/tech/bitgoblin/io/IOUtilsTest.java @@ -0,0 +1,28 @@ +package tech.bitgoblin.io; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import java.io.File; + +public class IOUtilsTest { + + @Test + public void shouldCreateDirectory() { + IOUtils.createDirectory("test-temp.txt"); + assertTrue(new File("test-temp.txt").exists()); + } + + @Test + public void shouldExpandTilda() { + String homeExpanded = IOUtils.resolveTilda("~"); + assertTrue(!homeExpanded.equals("~")); + } + + @Test(expected=UnsupportedOperationException.class) + public void shouldFailExpandExplicitTilda() { + IOUtils.resolveTilda("~test"); + } + +}