1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.acegisecurity.taglibs.velocity;
17
18 import junit.framework.TestCase;
19
20 import org.acegisecurity.GrantedAuthority;
21 import org.acegisecurity.GrantedAuthorityImpl;
22
23 import org.acegisecurity.context.SecurityContextHolder;
24 import org.acegisecurity.context.SecurityContextImpl;
25
26 import org.acegisecurity.providers.TestingAuthenticationToken;
27
28
29 /***
30 * DOCUMENT ME!
31 */
32 public class AuthzImplAuthorizeTagTest extends TestCase {
33
34
35 private Authz authz = new AuthzImpl();
36 private TestingAuthenticationToken currentUser;
37
38
39
40 protected void setUp() throws Exception {
41 super.setUp();
42
43 currentUser = new TestingAuthenticationToken("abc", "123",
44 new GrantedAuthority[] {new GrantedAuthorityImpl(
45 "ROLE_SUPERVISOR"), new GrantedAuthorityImpl(
46 "ROLE_TELLER"),});
47
48 SecurityContextHolder.getContext().setAuthentication(currentUser);
49 }
50
51 protected void tearDown() throws Exception {
52 SecurityContextHolder.setContext(new SecurityContextImpl());
53 }
54
55 public void testAlwaysReturnsUnauthorizedIfNoUserFound() {
56 SecurityContextHolder.getContext().setAuthentication(null);
57
58
59 assertFalse(authz.allGranted("ROLE_TELLER"));
60 }
61
62 public void testDefaultsToNotOutputtingBodyWhenNoRequiredAuthorities() {
63
64 assertFalse(authz.allGranted(""));
65 assertFalse(authz.anyGranted(""));
66 assertFalse(authz.noneGranted(""));
67 }
68
69 public void testOutputsBodyIfOneRolePresent() {
70
71 assertTrue(authz.anyGranted("ROLE_TELLER"));
72 }
73
74 public void testOutputsBodyWhenAllGranted() {
75
76 assertTrue(authz.allGranted("ROLE_SUPERVISOR,ROLE_TELLER"));
77 }
78
79 public void testOutputsBodyWhenNotGrantedSatisfied() {
80
81 assertTrue(authz.noneGranted("ROLE_BANKER"));
82 }
83
84 public void testPreventsBodyOutputIfNoSecureContext() {
85 SecurityContextHolder.getContext().setAuthentication(null);
86
87
88 assertFalse(authz.anyGranted("ROLE_BANKER"));
89 }
90
91 public void testSkipsBodyIfNoAnyRolePresent() {
92
93 assertFalse(authz.anyGranted("ROLE_BANKER"));
94 }
95
96 public void testSkipsBodyWhenMissingAnAllGranted() {
97
98 assertFalse(authz.allGranted("ROLE_SUPERVISOR,ROLE_TELLER,ROLE_BANKER"));
99 }
100
101 public void testSkipsBodyWhenNotGrantedUnsatisfied() {
102
103 assertFalse(authz.noneGranted("ROLE_TELLER"));
104 }
105 }