/* * Copyright (C)2009 - SSHJ Contributors * * 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. */ package net.schmizz.sshj.sftp; import org.junit.Test; import java.io.IOException; import static junit.framework.Assert.assertEquals; public class PathHelperTest { private final PathHelper helper = new PathHelper(new PathHelper.Canonicalizer() { /** * Very basic, it does not try to canonicalize relative bits in the middle of a path. */ @Override public String canonicalize(String path) throws IOException { if ("".equals(path) || ".".equals(path) || "./".equals(path)) return "/home/me"; if ("..".equals(path) || "../".equals(path)) return "/home"; return path; } }, "/"); @Test public void empty() throws IOException { final PathComponents comp = helper.getComponents(""); assertEquals("me", comp.getName()); assertEquals("/home", comp.getParent()); } @Test public void root() throws IOException { final PathComponents comp = helper.getComponents("/"); assertEquals("", comp.getName()); assertEquals("", comp.getParent()); } @Test public void dot() throws IOException { final PathComponents comp = helper.getComponents("."); assertEquals("me", comp.getName()); assertEquals("/home", comp.getParent()); } @Test public void dotDot() throws IOException { final PathComponents comp = helper.getComponents(".."); assertEquals("home", comp.getName()); assertEquals("", comp.getParent()); } @Test public void fileInHomeDir() throws IOException { final PathComponents comp = helper.getComponents("somefile"); assertEquals("somefile", comp.getName()); assertEquals("", comp.getParent()); } @Test public void fileSomeLevelsDeep() throws IOException { final PathComponents comp = helper.getComponents("/home/me/../somedir/somefile"); assertEquals("somefile", comp.getName()); assertEquals("/home/me/../somedir", comp.getParent()); } }