1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.myfaces.custom.security;
20  
21  import java.security.Principal;
22  
23  import junit.framework.Test;
24  import junit.framework.TestSuite;
25  
26  import org.apache.shale.test.base.AbstractJsfTestCase;
27  
28  /**
29   * @author cagatay (latest modification by $Author: skitching $)
30   * @version $Revision: 673833 $ $Date: 2008-07-03 16:58:05 -0500 (Thu, 03 Jul 2008) $
31   */
32  public class SecurityContextPropertyResolverTest extends AbstractJsfTestCase{
33  
34      protected SecurityContextPropertyResolver resolver;
35      
36      public SecurityContextPropertyResolverTest(String testName) {
37          super(testName);
38      }
39      
40      public void setUp() throws Exception{
41          super.setUp();
42          resolver = new SecurityContextPropertyResolver(null);
43      }
44      
45      public void tearDown() throws Exception{
46          super.tearDown();
47          resolver = null;
48      }
49      
50      public static Test suite() {
51          return new TestSuite(SecurityContextPropertyResolverTest.class);
52      }
53      
54      //#{securityContext.remoteUser}
55      public void testRemoteUser() {
56          request.setUserPrincipal(new TestPrincipalImpl("Ronaldinho"));
57          
58          SecurityContext securityContext = new SecurityContextImpl();
59          String user = (String) resolver.getValue(securityContext, "remoteUser");
60          assertEquals("Ronaldinho", user);
61      }
62      
63      public static class TestPrincipalImpl implements Principal {
64  
65          private String _name;
66  
67          public TestPrincipalImpl() {
68              // NoOp
69          }
70  
71          public TestPrincipalImpl(String name) {
72              this._name = name;
73          }
74  
75          public String getName() {
76              return _name;
77          }
78      }
79  }