1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.cubby.tags;
17
18 import static org.easymock.EasyMock.createMock;
19 import static org.easymock.EasyMock.expect;
20 import static org.easymock.EasyMock.replay;
21 import static org.easymock.EasyMock.verify;
22 import static org.junit.Assert.assertEquals;
23 import static org.junit.Assert.assertFalse;
24 import static org.junit.Assert.assertTrue;
25
26 import java.util.ArrayList;
27 import java.util.Calendar;
28 import java.util.Date;
29 import java.util.HashMap;
30 import java.util.List;
31 import java.util.Map;
32
33 import javax.servlet.http.HttpServletRequest;
34 import javax.servlet.http.HttpServletResponse;
35
36 import org.junit.Test;
37 import org.seasar.cubby.internal.controller.ThreadContext;
38 import org.seasar.cubby.internal.controller.ThreadContext.Command;
39
40 public class CubbyFunctionsTest {
41
42 @Test
43 public void containsInCollection() {
44 List<String> action = new ArrayList<String>();
45 action.add("unvalidate");
46 action.add("validateRecord");
47 action.add("branch");
48 assertFalse(CubbyFunctions.contains(action, "validate"));
49 action.add("validate");
50 assertTrue(CubbyFunctions.contains(action, "validate"));
51 }
52
53 @Test
54 public void containsInArray() {
55 String[] array1 = { "unvalidate", "validateRecord", "branch" };
56 String[] array2 = { "unvalidate", "validateRecord", "branch",
57 "validate" };
58 assertFalse(CubbyFunctions.contains(array1, "validate"));
59 assertTrue(CubbyFunctions.contains(array2, "validate"));
60 }
61
62 @Test
63 public void containsInNull() {
64 assertFalse(CubbyFunctions.contains(null, null));
65 }
66
67 @Test
68 public void containesKey() {
69 Map<String, Object> map = new HashMap<String, Object>();
70 map.put("name", "value");
71 assertTrue(CubbyFunctions.containsKey(map, "name"));
72 assertFalse(CubbyFunctions.containsKey(map, "value"));
73 }
74
75 @Test
76 public void containesValue() {
77 Map<String, Object> map = new HashMap<String, Object>();
78 map.put("name", "value");
79 assertTrue(CubbyFunctions.containsValue(map, "value"));
80 assertFalse(CubbyFunctions.containsValue(map, "name"));
81 }
82
83 @Test
84 public void odd() {
85 assertEquals("a", CubbyFunctions.odd(0, "a, b, c"));
86 assertEquals("b", CubbyFunctions.odd(1, "a, b, c"));
87 assertEquals("c", CubbyFunctions.odd(2, "a, b, c"));
88 assertEquals("a", CubbyFunctions.odd(3, "a, b, c"));
89 assertEquals("b", CubbyFunctions.odd(4, "a, b, c"));
90 assertEquals("c", CubbyFunctions.odd(5, "a, b, c"));
91 }
92
93 @Test
94 public void out() {
95 assertEquals("abc&<>"'def", CubbyFunctions
96 .out("abc&<>\"'def"));
97 assertEquals("", CubbyFunctions.out(null));
98 }
99
100 @Test
101 public void dateFormat() {
102 Calendar calendar = Calendar.getInstance();
103 calendar.set(2008, Calendar.DECEMBER, 24);
104 Date date = calendar.getTime();
105 assertEquals("20081224", CubbyFunctions.dateFormat(date, "yyyyMMdd"));
106 assertEquals("", CubbyFunctions.dateFormat(new Object(), "yyyyMMdd"));
107 }
108
109 @Test
110 public void ifrender() {
111 assertEquals("abc", CubbyFunctions.ifrender(true, "abc"));
112 assertEquals(TagUtils.REMOVE_ATTRIBUTE, CubbyFunctions.ifrender(false,
113 "abc"));
114 }
115
116 @Test
117 public void urlWithUTF8() throws Exception {
118 HttpServletRequest request = createMock(HttpServletRequest.class);
119 expect(request.getCharacterEncoding()).andStubReturn("UTF-8");
120 HttpServletResponse response = createMock(HttpServletResponse.class);
121 replay(request, response);
122
123 ThreadContext.runInContext(request, response, new Command() {
124
125 public void execute(final HttpServletRequest request,
126 final HttpServletResponse response) throws Exception {
127 assertEquals("abc%20%E3%81%82%E3%81%84%E3%81%86",
128 CubbyFunctions.url("abc あいう"));
129 assertEquals("", CubbyFunctions.url(null));
130 }
131
132 });
133
134 verify(request, response);
135 }
136
137 @Test
138 public void urlWithWindows31J() throws Exception {
139 HttpServletRequest request = createMock(HttpServletRequest.class);
140 expect(request.getCharacterEncoding()).andStubReturn("Windows-31J");
141 HttpServletResponse response = createMock(HttpServletResponse.class);
142 replay(request, response);
143
144 ThreadContext.runInContext(request, response, new Command() {
145
146 public void execute(final HttpServletRequest request,
147 final HttpServletResponse response) throws Exception {
148 assertEquals("abc%20%82%A0%82%A2%82%A4", CubbyFunctions
149 .url("abc あいう"));
150 assertEquals("", CubbyFunctions.url(null));
151 }
152
153 });
154
155 verify(request, response);
156 }
157
158 }