⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testcmsstringutil.java

📁 OpenCms 是一个J2EE的产品
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        assertEquals(1, listResult.size());
        assertEquals("", listResult.get(0));

        // test a 1 separator-only String
        toSplit = "/";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimChar);
        assertEquals(0, arrayResult.length);
        listResult = CmsStringUtil.splitAsList(toSplit, delimChar);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test a 2 separator-only String
        toSplit = "//";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimChar);
        assertEquals(1, arrayResult.length);
        assertEquals("", arrayResult[0]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimChar);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test a single token String with starting delimiter
        toSplit = "/token";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimChar);
        assertEquals(1, arrayResult.length);
        assertEquals("token", arrayResult[0]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimChar);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test a single token String with ending delimiter
        toSplit = "token/";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimChar);
        assertEquals(1, arrayResult.length);
        assertEquals("token", arrayResult[0]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimChar);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test a 3 separator-only String
        toSplit = "///";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimChar);
        assertEquals(2, arrayResult.length);
        assertEquals("", arrayResult[0]);
        assertEquals("", arrayResult[1]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimChar);
        assertEquals(Arrays.asList(arrayResult), listResult);

        toSplit = "/a // b/ c /";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimChar);
        assertEquals(4, arrayResult.length);
        assertEquals("a ", arrayResult[0]);
        assertEquals("", arrayResult[1]);
        assertEquals(" b", arrayResult[2]);
        assertEquals(" c ", arrayResult[3]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimChar);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // with truncation
        listResult = CmsStringUtil.splitAsList(toSplit, delimChar, true);
        assertEquals(4, listResult.size());
        assertEquals("a", listResult.get(0));
        assertEquals("", listResult.get(1));
        assertEquals("b", listResult.get(2));
        assertEquals("c", listResult.get(3));
    }

    /**
     * Tests <code>{@link CmsStringUtil#splitAsArray(String, String)}</code>.<p>
     */
    public void testSplitStringDelimiter() {

        String toSplit;
        String delimString = "/";
        String[] arrayResult;
        List listResult;

        toSplit = "/system/workplace/admin/searchindex/";

        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(4, arrayResult.length);
        assertEquals("system", arrayResult[0]);
        assertEquals("workplace", arrayResult[1]);
        assertEquals("admin", arrayResult[2]);
        assertEquals("searchindex", arrayResult[3]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test an empty String: 
        toSplit = "";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(0, arrayResult.length);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // whitespace only String
        toSplit = "               ";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(1, arrayResult.length);
        assertEquals(toSplit, arrayResult[0]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // with truncation
        listResult = CmsStringUtil.splitAsList(toSplit, delimString, true);
        assertEquals(1, listResult.size());
        assertEquals("", listResult.get(0));

        // test a 1 separator-only String
        toSplit = "/";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(0, arrayResult.length);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test a 2 separator-only String
        toSplit = "//";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(1, arrayResult.length);
        assertEquals("", arrayResult[0]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test a single token String with starting delimiter
        toSplit = "/token";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(1, arrayResult.length);
        assertEquals("token", arrayResult[0]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test a single token String with ending delimiter
        toSplit = "token/";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(1, arrayResult.length);
        assertEquals("token", arrayResult[0]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test a 3 separator-only String
        toSplit = "///";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(2, arrayResult.length);
        assertEquals("", arrayResult[0]);
        assertEquals("", arrayResult[1]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        toSplit = "/a // b/ c /";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(4, arrayResult.length);
        assertEquals("a ", arrayResult[0]);
        assertEquals("", arrayResult[1]);
        assertEquals(" b", arrayResult[2]);
        assertEquals(" c ", arrayResult[3]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // with truncation
        listResult = CmsStringUtil.splitAsList(toSplit, delimString, true);
        assertEquals(4, listResult.size());
        assertEquals("a", listResult.get(0));
        assertEquals("", listResult.get(1));
        assertEquals("b", listResult.get(2));
        assertEquals("c", listResult.get(3));

        // some tests with a separator longer than 1 

        delimString = ",,";
        toSplit = ",,system,,workplace,,admin,,searchindex,,";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(4, arrayResult.length);
        assertEquals("system", arrayResult[0]);
        assertEquals("workplace", arrayResult[1]);
        assertEquals("admin", arrayResult[2]);
        assertEquals("searchindex", arrayResult[3]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test an empty String: 
        toSplit = "";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(0, arrayResult.length);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test a whitespace String with truncation:
        toSplit = "               ";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(1, arrayResult.length);
        assertEquals(toSplit, arrayResult[0]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test a 1 separator-only String
        toSplit = ",,";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(0, arrayResult.length);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test a 2 separator-only String
        toSplit = ",,,,";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(1, arrayResult.length);
        assertEquals("", arrayResult[0]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test a single token String with starting delimiter
        toSplit = ",,token";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(1, arrayResult.length);
        assertEquals("token", arrayResult[0]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test a single token String with ending delimiter
        toSplit = "token,,";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(1, arrayResult.length);
        assertEquals("token", arrayResult[0]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        // test a 3 separator-only String
        toSplit = ",,,,,,";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(2, arrayResult.length);
        assertEquals("", arrayResult[0]);
        assertEquals("", arrayResult[1]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        toSplit = ",,a, aber nicht b,,,,b, aber nicht c,,c, but not a,,";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(4, arrayResult.length);
        assertEquals("a, aber nicht b", arrayResult[0]);
        assertEquals("", arrayResult[1]);
        assertEquals("b, aber nicht c", arrayResult[2]);
        assertEquals("c, but not a", arrayResult[3]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        delimString = "/delim/";
        toSplit = "/delim fake at start/delim//not a delim//delim//delim//delim fake at end";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(4, arrayResult.length);
        assertEquals("/delim fake at start", arrayResult[0]);
        assertEquals("/not a delim/", arrayResult[1]);
        assertEquals("", arrayResult[2]);
        assertEquals("/delim fake at end", arrayResult[3]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        toSplit = "/delim fake at start/delim//not a delim//delim//delim//delim";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(4, arrayResult.length);
        assertEquals("/delim fake at start", arrayResult[0]);
        assertEquals("/not a delim/", arrayResult[1]);
        assertEquals("", arrayResult[2]);
        assertEquals("/delim", arrayResult[3]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);

        toSplit = "/delim//delim fake at start/delim//not a delim//delim//delim//delim fake at end/delim/";
        arrayResult = CmsStringUtil.splitAsArray(toSplit, delimString);
        assertEquals(4, arrayResult.length);
        assertEquals("/delim fake at start", arrayResult[0]);
        assertEquals("/not a delim/", arrayResult[1]);
        assertEquals("", arrayResult[2]);
        assertEquals("/delim fake at end", arrayResult[3]);
        listResult = CmsStringUtil.splitAsList(toSplit, delimString);
        assertEquals(Arrays.asList(arrayResult), listResult);
    }

    /**
     * Tests the basic String substitution.<p>
     */
    public void testSubstitute() {

        String test, result;

        String content = "<a href=\"/opencms/opencms/test.jpg\">";
        String search = "/opencms/opencms/";
        String replace = "\\${path}";

        test = CmsStringUtil.substitute(content, search, replace);
        System.out.println(test);
        assertEquals(test, "<a href=\"\\${path}test.jpg\">");

        test = CmsStringUtil.substitute(test, replace, search);
        assertEquals(test, "<a href=\"/opencms/opencms/test.jpg\">");

        content = "[0-9]$1/[^a]|/([}>\"'\\[]\\s*)/pics/";
        result = "[0-9]$1/[^a]|/([}>\"'\\[]\\s*)/pucs/";
        test = CmsStringUtil.substitute(content, "i", "u");
        assertEquals(test, result);

        content = "/delim//delim fake at start/delim//not a delim//delim//delim//delim fake at end/delim/";
        result = "REPLACED!/delim fake at startREPLACED!/not a delim/REPLACED!REPLACED!/delim fake at endREPLACED!";
        test = CmsStringUtil.substitute(content, "/delim/", "REPLACED!");
        assertEquals(test, result);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -