Servlet Param Name exists test.
Set servlets;
Iterator servItr;
String epName = null;
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
WebComponentDescriptor servlet = null;
Enumeration en;
EnvironmentProperty ep = null;
boolean oneFailed = false;
boolean duplicate = false;
if (!descriptor.getServletDescriptors().isEmpty()) {
// get the servlets in this .war
servlets = descriptor.getServletDescriptors();
servItr = servlets.iterator();
// test the servlets in this .war
while (servItr.hasNext()) {
servlet = (WebComponentDescriptor)servItr.next();
HashSet<String> envSet = new HashSet<String>();
for ( en = servlet.getInitializationParameters(); en.hasMoreElements();) {
ep = (EnvironmentProperty)en.nextElement();
epName = ep.getName();
if (epName.length() != 0) {
// Do duplicate name test.
duplicate = checkDuplicate(epName, envSet);
} else {
oneFailed = true;
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.addErrorDetails(smh.getLocalString
(getClass().getName() + ".failed",
"Error: Param name/value entry should of finite length."));
}
if ( !duplicate) {
envSet.add(epName);
}
else {
oneFailed = true;
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.addErrorDetails(smh.getLocalString
(getClass().getName() + ".failed",
"Error: Duplicate param names are not allowed."));
}
}
}
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.addGoodDetails(smh.getLocalString
(getClass().getName() + ".passed",
"Param named/value exists for in the servlet [ {0} ].",
new Object[] {servlet.getName()}));
} else {
result.setStatus(Result.NOT_APPLICABLE);
result.addNaDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.notApplicable(smh.getLocalString
(getClass().getName() + ".notApplicable",
"There are no initialization parameters for the servlet within the web archive [ {0} ]",
new Object[] {descriptor.getName()}));
return result;
}
if (oneFailed) {
result.setStatus(Result.FAILED);
} else {
result.setStatus(Result.PASSED);
}
return result;