1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.cubby.tags;
17
18 import javax.servlet.http.HttpSession;
19
20 import org.jdom.Element;
21 import org.seasar.cubby.controller.ThreadContext;
22 import org.seasar.cubby.util.TokenHelper;
23 import org.seasar.framework.mock.servlet.MockHttpServletRequestImpl;
24 import org.seasar.framework.mock.servlet.MockServletContextImpl;
25
26 public class TokenTagTest extends SimpleTagTestCase {
27
28 TokenTag tag;
29
30 @Override
31 protected void setUp() throws Exception {
32 super.setUp();
33 tag = new TokenTag();
34 setupSimpleTag(tag);
35 }
36
37 @SuppressWarnings("unchecked")
38 public void testDoTag1() throws Exception {
39 MockServletContextImpl servletContext = new MockServletContextImpl("/cubby");
40 ThreadContext.setRequest(new MockHttpServletRequestImpl(servletContext, "/servlet"));
41 HttpSession session = ThreadContext.getRequest().getSession();
42
43 tag.doTag();
44 Element element = getResultAsElementFromContext();
45 String message = "nameが指定されている場合";
46 assertEquals(message, 3, element.getAttributes().size());
47 assertEquals(message, "input", element.getName());
48 assertEquals(message, "hidden", element.getAttributeValue("type"));
49 assertTrue(message, element.getAttributeValue("value").length() != 0);
50 assertEquals(message, TokenHelper.DEFAULT_TOKEN_NAME, element
51 .getAttributeValue("name"));
52 assertTrue(message, TokenHelper.validateToken(session, element
53 .getAttributeValue("value")));
54 }
55
56 @SuppressWarnings("unchecked")
57 public void testDoTag2() throws Exception {
58 MockServletContextImpl servletContext = new MockServletContextImpl("/cubby");
59 ThreadContext.setRequest(new MockHttpServletRequestImpl(servletContext, "/servlet"));
60 HttpSession session = ThreadContext.getRequest().getSession();
61
62 tag.setName("cubby.token2");
63 tag.doTag();
64 Element element = getResultAsElementFromContext();
65 String message = "nameが指定されている場合";
66 assertEquals(message, 3, element.getAttributes().size());
67 assertEquals(message, "input", element.getName());
68 assertEquals(message, "hidden", element.getAttributeValue("type"));
69 assertTrue(message, element.getAttributeValue("value").length() != 0);
70 assertEquals(message, "cubby.token2", element
71 .getAttributeValue("name"));
72 assertTrue(message, TokenHelper.validateToken(session, element
73 .getAttributeValue("value")));
74 }
75
76 @SuppressWarnings("unchecked")
77 public void testDoTag3() throws Exception {
78 MockServletContextImpl servletContext = new MockServletContextImpl("/cubby");
79 ThreadContext.setRequest(new MockHttpServletRequestImpl(servletContext, "/servlet"));
80 HttpSession session = ThreadContext.getRequest().getSession();
81
82 tag.setDynamicAttribute(null, "id", "token");
83 tag.doTag();
84 Element element = getResultAsElementFromContext();
85 String message = "idが指定されている場合";
86 assertEquals(message, 4, element.getAttributes().size());
87 assertEquals(message, "input", element.getName());
88 assertEquals(message, "token", element.getAttributeValue("id"));
89 assertEquals(message, "hidden", element.getAttributeValue("type"));
90 assertTrue(message, element.getAttributeValue("value").length() != 0);
91 assertEquals(message, TokenHelper.DEFAULT_TOKEN_NAME, element
92 .getAttributeValue("name"));
93 assertTrue(message, TokenHelper.validateToken(session, element
94 .getAttributeValue("value")));
95 }
96
97 public void testRequestIsNull() throws Exception {
98 ThreadContext.setRequest(null);
99 tag.setDynamicAttribute(null, "id", "token");
100 try {
101 tag.doTag();
102 fail("ThreadContext.getRequest()がnullの場合、ここは通らない");
103 } catch (IllegalStateException e) {
104 }
105 }
106 }