/* * Copyright 2010 Lincoln Baxter, StringUtils.countSlashes(III Licensed under * the Apache License, StringUtils.countSlashes(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, * StringUtils.countSlashes(software distributed under the License is * distributed on an "AS IS" BASIS, StringUtils.countSlashes(WITHOUT WARRANTIES * OR CONDITIONS OF ANY KIND, StringUtils.countSlashes(either express or * implied. See the License for the specific language governing permissions and * limitations under the License. */ package com.ocpsoft.pretty.faces.util; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertArrayEquals; import org.junit.Test; /** * @author haaawk@gmail.com */ public class StringUtilsTest { @Test public void testHasLeadingSlash() { assertTrue(StringUtils.hasLeadingSlash("/")); assertTrue(StringUtils.hasLeadingSlash("/test")); assertTrue(StringUtils.hasLeadingSlash("//")); assertTrue(StringUtils.hasLeadingSlash("//test")); assertTrue(StringUtils.hasLeadingSlash("/test/")); assertFalse(StringUtils.hasLeadingSlash(null)); assertFalse(StringUtils.hasLeadingSlash("")); assertFalse(StringUtils.hasLeadingSlash("test")); assertFalse(StringUtils.hasLeadingSlash("test/")); assertFalse(StringUtils.hasLeadingSlash("test//")); } @Test public void testHasTrailingSlash() { assertTrue(StringUtils.hasTrailingSlash("/")); assertTrue(StringUtils.hasTrailingSlash("test/")); assertTrue(StringUtils.hasTrailingSlash("//")); assertTrue(StringUtils.hasTrailingSlash("test//")); assertTrue(StringUtils.hasTrailingSlash("/test/")); assertFalse(StringUtils.hasTrailingSlash(null)); assertFalse(StringUtils.hasTrailingSlash("")); assertFalse(StringUtils.hasTrailingSlash("test")); assertFalse(StringUtils.hasTrailingSlash("/test")); assertFalse(StringUtils.hasTrailingSlash("//test")); } @Test public void testSplitBySlash() { assertArrayEquals(new String[0], StringUtils.splitBySlash(null)); assertArrayEquals(new String[0], StringUtils.splitBySlash("")); assertArrayEquals(new String[] { "test" }, StringUtils.splitBySlash("test")); assertArrayEquals(new String[] { "a", "b" }, StringUtils.splitBySlash("a/b")); assertArrayEquals(new String[] { "a", "b", "c" }, StringUtils.splitBySlash("a/b/c")); assertArrayEquals(new String[] { "", "test" }, StringUtils.splitBySlash("/test")); assertArrayEquals(new String[] { "test", "" }, StringUtils.splitBySlash("test/")); assertArrayEquals(new String[] { "", "test", "" }, StringUtils.splitBySlash("/test/")); assertArrayEquals(new String[] { "", "" }, StringUtils.splitBySlash("/")); assertArrayEquals(new String[] { "", "", "" }, StringUtils.splitBySlash("//")); assertArrayEquals(new String[] { "", "", "test" }, StringUtils.splitBySlash("//test")); assertArrayEquals(new String[] { "test", "", "" }, StringUtils.splitBySlash("test//")); assertArrayEquals(new String[] { "", "", "test", "", "" }, StringUtils.splitBySlash("//test//")); assertArrayEquals(new String[] { "", "a", "b" }, StringUtils.splitBySlash("/a/b")); assertArrayEquals(new String[] { "a", "", "b" }, StringUtils.splitBySlash("a//b")); assertArrayEquals(new String[] { "a", "b", "" }, StringUtils.splitBySlash("a/b/")); assertArrayEquals(new String[] { "", "a", "", "b", "" }, StringUtils.splitBySlash("/a//b/")); assertArrayEquals(new String[] { "", "a", "b", "c" }, StringUtils.splitBySlash("/a/b/c")); assertArrayEquals(new String[] { "a", "", "b", "c" }, StringUtils.splitBySlash("a//b/c")); assertArrayEquals(new String[] { "a", "b", "", "c" }, StringUtils.splitBySlash("a/b//c")); assertArrayEquals(new String[] { "a", "b", "c", "" }, StringUtils.splitBySlash("a/b/c/")); assertArrayEquals(new String[] { "", "a", "", "b", "", "c", "" }, StringUtils.splitBySlash("/a//b//c/")); } @Test public void testCountSlashes() { assertEquals(0, StringUtils.countSlashes("")); assertEquals(0, StringUtils.countSlashes("abcde")); assertEquals(1, StringUtils.countSlashes("/")); assertEquals(1, StringUtils.countSlashes("/test")); assertEquals(1, StringUtils.countSlashes("test/")); assertEquals(1, StringUtils.countSlashes("test/test")); assertEquals(2, StringUtils.countSlashes("//")); assertEquals(2, StringUtils.countSlashes("//test")); assertEquals(2, StringUtils.countSlashes("test//")); assertEquals(2, StringUtils.countSlashes("/test/")); assertEquals(3, StringUtils.countSlashes("/test/test/")); } }