Repository: cordova-plugin-file Updated Branches: refs/heads/master 0dba6b4f2 -> 56f1f3d6b
CB-6571 Fix getParentForLocalURL to work correctly with directories with trailing '/' (This closes #58) Fixes 2 failing unit tests in mobile spec. Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/commit/56f1f3d6 Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/tree/56f1f3d6 Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/diff/56f1f3d6 Branch: refs/heads/master Commit: 56f1f3d6bb4493c026e4a603947b4ea3e4ab0975 Parents: 0dba6b4 Author: Martin Bektchiev <[email protected]> Authored: Mon Jun 30 18:21:08 2014 +0300 Committer: Ian Clelland <[email protected]> Committed: Wed Jul 2 10:40:14 2014 -0400 ---------------------------------------------------------------------- src/android/Filesystem.java | 6 +++--- src/android/LocalFilesystem.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/blob/56f1f3d6/src/android/Filesystem.java ---------------------------------------------------------------------- diff --git a/src/android/Filesystem.java b/src/android/Filesystem.java index af74aae..bbdeb0b 100644 --- a/src/android/Filesystem.java +++ b/src/android/Filesystem.java @@ -42,7 +42,7 @@ public abstract class Filesystem { JSONObject entry = new JSONObject(); int end = path.endsWith("/") ? 1 : 0; - String[] parts = path.substring(0,path.length()-end).split("/"); + String[] parts = path.substring(0,path.length()-end).split("/+"); String fileName = parts[parts.length-1]; entry.put("isFile", !isDir); entry.put("isDirectory", isDir); @@ -82,8 +82,8 @@ public abstract class Filesystem { LocalFilesystemURL newURL = new LocalFilesystemURL(inputURL.URL); if (!("".equals(inputURL.fullPath) || "/".equals(inputURL.fullPath))) { - int end = inputURL.fullPath.endsWith("/") ? 1 : 0; - int lastPathStartsAt = inputURL.fullPath.lastIndexOf('/', inputURL.fullPath.length()-end)+1; + String dirURL = inputURL.fullPath.replaceAll("/+$", ""); + int lastPathStartsAt = dirURL.lastIndexOf('/')+1; newURL.fullPath = newURL.fullPath.substring(0,lastPathStartsAt); } return getEntryForLocalURL(newURL); http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/blob/56f1f3d6/src/android/LocalFilesystem.java ---------------------------------------------------------------------- diff --git a/src/android/LocalFilesystem.java b/src/android/LocalFilesystem.java index 41bd427..e70ee22 100644 --- a/src/android/LocalFilesystem.java +++ b/src/android/LocalFilesystem.java @@ -96,7 +96,7 @@ public class LocalFilesystem extends Filesystem { if (isAbsolutePath) { rawPath = rawPath.substring(1); } - ArrayList<String> components = new ArrayList<String>(Arrays.asList(rawPath.split("/"))); + ArrayList<String> components = new ArrayList<String>(Arrays.asList(rawPath.split("/+"))); for (int index = 0; index < components.size(); ++index) { if (components.get(index).equals("..")) { components.remove(index);
