diff options
Diffstat (limited to 'src/com/google/testing/littlemock/AppDataDirGuesser.java')
-rw-r--r-- | src/com/google/testing/littlemock/AppDataDirGuesser.java | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/com/google/testing/littlemock/AppDataDirGuesser.java b/src/com/google/testing/littlemock/AppDataDirGuesser.java index e661ed6..254ed7e 100644 --- a/src/com/google/testing/littlemock/AppDataDirGuesser.java +++ b/src/com/google/testing/littlemock/AppDataDirGuesser.java @@ -75,7 +75,7 @@ public class AppDataDirGuesser { } // Parsing toString() method: yuck. But no other way to get the path. - // Strip out the bit between angle brackets, that's our path. + // Strip out the bit between square brackets, that's our path. String result = classLoader.toString(); int index = result.lastIndexOf('['); result = (index == -1) ? result : result.substring(index + 1); @@ -86,7 +86,7 @@ public class AppDataDirGuesser { // @VisibleForTesting File[] guessPath(String input) { List<File> results = new ArrayList<File>(); - for (String potential : input.split(":")) { + for (String potential : splitPathList(input)) { if (!potential.startsWith("/data/app/")) { continue; } @@ -110,10 +110,25 @@ public class AppDataDirGuesser { } } } + return results.toArray(new File[results.size()]); } // @VisibleForTesting + static String[] splitPathList(String input) { + String trimmed = input; + if (input.startsWith("dexPath=")) { + int start = "dexPath=".length(); + int end = input.indexOf(','); + + trimmed = (end == -1) ? input.substring(start) : + input.substring(start, end); + } + + return trimmed.split(":"); + } + + // @VisibleForTesting boolean fileOrDirExists(File file) { return file.exists(); } |