diff --git a/components/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java b/components/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java
index ccdf0bc0e..4973d5224 100644
--- a/components/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java
+++ b/components/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java
@@ -10,8 +10,9 @@ class LinuxRemovableDriveFinder extends UnixRemovableDriveFinder {
@Override
protected String parseMountPoint(String line) {
// The format is "/dev/foo on /bar/baz type bam (opt1,opt2)"
- line = line.replaceFirst("^/dev/[^ ]+ on ", "");
- return line.replaceFirst(" type [^ ]+ \\([^)]+\\)$", "");
+ String pattern = "^/dev/[^ ]+ on (.*) type [^ ]+ \\([^)]+\\)$";
+ String path = line.replaceFirst(pattern, "$1");
+ return path.equals(line) ? null : path;
}
@Override
diff --git a/components/net/sf/briar/plugins/file/MacRemovableDriveFinder.java b/components/net/sf/briar/plugins/file/MacRemovableDriveFinder.java
index ec1ae0708..453a3d836 100644
--- a/components/net/sf/briar/plugins/file/MacRemovableDriveFinder.java
+++ b/components/net/sf/briar/plugins/file/MacRemovableDriveFinder.java
@@ -10,8 +10,9 @@ class MacRemovableDriveFinder extends UnixRemovableDriveFinder {
@Override
protected String parseMountPoint(String line) {
// The format is "/dev/foo on /bar/baz (opt1, opt2)"
- line = line.replaceFirst("^/dev/[^ ]+ on ", "");
- return line.replaceFirst(" \\([^)]+\\)$", "");
+ String pattern = "^/dev/[^ ]+ on (.*) \\([^)]+\\)$";
+ String path = line.replaceFirst(pattern, "$1");
+ return path.equals(line) ? null : path;
}
@Override
diff --git a/test/build.xml b/test/build.xml
index 73ecb1176..bb3559148 100644
--- a/test/build.xml
+++ b/test/build.xml
@@ -25,6 +25,8 @@
+
+
diff --git a/test/net/sf/briar/plugins/file/LinuxRemovableDriveFinderTest.java b/test/net/sf/briar/plugins/file/LinuxRemovableDriveFinderTest.java
new file mode 100644
index 000000000..4a8a85b5d
--- /dev/null
+++ b/test/net/sf/briar/plugins/file/LinuxRemovableDriveFinderTest.java
@@ -0,0 +1,25 @@
+package net.sf.briar.plugins.file;
+
+import junit.framework.TestCase;
+
+import org.junit.Test;
+
+public class LinuxRemovableDriveFinderTest extends TestCase {
+
+ @Test
+ public void testParseMountPoint() {
+ LinuxRemovableDriveFinder f = new LinuxRemovableDriveFinder();
+ String line = "/dev/sda3 on / type ext3"
+ + " (rw,errors=remount-ro,commit=0)";
+ assertEquals("/", f.parseMountPoint(line));
+ line = "gvfs-fuse-daemon on /home/alice/.gvfs"
+ + " type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=alice)";
+ assertEquals(null, f.parseMountPoint(line)); // Can't be parsed
+ line = "fusectl on /sys/fs/fuse/connections type fusectl (rw)";
+ assertEquals(null, f.parseMountPoint(line)); // Can't be parsed
+ line = "/dev/sdd1 on /media/HAZ SPACE(!) type vfat"
+ + " (rw,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,"
+ + "shortname=mixed,dmask=0077,utf8=1,showexec,flush)";
+ assertEquals("/media/HAZ SPACE(!)", f.parseMountPoint(line));
+ }
+}
diff --git a/test/net/sf/briar/plugins/file/MacRemovableDriveFinderTest.java b/test/net/sf/briar/plugins/file/MacRemovableDriveFinderTest.java
new file mode 100644
index 000000000..0b1848033
--- /dev/null
+++ b/test/net/sf/briar/plugins/file/MacRemovableDriveFinderTest.java
@@ -0,0 +1,23 @@
+package net.sf.briar.plugins.file;
+
+import junit.framework.TestCase;
+
+import org.junit.Test;
+
+public class MacRemovableDriveFinderTest extends TestCase {
+
+ @Test
+ public void testParseMountPoint() {
+ MacRemovableDriveFinder f = new MacRemovableDriveFinder();
+ String line = "/dev/disk0s3 on / (local, journaled)";
+ assertEquals("/", f.parseMountPoint(line));
+ line = "devfs on /dev (local)";
+ assertEquals(null, f.parseMountPoint(line)); // Can't be parsed
+ line = " on /.vol";
+ assertEquals(null, f.parseMountPoint(line)); // Can't be parsed
+ line = "automount -nsl [117] on /Network (automounted)";
+ assertEquals(null, f.parseMountPoint(line)); // Can't be parsed
+ line = "/dev/disk1s1 on /Volumes/HAZ SPACE(!) (local, nodev, nosuid)";
+ assertEquals("/Volumes/HAZ SPACE(!)", f.parseMountPoint(line));
+ }
+}