diff options
author | 2016-05-26 20:25:54 +0000 | |
---|---|---|
committer | 2016-05-27 08:45:30 +0000 | |
commit | 108cee6a4f28a1caae6606fffc853ebd8d4582c1 (patch) | |
tree | 482bde2f1e0061e6d1dce71d934e683152630a23 /src/test/java/com/google/devtools/build/lib | |
parent | 3724d92fb85e021b6b65c3edb77c61572baedc25 (diff) |
Force paths to be relative when archives are decompressed
--
MOS_MIGRATED_REVID=123350350
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/bazel/repository/BUILD | 1 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/bazel/repository/StripPrefixedPathTest.java | 38 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/repository/BUILD b/src/test/java/com/google/devtools/build/lib/bazel/repository/BUILD index f99926642c..6ee8c565fa 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/repository/BUILD +++ b/src/test/java/com/google/devtools/build/lib/bazel/repository/BUILD @@ -12,6 +12,7 @@ java_test( "//src/main/java/com/google/devtools/build/lib:collect", "//src/main/java/com/google/devtools/build/lib:events", "//src/main/java/com/google/devtools/build/lib:inmemoryfs", + "//src/main/java/com/google/devtools/build/lib:os_util", "//src/main/java/com/google/devtools/build/lib:packages-internal", "//src/main/java/com/google/devtools/build/lib:syntax", "//src/main/java/com/google/devtools/build/lib:vfs", diff --git a/src/test/java/com/google/devtools/build/lib/bazel/repository/StripPrefixedPathTest.java b/src/test/java/com/google/devtools/build/lib/bazel/repository/StripPrefixedPathTest.java index 2998460a76..f3ab3f1b8d 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/repository/StripPrefixedPathTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/repository/StripPrefixedPathTest.java @@ -14,11 +14,13 @@ package com.google.devtools.build.lib.bazel.repository; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import com.google.common.base.Optional; +import com.google.devtools.build.lib.util.OS; import com.google.devtools.build.lib.vfs.PathFragment; import org.junit.Test; @@ -46,4 +48,40 @@ public class StripPrefixedPathTest { result = StripPrefixedPath.maybeDeprefix("foof/bar", Optional.of("foo")); assertFalse(result.foundPrefix()); } + + @Test + public void testAbsolute() { + StripPrefixedPath result = StripPrefixedPath.maybeDeprefix( + "/foo/bar", Optional.<String>absent()); + assertThat(result.getPathFragment()).isEqualTo(new PathFragment("foo/bar")); + + result = StripPrefixedPath.maybeDeprefix("///foo/bar/baz", Optional.<String>absent()); + assertThat(result.getPathFragment()).isEqualTo(new PathFragment("foo/bar/baz")); + + result = StripPrefixedPath.maybeDeprefix("/foo/bar/baz", Optional.of("/foo")); + assertThat(result.getPathFragment()).isEqualTo(new PathFragment("bar/baz")); + } + + @Test + public void testWindowsAbsolute() { + if (OS.getCurrent() != OS.WINDOWS) { + return; + } + StripPrefixedPath result = StripPrefixedPath.maybeDeprefix( + "c:/foo/bar", Optional.<String>absent()); + assertThat(result.getPathFragment()).isEqualTo(new PathFragment("foo/bar")); + } + + @Test + public void testNormalize() { + StripPrefixedPath result = StripPrefixedPath.maybeDeprefix( + "../bar", Optional.<String>absent()); + assertThat(result.getPathFragment()).isEqualTo(new PathFragment("../bar")); + + result = StripPrefixedPath.maybeDeprefix("foo/../baz", Optional.<String>absent()); + assertThat(result.getPathFragment()).isEqualTo(new PathFragment("baz")); + + result = StripPrefixedPath.maybeDeprefix("foo/../baz", Optional.of("foo")); + assertThat(result.getPathFragment()).isEqualTo(new PathFragment("baz")); + } } |