blob: a356b0d8c7acad64caf097507c6cae2c7308bcaf [file] [log] [blame]
/*
* Copyright 2003,2004 The Apache Software Foundation.
*
* 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 org.apache.pluto.testsuite.test;
import javax.portlet.PortletRequest;
import org.apache.pluto.testsuite.TestResult;
/**
* @author <a href="mailto:ddewolf@apache.org">David H. DeWolf</a>
* @author <a href="mailto:zheng@apache.org">ZHENG Zhong</a>
*/
public class SecurityMappingTest extends AbstractReflectivePortletTest {
// Test Methods ------------------------------------------------------------
protected TestResult checkIsUserInMappedRole(PortletRequest request) {
TestResult result = isUserLoggedIn(request);
result.setDescription("Test if user is in mapped role.");
if (result.getReturnCode() == TestResult.WARNING) {
return result;
}
ExpectedResults expectedResults = ExpectedResults.getInstance();
String role = expectedResults.getMappedSecurityRole();
if (request.isUserInRole(role)) {
result.setReturnCode(TestResult.PASSED);
} else {
result.setReturnCode(TestResult.WARNING);
result.setResultMessage("User is not in the expected role: " + role
+ ". This may be due to misconfiuration.");
}
return result;
}
protected TestResult checkIsUserInUnmappedRole(PortletRequest request) {
TestResult result = isUserLoggedIn(request);
result.setDescription("Test if user is in unmapped role");
if (result.getReturnCode() == TestResult.WARNING) {
return result;
}
ExpectedResults expectedResults = ExpectedResults.getInstance();
String role = expectedResults.getUnmappedSecurityRole();
if (request.isUserInRole(role)) {
result.setReturnCode(TestResult.PASSED);
} else {
result.setReturnCode(TestResult.WARNING);
result.setResultMessage("User is not in the expected role: " + role
+ ". This may be due to misconfiuration.");
}
return result;
}
protected TestResult checkIsUserIndUndeclaredRole(PortletRequest request) {
TestResult result = isUserLoggedIn(request);
result.setDescription("Test if user is in undeclared role");
if (result.getReturnCode() == TestResult.WARNING) {
return result;
}
String fakeRole = "fakeTestRoleFooBar";
if (!request.isUserInRole(fakeRole)) {
result.setReturnCode(TestResult.PASSED);
} else {
result.setReturnCode(TestResult.FAILED);
result.setResultMessage("User is in the fake role named " + fakeRole);
}
return result;
}
// Private Methods ---------------------------------------------------------
private TestResult isUserLoggedIn(PortletRequest request) {
TestResult result = new TestResult();
if (request.getRemoteUser() == null) {
result.setReturnCode(TestResult.WARNING);
result.setResultMessage("User is not logged in.");
}
return result;
}
}