/**
* Copyright 2008 The University of North Carolina at Chapel Hill
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package edu.unc.lib.dl.security.access.test;
import org.junit.Test;
public class UserSecurityProfileFilterTest {
@Test
public void filterTests() {
/*UserSecurityProfileFilter filter = new UserSecurityProfileFilter();
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
MockFilterChain chain = new MockFilterChain();
request.setServletPath("/test/");
request.addHeader("isMemberOf", "");
try {
filter.doFilterInternal(request, response, chain);
UserSecurityProfile user = (UserSecurityProfile)request.getSession().getAttribute("user");
Assert.assertNotNull(user);
Assert.assertTrue(user.getUserName().equals(""));
Assert.assertNotNull(user.getAccessGroups());
Assert.assertEquals(user.getAccessGroups().size(), 1);
Assert.assertTrue(user.getAccessGroups().contains(AccessGroupConstants.PUBLIC_GROUP));
Assert.assertNotNull(user.getDatastreamAccessCache());
//////////////
request = new MockHttpServletRequest();
response = new MockHttpServletResponse();
chain = new MockFilterChain();
request.setRemoteUser("testUser");
request.addHeader("isMemberOf", "testGroup");
filter.doFilterInternal(request, response, chain);
user = (UserSecurityProfile)request.getSession().getAttribute("user");
Assert.assertTrue("testUser".equals(user.getUserName()));
Assert.assertEquals(user.getAccessGroups().size(), 2);
////////////
request = new MockHttpServletRequest();
response = new MockHttpServletResponse();
chain = new MockFilterChain();
request.setRemoteUser("user");
user = new UserSecurityProfile();
user.setUserName("testUser");
user.getDatastreamAccessCache().put("testObject", AccessType.FILE);
request.getSession().setAttribute("user", user);
filter.doFilterInternal(request, response, chain);
user = (UserSecurityProfile)request.getSession().getAttribute("user");
Assert.assertTrue("user".equals(user.getUserName()));
Assert.assertEquals(user.getAccessGroups().size(), 1);
Assert.assertEquals(user.getDatastreamAccessCache().size(), 0);
/////////////
request = new MockHttpServletRequest();
response = new MockHttpServletResponse();
chain = new MockFilterChain();
String groups = "public;unc:lib:cdr:test";
request.setRemoteUser("testUser");
request.addHeader("isMemberOf", groups);
user = new UserSecurityProfile();
user.setUserName("testUser");
user.setAccessGroups(groups);
user.getDatastreamAccessCache().put("testObject", AccessType.FILE);
request.getSession().setAttribute("user", user);
filter.doFilterInternal(request, response, chain);
user = (UserSecurityProfile)request.getSession().getAttribute("user");
Assert.assertTrue("testUser".equals(user.getUserName()));
Assert.assertTrue(groups.equals(user.getIsMemeberOf()));
Assert.assertEquals(user.getAccessGroups().size(), 2);
Assert.assertEquals(user.getDatastreamAccessCache().size(), 1);
} catch (Exception e) {
e.printStackTrace();
Assert.fail(e.toString());
}*/
}
}