1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.acegisecurity.ui.cas;
17
18 import junit.framework.TestCase;
19
20
21
22
23
24 import java.net.URLEncoder;
25
26 import org.springframework.mock.web.MockHttpServletRequest;
27 import org.springframework.mock.web.MockHttpServletResponse;
28
29
30 /***
31 * Tests {@link CasProcessingFilterEntryPoint}.
32 *
33 * @author Ben Alex
34 * @version $Id: CasProcessingFilterEntryPointTests.java,v 1.5 2005/11/17 00:55:48 benalex Exp $
35 */
36 public class CasProcessingFilterEntryPointTests extends TestCase {
37
38
39 public CasProcessingFilterEntryPointTests() {
40 super();
41 }
42
43 public CasProcessingFilterEntryPointTests(String arg0) {
44 super(arg0);
45 }
46
47
48
49 public final void setUp() throws Exception {
50 super.setUp();
51 }
52
53 public static void main(String[] args) {
54 junit.textui.TestRunner.run(CasProcessingFilterEntryPointTests.class);
55 }
56
57 public void testDetectsMissingLoginFormUrl() throws Exception {
58 CasProcessingFilterEntryPoint ep = new CasProcessingFilterEntryPoint();
59 ep.setServiceProperties(new ServiceProperties());
60
61 try {
62 ep.afterPropertiesSet();
63 fail("Should have thrown IllegalArgumentException");
64 } catch (IllegalArgumentException expected) {
65 assertEquals("loginUrl must be specified", expected.getMessage());
66 }
67 }
68
69 public void testDetectsMissingServiceProperties() throws Exception {
70 CasProcessingFilterEntryPoint ep = new CasProcessingFilterEntryPoint();
71 ep.setLoginUrl("https://cas/login");
72
73 try {
74 ep.afterPropertiesSet();
75 fail("Should have thrown IllegalArgumentException");
76 } catch (IllegalArgumentException expected) {
77 assertEquals("serviceProperties must be specified",
78 expected.getMessage());
79 }
80 }
81
82 public void testGettersSetters() {
83 CasProcessingFilterEntryPoint ep = new CasProcessingFilterEntryPoint();
84 ep.setLoginUrl("https://cas/login");
85 assertEquals("https://cas/login", ep.getLoginUrl());
86
87 ep.setServiceProperties(new ServiceProperties());
88 assertTrue(ep.getServiceProperties() != null);
89 }
90
91 public void testNormalOperationWithRenewFalse() throws Exception {
92 ServiceProperties sp = new ServiceProperties();
93 sp.setSendRenew(false);
94 sp.setService(
95 "https://mycompany.com/bigWebApp/j_acegi_cas_security_check");
96
97 CasProcessingFilterEntryPoint ep = new CasProcessingFilterEntryPoint();
98 ep.setLoginUrl("https://cas/login");
99 ep.setServiceProperties(sp);
100
101 MockHttpServletRequest request = new MockHttpServletRequest();
102 request.setRequestURI("/some_path");
103
104 MockHttpServletResponse response = new MockHttpServletResponse();
105
106 ep.afterPropertiesSet();
107 ep.commence(request, response, null);
108
109 assertEquals("https://cas/login?service="
110 + URLEncoder.encode(
111 "https://mycompany.com/bigWebApp/j_acegi_cas_security_check",
112 "UTF-8"), response.getRedirectedUrl());
113 }
114
115 public void testNormalOperationWithRenewTrue() throws Exception {
116 ServiceProperties sp = new ServiceProperties();
117 sp.setSendRenew(true);
118 sp.setService(
119 "https://mycompany.com/bigWebApp/j_acegi_cas_security_check");
120
121 CasProcessingFilterEntryPoint ep = new CasProcessingFilterEntryPoint();
122 ep.setLoginUrl("https://cas/login");
123 ep.setServiceProperties(sp);
124
125 MockHttpServletRequest request = new MockHttpServletRequest();
126 request.setRequestURI("/some_path");
127
128 MockHttpServletResponse response = new MockHttpServletResponse();
129
130 ep.afterPropertiesSet();
131 ep.commence(request, response, null);
132 assertEquals("https://cas/login?renew=true&service=https://mycompany.com/bigWebApp/j_acegi_cas_security_check",
133 response.getRedirectedUrl());
134 }
135 }