| /* |
| * Copyright 2000-2009 JetBrains s.r.o. |
| * |
| * 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 com.intellij.history.core; |
| |
| import com.intellij.util.containers.ContainerUtil; |
| import org.junit.Test; |
| |
| public class PathsTest extends LocalHistoryTestCase { |
| @Test |
| public void testParent() { |
| assertEquals("dir1/dir2", Paths.getParentOf("dir1/dir2/file")); |
| assertEquals("", Paths.getParentOf("file")); |
| assertEquals("c:", Paths.getParentOf("c:/file")); |
| assertEquals("/", Paths.getParentOf("/file")); |
| assertEquals("/dir", Paths.getParentOf("/dir/file")); |
| } |
| |
| @Test |
| public void testName() { |
| assertEquals("file", Paths.getNameOf("file")); |
| assertEquals("file", Paths.getNameOf("dir/file")); |
| assertEquals("/", Paths.getNameOf("/")); |
| } |
| |
| @Test |
| public void testAppending() { |
| assertEquals("file1/file2", Paths.appended("file1", "file2")); |
| assertEquals("c:/root/file", Paths.appended("c:/root", "file")); |
| assertEquals("/foo", Paths.appended("/", "foo")); |
| assertEquals("/foo/bar", Paths.appended("/foo", "bar")); |
| |
| assertEquals("bar", Paths.appended("", "bar")); |
| } |
| |
| @Test |
| public void testRenaming() { |
| assertEquals("dir/file2", Paths.renamed("dir/file1", "file2")); |
| assertEquals("file2", Paths.renamed("file1", "file2")); |
| assertEquals("/bar", Paths.renamed("/foo", "bar")); |
| } |
| |
| @Test |
| public void testRelative() { |
| assertEquals("file", Paths.relativeIfUnder("dir/file", "dir")); |
| |
| assertNull(Paths.relativeIfUnder("dir/file", "abc")); |
| assertNull(Paths.relativeIfUnder("dir/file", "di")); |
| |
| assertNull("dir/file", Paths.relativeIfUnder("/dir/file", "/")); |
| assertEquals("file", Paths.relativeIfUnder("/dir/file", "/dir")); |
| |
| Paths.setCaseSensitive(true); |
| assertNull(Paths.relativeIfUnder("dir/file", "DiR")); |
| |
| Paths.setCaseSensitive(false); |
| assertEquals("file", Paths.relativeIfUnder("dir/file", "DiR")); |
| } |
| |
| @Test |
| public void testIsParentOf() throws Exception { |
| assertTrue(Paths.isParent("foo", "foo")); |
| assertTrue(Paths.isParent("foo", "foo/bar")); |
| assertTrue(Paths.isParent("foo/bar", "foo/bar")); |
| assertTrue(Paths.isParent("foo/bar", "foo/bar/baz")); |
| assertTrue(Paths.isParent("/", "/foo")); |
| assertTrue(Paths.isParent("/foo", "/foo/bar")); |
| assertFalse(Paths.isParent("foo/bar", "foo/baz")); |
| assertFalse(Paths.isParent("foo/bar", "foo/barr")); |
| assertFalse(Paths.isParent("foo/bar", "foo/barr/baz")); |
| |
| assertTrue(Paths.isParent("", "foo")); |
| } |
| |
| @Test |
| public void testIsParentOrChildOf() throws Exception { |
| assertTrue(Paths.isParentOrChild("foo/bar", "foo/bar")); |
| assertTrue(Paths.isParentOrChild("foo/bar", "foo/bar/baz")); |
| assertTrue(Paths.isParentOrChild("foo/bar/baz", "foo/bar")); |
| assertTrue(Paths.isParentOrChild("/", "/foo/bar")); |
| assertTrue(Paths.isParentOrChild("/foo/bar", "/")); |
| assertFalse(Paths.isParentOrChild("foo/baz", "foo/bar")); |
| } |
| |
| @Test |
| public void testSplitting() throws Exception { |
| assertEquals(array("/", "foo", "bar"), ContainerUtil.collect(Paths.split("/foo/bar").iterator())); |
| assertEquals(array("/", "foo", "bar"), ContainerUtil.collect(Paths.split("/foo/bar/").iterator())); |
| assertEquals(array("foo", "bar"), ContainerUtil.collect(Paths.split("foo/bar/").iterator())); |
| assertEquals(array("/", "foo"), ContainerUtil.collect(Paths.split("/foo").iterator())); |
| assertEquals(array("/"), ContainerUtil.collect(Paths.split("/").iterator())); |
| assertEquals(array("c:", "foo", "bar"), ContainerUtil.collect(Paths.split("c:/foo/bar").iterator())); |
| |
| assertEquals(array("//"), ContainerUtil.collect(Paths.split("//").iterator())); |
| assertEquals(array("//foo"), ContainerUtil.collect(Paths.split("//foo").iterator())); |
| assertEquals(array("//foo"), ContainerUtil.collect(Paths.split("//foo/").iterator())); |
| assertEquals(array("//foo", "bar"), ContainerUtil.collect(Paths.split("//foo/bar").iterator())); |
| } |
| |
| @Test |
| public void testEquals() { |
| assertTrue(Paths.equals("one", "one")); |
| assertFalse(Paths.equals("one", "two")); |
| |
| Paths.setCaseSensitive(true); |
| assertFalse(Paths.equals("one", "ONE")); |
| |
| Paths.setCaseSensitive(false); |
| assertTrue(Paths.equals("one", "ONE")); |
| } |
| } |