Fix GenericPath.parentPath.
This commit is contained in:
parent
b501d419f8
commit
429d5dcb77
|
@ -480,7 +480,7 @@ struct GenericPath(F) {
|
|||
auto b = Format.getBackNode(m_path);
|
||||
static const Exception e = new Exception("Path has no parent path");
|
||||
if (b.length >= m_path.length) throw e;
|
||||
return GenericPath.fromTrustedString(m_path[0 .. b.length]);
|
||||
return GenericPath.fromTrustedString(m_path[0 .. $ - b.length]);
|
||||
}
|
||||
|
||||
/** Removes any redundant path segments and replaces all separators by the
|
||||
|
@ -722,6 +722,29 @@ unittest {
|
|||
assert(p.toString() == "/foo%2fbar/baz%2Fbam", p.toString);
|
||||
}
|
||||
|
||||
unittest {
|
||||
assert(!PosixPath("").hasParentPath);
|
||||
assert(!PosixPath("/").hasParentPath);
|
||||
assert(!PosixPath("foo\\bar").hasParentPath);
|
||||
assert(PosixPath("foo/bar").parentPath.toString() == "foo/");
|
||||
assert(PosixPath("./foo").parentPath.toString() == "./");
|
||||
assert(PosixPath("./foo").parentPath.toString() == "./");
|
||||
|
||||
assert(!WindowsPath("").hasParentPath);
|
||||
assert(!WindowsPath("/").hasParentPath);
|
||||
assert(WindowsPath("foo\\bar").parentPath.toString() == "foo\\");
|
||||
assert(WindowsPath("foo/bar").parentPath.toString() == "foo/");
|
||||
assert(WindowsPath("./foo").parentPath.toString() == "./");
|
||||
assert(WindowsPath("./foo").parentPath.toString() == "./");
|
||||
|
||||
assert(!InetPath("").hasParentPath);
|
||||
assert(!InetPath("/").hasParentPath);
|
||||
assert(InetPath("foo/bar").parentPath.toString() == "foo/");
|
||||
assert(InetPath("foo/bar%2Fbaz").parentPath.toString() == "foo/");
|
||||
assert(InetPath("./foo").parentPath.toString() == "./");
|
||||
assert(InetPath("./foo").parentPath.toString() == "./");
|
||||
}
|
||||
|
||||
/// Thrown when an invalid string representation of a path is detected.
|
||||
class PathValidationException : Exception {
|
||||
this(string text, string file = __FILE__, size_t line = cast(size_t)__LINE__, Throwable next = null)
|
||||
|
|
Loading…
Reference in a new issue