PathToolTest.java
package org.codehaus.plexus.util;
/*
* Copyright The Codehaus Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* <p>PathToolTest class.</p>
*
* @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
* @version $Id: $Id
* @since 3.4.0
*/
class PathToolTest {
/**
* <p>testGetRelativePath.</p>
*
* @throws java.lang.Exception
*/
@Test
void getRelativePath() throws Exception {
assertEquals("", PathTool.getRelativePath(null, null));
assertEquals("", PathTool.getRelativePath(null, "/usr/local/java/bin"));
assertEquals("", PathTool.getRelativePath("/usr/local/", null));
assertEquals("..", PathTool.getRelativePath("/usr/local/", "/usr/local/java/bin"));
assertEquals("../..", PathTool.getRelativePath("/usr/local/", "/usr/local/java/bin/java.sh"));
assertEquals("", PathTool.getRelativePath("/usr/local/java/bin/java.sh", "/usr/local/"));
}
/**
* <p>testGetDirectoryComponent.</p>
*
* @throws java.lang.Exception
*/
@Test
void getDirectoryComponent() throws Exception {
assertEquals("", PathTool.getDirectoryComponent(null));
assertEquals("/usr/local/java", PathTool.getDirectoryComponent("/usr/local/java/bin"));
assertEquals("/usr/local/java/bin", PathTool.getDirectoryComponent("/usr/local/java/bin/"));
assertEquals("/usr/local/java/bin", PathTool.getDirectoryComponent("/usr/local/java/bin/java.sh"));
}
/**
* <p>testCalculateLink.</p>
*
*/
@Test
void calculateLink() {
assertEquals("../../index.html", PathTool.calculateLink("/index.html", "../.."));
assertEquals(
"http://plexus.codehaus.org/plexus-utils/index.html",
PathTool.calculateLink("http://plexus.codehaus.org/plexus-utils/index.html", "../.."));
assertEquals(
"../../usr/local/java/bin/java.sh", PathTool.calculateLink("/usr/local/java/bin/java.sh", "../.."));
assertEquals(
"/usr/local/java/bin/../index.html", PathTool.calculateLink("../index.html", "/usr/local/java/bin"));
assertEquals(
"http://plexus.codehaus.org/plexus-utils/../index.html",
PathTool.calculateLink("../index.html", "http://plexus.codehaus.org/plexus-utils"));
}
/**
* <p>testGetRelativeWebPath.</p>
*
* @throws java.lang.Exception
*/
@Test
void getRelativeWebPath() throws Exception {
assertEquals("", PathTool.getRelativeWebPath(null, null));
assertEquals("", PathTool.getRelativeWebPath(null, "http://plexus.codehaus.org/"));
assertEquals("", PathTool.getRelativeWebPath("http://plexus.codehaus.org/", null));
assertEquals(
"plexus-utils/index.html",
PathTool.getRelativeWebPath(
"http://plexus.codehaus.org/", "http://plexus.codehaus.org/plexus-utils/index.html"));
assertEquals(
"../../",
PathTool.getRelativeWebPath(
"http://plexus.codehaus.org/plexus-utils/index.html", "http://plexus.codehaus.org/"));
}
/**
* <p>testGetRelativeFilePath.</p>
*
* @throws java.lang.Exception
*/
@Test
void getRelativeFilePath() throws Exception {
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
assertEquals("", PathTool.getRelativeFilePath(null, null));
assertEquals("", PathTool.getRelativeFilePath(null, "c:\\tools\\java\\bin"));
assertEquals("", PathTool.getRelativeFilePath("c:\\tools\\java", null));
assertEquals("java\\bin", PathTool.getRelativeFilePath("c:\\tools", "c:\\tools\\java\\bin"));
assertEquals("java\\bin\\", PathTool.getRelativeFilePath("c:\\tools", "c:\\tools\\java\\bin\\"));
assertEquals("..\\..", PathTool.getRelativeFilePath("c:\\tools\\java\\bin", "c:\\tools"));
assertEquals(
"java\\bin\\java.exe",
PathTool.getRelativeFilePath("c:\\tools\\", "c:\\tools\\java\\bin\\java.exe"));
assertEquals("..\\..\\..", PathTool.getRelativeFilePath("c:\\tools\\java\\bin\\java.sh", "c:\\tools"));
assertEquals("..\\bin", PathTool.getRelativeFilePath("c:\\tools", "c:\\bin"));
assertEquals("..\\tools", PathTool.getRelativeFilePath("c:\\bin", "c:\\tools"));
assertEquals("", PathTool.getRelativeFilePath("c:\\bin", "c:\\bin"));
} else {
assertEquals("", PathTool.getRelativeFilePath(null, null));
assertEquals("", PathTool.getRelativeFilePath(null, "/usr/local/java/bin"));
assertEquals("", PathTool.getRelativeFilePath("/usr/local", null));
assertEquals("java/bin", PathTool.getRelativeFilePath("/usr/local", "/usr/local/java/bin"));
assertEquals("java/bin/", PathTool.getRelativeFilePath("/usr/local", "/usr/local/java/bin/"));
assertEquals("../../", PathTool.getRelativeFilePath("/usr/local/java/bin", "/usr/local/"));
assertEquals(
"java/bin/java.sh", PathTool.getRelativeFilePath("/usr/local/", "/usr/local/java/bin/java.sh"));
assertEquals("../../../", PathTool.getRelativeFilePath("/usr/local/java/bin/java.sh", "/usr/local/"));
assertEquals("../../bin", PathTool.getRelativeFilePath("/usr/local/", "/bin"));
assertEquals("../usr/local", PathTool.getRelativeFilePath("/bin", "/usr/local"));
assertEquals("", PathTool.getRelativeFilePath("/bin", "/bin"));
}
}
}