test/jdk/internal/jrtfs/PathOps.java

Print this page

        

*** 41,59 **** private String input; private Path path; private Exception exc; ! private PathOps(String s) { out.println(); ! input = s; try { ! path = fs.getPath(s); ! out.format("%s -> %s", s, path); } catch (Exception x) { exc = x; ! out.format("%s -> %s", s, x); } out.println(); } Path path() { --- 41,59 ---- private String input; private Path path; private Exception exc; ! private PathOps(String first, String... more) { out.println(); ! input = first; try { ! path = fs.getPath(first, more); ! out.format("%s -> %s", first, path); } catch (Exception x) { exc = x; ! out.format("%s -> %s", first, x); } out.println(); } Path path() {
*** 173,182 **** --- 173,189 ---- checkPath(); check(path.resolve(other), expected); return this; } + PathOps resolveSibling(String other, String expected) { + out.format("test resolveSibling %s\n", other); + checkPath(); + check(path.resolveSibling(other), expected); + return this; + } + PathOps relativize(String other, String expected) { out.format("test relativize %s\n", other); checkPath(); Path that = fs.getPath(other); check(path.relativize(that), expected);
*** 218,227 **** --- 225,238 ---- static PathOps test(String s) { return new PathOps(s); } + static PathOps test(String first, String... more) { + return new PathOps(first, more); + } + // -- PathOpss -- static void header(String s) { out.println(); out.println();
*** 229,238 **** --- 240,269 ---- } static void doPathOpTests() { header("Path operations"); + // construction + test("/") + .string("/"); + test("/", "") + .string("/"); + test("/", "foo") + .string("/foo"); + test("/", "/foo") + .string("/foo"); + test("/", "foo/") + .string("/foo"); + test("foo", "bar", "gus") + .string("foo/bar/gus"); + test("") + .string(""); + test("", "/") + .string("/"); + test("", "foo", "", "bar", "", "/gus") + .string("foo/bar/gus"); + // all components test("/a/b/c") .root("/") .parent("/a/b") .name("c");
*** 252,268 **** --- 283,304 ---- // name component only test("foo") .root(null) .parent(null) .name("foo"); + test("") + .root(null) + .parent(null) + .name(""); // startsWith test("") .starts("") .notStarts("/"); test("/") .starts("/") + .notStarts("") .notStarts("/foo"); test("/foo") .starts("/") .starts("/foo") .notStarts("/f")
*** 276,285 **** --- 312,322 ---- .notStarts("foo") .notStarts("foo/bar") .notStarts(""); test("foo") .starts("foo") + .notStarts("") .notStarts("f"); test("foo/bar") .starts("foo") .starts("foo/") .starts("foo/bar")
*** 291,306 **** test("") .ends("") .notEnds("/"); test("/") .ends("/") .notEnds("foo") .notEnds("/foo"); test("/foo") .ends("foo") .ends("/foo") ! .notEnds("/"); test("/foo/bar") .ends("bar") .ends("foo/bar") .ends("foo/bar/") .ends("/foo/bar") --- 328,345 ---- test("") .ends("") .notEnds("/"); test("/") .ends("/") + .notEnds("") .notEnds("foo") .notEnds("/foo"); test("/foo") .ends("foo") .ends("/foo") ! .notEnds("/") ! .notEnds("fool"); test("/foo/bar") .ends("bar") .ends("foo/bar") .ends("foo/bar/") .ends("/foo/bar")
*** 310,326 **** .ends("foo/bar") .ends("foo/bar/") .ends("/foo/bar") .notEnds("/bar"); test("foo") ! .ends("foo"); test("foo/bar") .ends("bar") .ends("bar/") .ends("foo/bar/") ! .ends("foo/bar"); ! // elements test("a/b/c") .element(0,"a") .element(1,"b") --- 349,383 ---- .ends("foo/bar") .ends("foo/bar/") .ends("/foo/bar") .notEnds("/bar"); test("foo") ! .ends("foo") ! .notEnds("") ! .notEnds("oo") ! .notEnds("oola"); test("foo/bar") .ends("bar") .ends("bar/") .ends("foo/bar/") ! .ends("foo/bar") ! .notEnds("r") ! .notEnds("barmaid") ! .notEnds("/bar") ! .notEnds("ar") ! .notEnds("barack") ! .notEnds("/bar") ! .notEnds("o/bar"); ! test("foo/bar/gus") ! .ends("gus") ! .ends("bar/gus") ! .ends("foo/bar/gus") ! .notEnds("g") ! .notEnds("/gus") ! .notEnds("r/gus") ! .notEnds("barack/gus") ! .notEnds("bar/gust"); // elements test("a/b/c") .element(0,"a") .element(1,"b")
*** 337,356 **** .notAbsolute(); // resolve test("/tmp") .resolve("foo", "/tmp/foo") ! .resolve("/foo", "/foo"); test("tmp") .resolve("foo", "tmp/foo") .resolve("/foo", "/foo"); // relativize test("/a/b/c") .relativize("/a/b/c", "") .relativize("/a/b/c/d/e", "d/e") ! .relativize("/a/x", "../../x"); // normalize test("/") .normalize("/"); test("foo") --- 394,451 ---- .notAbsolute(); // resolve test("/tmp") .resolve("foo", "/tmp/foo") ! .resolve("/foo", "/foo") ! .resolve("", "/tmp"); test("tmp") .resolve("foo", "tmp/foo") + .resolve("/foo", "/foo") + .resolve("", "tmp"); + test("") + .resolve("", "") + .resolve("foo", "foo") .resolve("/foo", "/foo"); + // resolveSibling + test("foo") + .resolveSibling("bar", "bar") + .resolveSibling("/bar", "/bar") + .resolveSibling("", ""); + test("foo/bar") + .resolveSibling("gus", "foo/gus") + .resolveSibling("/gus", "/gus") + .resolveSibling("", "foo"); + test("/foo") + .resolveSibling("gus", "/gus") + .resolveSibling("/gus", "/gus") + .resolveSibling("", "/"); + test("/foo/bar") + .resolveSibling("gus", "/foo/gus") + .resolveSibling("/gus", "/gus") + .resolveSibling("", "/foo"); + test("") + .resolveSibling("foo", "foo") + .resolveSibling("/foo", "/foo") + .resolve("", ""); + // relativize test("/a/b/c") .relativize("/a/b/c", "") .relativize("/a/b/c/d/e", "d/e") ! .relativize("/a/x", "../../x") ! .relativize("/x", "../../../x"); ! test("a/b/c") ! .relativize("a/b/c/d", "d") ! .relativize("a/x", "../../x") ! .relativize("x", "../../../x") ! .relativize("", "../../.."); ! test("") ! .relativize("a", "a") ! .relativize("a/b/c", "a/b/c") ! .relativize("", ""); // normalize test("/") .normalize("/"); test("foo")