Filter Param Name exists test.
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
boolean oneFailed = false;
Enumeration filterEnum = descriptor.getServletFilterDescriptors().elements();
if (filterEnum.hasMoreElements()) {
// get the filters in this .war
while (filterEnum.hasMoreElements()) {
ServletFilterDescriptor filter = (ServletFilterDescriptor)filterEnum.nextElement();
HashSet<String> envSet = new HashSet<String>();
Vector epVector = filter.getInitializationParameters();
for ( int i = 0; i < epVector.size(); i++) {
EnvironmentProperty ep = (EnvironmentProperty)epVector.elementAt(i);
String epName = ep.getName();
if (epName.length() == 0) {
oneFailed = true;
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.addErrorDetails(smh.getLocalString
(getClass().getName() + ".failed1",
"Error: Param name/value entry should of finite length."));
}
else {
// Do duplicate name test.
if (!envSet.contains(epName)) {
envSet.add(epName);
} else {
oneFailed = true;
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.addErrorDetails(smh.getLocalString
(getClass().getName() + ".failed2",
"Error: Duplicate param names are not allowed."));
}
}
}
}
if (oneFailed) {
result.setStatus(Result.FAILED);
} else {
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.passed(smh.getLocalString
(getClass().getName() + ".passed",
"All init parameter names are unique"));
}
} else {
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 filter within the web archive [ {0} ]",
new Object[] {descriptor.getName()}));
}
return result;