UtilTest.java revision 604
0N/Apackage org.opensolaris.opengrok.web;
0N/A
0N/Aimport java.io.StringWriter;
0N/Aimport java.util.Locale;
314N/Aimport org.junit.AfterClass;
0N/Aimport org.junit.BeforeClass;
0N/Aimport org.junit.Test;
0N/Aimport static org.junit.Assert.*;
0N/A
0N/A/**
0N/A * Test of the methods in <code>org.opensolaris.opengrok.web.Util</code>.
0N/A */
0N/Apublic class UtilTest {
0N/A private static Locale savedLocale;
0N/A
0N/A @BeforeClass
0N/A public static void setUpClass() {
0N/A // Some of the methods have different results in different locales.
0N/A // Set locale to en_US for these tests.
0N/A savedLocale = Locale.getDefault();
0N/A Locale.setDefault(Locale.US);
0N/A }
0N/A
0N/A @AfterClass
0N/A public static void tearDownClass() {
0N/A Locale.setDefault(savedLocale);
0N/A savedLocale = null;
0N/A }
0N/A
0N/A @Test
0N/A public void htmlize() {
0N/A String[][] input_output = {
373N/A { "This is a test", "This is a test" },
0N/A { "Newline\nshould become <br/>",
0N/A "Newline<br/>should become &lt;br/&gt;" },
364N/A { "Open & Grok", "Open &amp; Grok" },
364N/A { "&amp;&lt;&gt;", "&amp;amp;&amp;lt;&amp;gt;" },
364N/A };
364N/A for (String[] in_out : input_output) {
364N/A // 1 arg
364N/A assertEquals(in_out[1], Util.htmlize(in_out[0]));
364N/A // 2 args
156N/A StringBuilder sb = new StringBuilder();
156N/A Util.htmlize(in_out[0], sb);
0N/A assertEquals(in_out[1], sb.toString());
0N/A }
364N/A }
0N/A
0N/A @Test
156N/A public void breadcrumbPath() {
156N/A assertEquals(null, Util.breadcrumbPath("/root/", null));
156N/A
0N/A // Are these two correct? Why don't we create links?
0N/A assertEquals("", Util.breadcrumbPath("/root/", ""));
156N/A assertEquals("x", Util.breadcrumbPath("/root/", "x"));
156N/A
0N/A assertEquals("<a href=\"/root/xx\">xx</a>",
0N/A Util.breadcrumbPath("/root/", "xx"));
364N/A
364N/A assertEquals("<a href=\"/r/a\">a</a>/<a href=\"/r/a/b\">b</a>",
373N/A Util.breadcrumbPath("/r/", "a/b"));
364N/A
364N/A assertEquals("<a href=\"/r/a\">a</a>/<a href=\"/r/a/b\">b</a>/",
364N/A Util.breadcrumbPath("/r/", "a/b/"));
0N/A }
156N/A
156N/A @Test
0N/A public void redableSize() {
0N/A assertEquals("0", Util.redableSize(0));
0N/A assertEquals("1", Util.redableSize(1));
0N/A assertEquals("-1", Util.redableSize(-1));
156N/A assertEquals("1,000", Util.redableSize(1000));
156N/A assertEquals("1K", Util.redableSize(1024));
156N/A assertEquals("2.4K", Util.redableSize(2500));
156N/A assertEquals("<b>1.4M</b>", Util.redableSize(1474560));
156N/A assertEquals("<b>3,584.4M</b>", Util.redableSize(3758489600L));
156N/A assertEquals("<b>8,796,093,022,208M</b>",
156N/A Util.redableSize(Long.MAX_VALUE));
0N/A }
255N/A
156N/A @Test
156N/A public void readableLine() throws Exception {
156N/A StringWriter out = new StringWriter();
156N/A Util.readableLine(42, out, null);
0N/A assertEquals("\n<a class=\"l\" name=\"42\"> 42 </a>",
0N/A out.toString());
364N/A
364N/A out.getBuffer().setLength(0); // clear buffer
364N/A Util.readableLine(110, out, null);
364N/A assertEquals("\n<a class=\"hl\" name=\"110\"> 110 </a>",
364N/A out.toString());
364N/A }
364N/A
364N/A @Test
364N/A public void uid() {
364N/A assertEquals("\u0000etc\u0000passwd\u0000date",
364N/A Util.uid("/etc/passwd", "date"));
364N/A }
0N/A
0N/A @Test
0N/A public void uid2url() {
0N/A assertEquals("/etc/passwd", Util.uid2url(
0N/A Util.uid("/etc/passwd", "date")));
0N/A }
0N/A
0N/A @Test
255N/A public void URIEncode() {
156N/A assertEquals("", Util.URIEncode(""));
364N/A assertEquals("a+b", Util.URIEncode("a b"));
364N/A assertEquals("a%23b", Util.URIEncode("a#b"));
0N/A assertEquals("a%2Fb", Util.URIEncode("a/b"));
339N/A assertEquals("README.txt", Util.URIEncode("README.txt"));
0N/A }
0N/A
339N/A @Test
339N/A public void URIEncodePath() {
0N/A assertEquals("", Util.URIEncodePath(""));
255N/A assertEquals("/", Util.URIEncodePath("/"));
0N/A assertEquals("a", Util.URIEncodePath("a"));
255N/A assertEquals("a+b", Util.URIEncodePath("a+b"));
0N/A assertEquals("a%20b", Util.URIEncodePath("a b"));
0N/A assertEquals("/a//x/yz/%23%23/%20/%20%3F",
0N/A Util.URIEncodePath("/a//x/yz/##/ / ?"));
373N/A }
364N/A
364N/A @Test
364N/A public void formQuoteEscape() {
364N/A assertEquals("", Util.formQuoteEscape(null));
364N/A assertEquals("abc", Util.formQuoteEscape("abc"));
364N/A assertEquals("&quot;abc&quot;", Util.formQuoteEscape("\"abc\""));
0N/A }
364N/A
0N/A @Test
0N/A public void buildQueryString() {
364N/A String freetext = "foo:(bar) foo::bar";
364N/A String defs = "foo::bar";
0N/A String refs = "";
364N/A String path = "";
364N/A String hist = null;
0N/A String expResult = "foo:(bar) foo\\:\\:bar defs:(foo\\:\\:bar)";
0N/A String result = Util.buildQueryString(freetext, defs, refs, path, hist);
0N/A assertEquals(expResult, result);
0N/A }
0N/A}