1   package net.sf.statcvs.pages;
2   
3   import junit.framework.TestCase;
4   
5   /**
6    * Test cases for {link net.sf.statcvs.pages.HTML}
7    *
8    * @author Richard Cyganiak
9    * @version $Id: HTMLTest.java,v 1.3 2008/04/14 18:32:59 benoitx Exp $
10   */
11  public class HTMLTest extends TestCase {
12  
13      public void testNormalString() {
14          assertEquals("abc", HTML.escape("abc"));
15      }
16  
17      public void testAmp() {
18          assertEquals("x && y", HTML.escape("x && y"));
19      }
20  
21      public void testLessThan() {
22          assertEquals("x &lt; y", HTML.escape("x < y"));
23      }
24  
25      public void testGreaterThan() {
26          assertEquals("x &gt; y", HTML.escape("x > y"));
27      }
28  
29      public void testLineBreak() {
30          assertEquals("line1<br />\nline2<br />\n", HTML.escape("line1\nline2\n"));
31      }
32  
33      public void testCombination() {
34          assertEquals("(x &lt; y) &amp;&amp;<br />\n(y &gt; x)", HTML.escape("(x < y) &&\n(y > x)"));
35      }
36  
37      public void testWebifyLinksFromPlainText() {
38          final String[] tests = new String[] { 
39                  "Hello www.cnn.com/bla.html World with http://www.cnn.com ok",
40                  "Hello www.cnn.com/bla.html World",
41                  "www.cnn.com/bla.html World",
42                  "Hello http://cnn.com/bla.html World",
43                  "Hello www.cnn.com/bla.html",
44                  "www.cnn.com/bla.html",
45                  "Hello http://cnn.com/bla.html",
46                  "http://cnn.com/bla.html",
47                  "http://cnn.com/bla.php&test=1&test2=3%20%test",
48                  "http://cnn.com",
49                  "http://www.cnn.com", 
50                  "https://cnn.com/bla.html",
51                  "https://cnn.com/bla.php&test=1&test2=3%20%test",
52                  "https://cnn.com",
53                  "https://www.cnn.com" 
54                  };
55          final String[] results = new String[] { 
56                  "Hello <a href=\"http://www.cnn.com/bla.html\">www.cnn.com/bla.html</a> World with <a href=\"http://www.cnn.com\">http://www.cnn.com</a> ok",
57                  "Hello <a href=\"http://www.cnn.com/bla.html\">www.cnn.com/bla.html</a> World",
58                  "<a href=\"http://www.cnn.com/bla.html\">www.cnn.com/bla.html</a> World",
59                  "Hello <a href=\"http://cnn.com/bla.html\">http://cnn.com/bla.html</a> World",
60                  "Hello <a href=\"http://www.cnn.com/bla.html\">www.cnn.com/bla.html</a>",
61                  "<a href=\"http://www.cnn.com/bla.html\">www.cnn.com/bla.html</a>",
62                  "Hello <a href=\"http://cnn.com/bla.html\">http://cnn.com/bla.html</a>",
63                  "<a href=\"http://cnn.com/bla.html\">http://cnn.com/bla.html</a>",
64                  "<a href=\"http://cnn.com/bla.php&amp;test=1&amp;test2=3%20%test\">http://cnn.com/bla.php&amp;test=1&amp;test2=3%20%test</a>",
65                  "<a href=\"http://cnn.com\">http://cnn.com</a>",
66                  "<a href=\"http://www.cnn.com\">http://www.cnn.com</a>",
67                  "<a href=\"https://cnn.com/bla.html\">https://cnn.com/bla.html</a>",
68                  "<a href=\"https://cnn.com/bla.php&amp;test=1&amp;test2=3%20%test\">https://cnn.com/bla.php&amp;test=1&amp;test2=3%20%test</a>",
69                  "<a href=\"https://cnn.com\">https://cnn.com</a>",
70                  "<a href=\"https://www.cnn.com\">https://www.cnn.com</a>"
71                  };
72          for (int i = 0; i < tests.length; i++) {
73              assertEquals("Test " + tests[i], results[i], HTML.webifyLinksFromPlainText(tests[i]));
74          }
75      }
76  }