/******************************************************************************* * Copyright (c) 2011 Arapiki Solutions Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * "Peter Smith <psmith@arapiki.com>" - initial API and * implementation and/or initial documentation *******************************************************************************/ package com.buildml.utils.string; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.buildml.utils.string.PathUtils; /** * This class provides unit tests for the PathUtils class. * * @author "Peter Smith <psmith@arapiki.com>" */ public class TestPathUtils { /*-------------------------------------------------------------------------------------*/ /** * @throws java.lang.Exception */ @Before public void setUp() throws Exception { } /*-------------------------------------------------------------------------------------*/ /** * @throws java.lang.Exception */ @After public void tearDown() throws Exception { } /*-------------------------------------------------------------------------------------*/ /** * Test the validatePathComponent() method * @throws Exception */ @Test public void testValidatePathComponent() throws Exception { assertFalse(PathUtils.validatePathComponent(null)); assertFalse(PathUtils.validatePathComponent("")); assertFalse(PathUtils.validatePathComponent(".")); assertFalse(PathUtils.validatePathComponent("..")); assertFalse(PathUtils.validatePathComponent("aard/vark")); assertFalse(PathUtils.validatePathComponent("aard\\vark")); assertTrue(PathUtils.validatePathComponent(".aardvark")); assertTrue(PathUtils.validatePathComponent("..aardvark")); assertTrue(PathUtils.validatePathComponent("aard..vark")); assertTrue(PathUtils.validatePathComponent("aardvark..")); assertTrue(PathUtils.validatePathComponent("aardvark")); } /*-------------------------------------------------------------------------------------*/ /** * Test the normalizeAbsolutePath() method. * @throws Exception */ @Test public void testNormalizeAbsolutePath() throws Exception { assertEquals(null, PathUtils.normalizeAbsolutePath(null)); assertEquals("/", PathUtils.normalizeAbsolutePath("/")); assertEquals("/abc/def/ghi", PathUtils.normalizeAbsolutePath("/abc/def/ghi")); assertEquals("/abc/def/ghi", PathUtils.normalizeAbsolutePath("/abc/def/ghi/")); assertEquals("/abc/def", PathUtils.normalizeAbsolutePath("/abc/./def")); assertEquals("/def", PathUtils.normalizeAbsolutePath("/abc/../def")); assertEquals("/", PathUtils.normalizeAbsolutePath("/..")); assertEquals("/a", PathUtils.normalizeAbsolutePath("/./a/")); assertEquals("/", PathUtils.normalizeAbsolutePath("/./a/../..")); assertEquals("/aardvark", PathUtils.normalizeAbsolutePath("/aardvark/.")); assertEquals("/aardvark/camel/bear", PathUtils.normalizeAbsolutePath("/aardvark/camel/.//bear/.")); } /*-------------------------------------------------------------------------------------*/ /** * Test the isAbsolutePath() method. * @throws Exception */ @Test public void testIsAbsolutePath() throws Exception { assertFalse(PathUtils.isAbsolutePath(null)); assertFalse(PathUtils.isAbsolutePath("")); assertFalse(PathUtils.isAbsolutePath("a")); assertFalse(PathUtils.isAbsolutePath("aardvark")); assertFalse(PathUtils.isAbsolutePath("a/b/c/d")); assertFalse(PathUtils.isAbsolutePath("abcd/")); assertTrue(PathUtils.isAbsolutePath("/")); assertTrue(PathUtils.isAbsolutePath("\\")); assertTrue(PathUtils.isAbsolutePath("/aardvark")); assertTrue(PathUtils.isAbsolutePath("/aard/vark")); assertTrue(PathUtils.isAbsolutePath("/aardvark/")); } /*-------------------------------------------------------------------------------------*/ /** * Test the tokenizePath method. * @throws Exception */ @Test public void testTokenizePath() throws Exception { assertArrayEquals(new String[]{}, PathUtils.tokenizePath(null)); assertArrayEquals(new String[]{}, PathUtils.tokenizePath("/")); assertArrayEquals(new String[]{}, PathUtils.tokenizePath("///")); assertArrayEquals(new String[]{"aardvark"}, PathUtils.tokenizePath("/aardvark")); assertArrayEquals(new String[]{"aardvark"}, PathUtils.tokenizePath("/aardvark/")); assertArrayEquals(new String[]{"a", "b", "c"}, PathUtils.tokenizePath("/a/b/c")); assertArrayEquals(new String[]{"a", "b", "c"}, PathUtils.tokenizePath("//a/b/c/")); assertArrayEquals(new String[]{"a1", "b2", "c3"}, PathUtils.tokenizePath("a1/b2/c3")); assertArrayEquals(new String[]{"aardvark", "banana", "camel"}, PathUtils.tokenizePath("/aardvark//banana/camel")); } /*-------------------------------------------------------------------------------------*/ /** * Test the matchPathRoot method. * @throws Exception */ @Test public void testMatchPathRoot() throws Exception { assertEquals(PathUtils.matchPathRoot(new String[] {"/home/"}, "/home/aardvark/"), "aardvark/"); assertNull(PathUtils.matchPathRoot(new String[] {"/home/"}, "/etc/aardvark/")); assertEquals(PathUtils.matchPathRoot(new String[] {"/project", "/home/", "/etc/"}, "/home/aardvark/"), "aardvark/"); assertNull(PathUtils.matchPathRoot(new String[] {}, "/home/aardvark/")); } /*-------------------------------------------------------------------------------------*/ }