use of org.asqatasun.ruleimplementation.ElementHandler in project Asqatasun by Asqatasun.
the class Rgaa22Rule09081 method removeElementWithParentWithLangAttr.
/**
* Remove elements from the current elementHandler when an element has a
* parent with a lang attribute
*
* @param elementHandler
*/
private void removeElementWithParentWithLangAttr(ElementHandler<Element> elementHandler) {
ElementHandler elementWithParentWithLang = new ElementHandlerImpl();
for (Element el : elementHandler.get()) {
if (isElementHasParentWithLang(el)) {
elementWithParentWithLang.add(el);
}
}
elementHandler.removeAll(elementWithParentWithLang);
}
use of org.asqatasun.ruleimplementation.ElementHandler in project Asqatasun by Asqatasun.
the class Rgaa30Rule110102 method check.
@Override
protected void check(SSPHandler sspHandler, TestSolutionHandler testSolutionHandler) {
/* If the page has no input form element, the test is not applicable */
if (inputFormMap.entrySet().isEmpty()) {
testSolutionHandler.addTestSolution(TestSolution.NOT_APPLICABLE);
return;
}
for (Map.Entry<Element, ElementHandler<Element>> entry : inputFormMap.entrySet()) {
/* The attribute Presence Checker */
ElementChecker attributePresenceChecker = new AttributePresenceChecker(ID_ATTR, new ImmutablePair(TestSolution.PASSED, ""), new ImmutablePair(TestSolution.FAILED, ID_MISSING_MSG));
attributePresenceChecker.check(sspHandler, entry.getValue(), testSolutionHandler);
/* The attribute Emptiness Checker. Keep default value i.e failed
when attribute is empty
*/
ElementChecker attributeEmptinessChecker = new TextEmptinessChecker(new TextAttributeOfElementBuilder(ID_ATTR), ID_MISSING_MSG, null);
attributeEmptinessChecker.check(sspHandler, entry.getValue(), testSolutionHandler);
/* The id unicityChecker */
ElementChecker idUnicityChecker = new IdUnicityChecker(ID_NOT_UNIQUE_MSG);
idUnicityChecker.check(sspHandler, entry.getValue(), testSolutionHandler);
}
for (Map.Entry<Element, ElementHandler<Element>> entry : labelFormMap.entrySet()) {
/* The attribute Presence Checker */
ElementChecker attributePresenceChecker = new AttributePresenceChecker(FOR_ATTR, new ImmutablePair(TestSolution.PASSED, ""), new ImmutablePair(TestSolution.FAILED, FOR_MISSING_MSG));
attributePresenceChecker.check(sspHandler, entry.getValue(), testSolutionHandler);
/* The attribute Emptiness Checker. Keep default value i.e failed
when attribute is empty
*/
ElementChecker attributeEmptinessChecker = new TextEmptinessChecker(new TextAttributeOfElementBuilder(FOR_ATTR), FOR_MISSING_MSG, null);
attributeEmptinessChecker.check(sspHandler, entry.getValue(), testSolutionHandler);
}
for (Map.Entry<Element, ElementHandler<Element>> entry : inputFormMap.entrySet()) {
ElementHandler<Element> inputOnError = new ElementHandlerImpl();
/* Check if each input id attribute is linked to a for attribute*/
for (Element el : entry.getValue().get()) {
String id = el.id();
if (StringUtils.isNotBlank(id)) {
ElementHandler<Element> linkedLabelToInputHandler = new ElementHandlerImpl();
if (entry.getKey().select(LABEL_ELEMENT + " " + CssLikeSelectorBuilder.buildSelectorFromElementsAndAttributeValue(INPUT_ELEMENT, ID_ATTR, id)).isEmpty()) {
linkedLabelToInputHandler.addAll(entry.getKey().select(CssLikeSelectorBuilder.buildSelectorFromElementsAndAttributeValue(LABEL_ELEMENT, FOR_ATTR, id)));
if (linkedLabelToInputHandler.isEmpty()) {
inputOnError.add(el);
}
}
}
}
ElementChecker elementPresenceChecker = new ElementPresenceChecker(new ImmutablePair(TestSolution.FAILED, INVALID_INPUT_MSG), new ImmutablePair(TestSolution.PASSED, ""));
elementPresenceChecker.check(sspHandler, inputOnError, testSolutionHandler);
}
for (Map.Entry<Element, ElementHandler<Element>> entry : labelFormMap.entrySet()) {
ElementHandler<Element> labelOnError = new ElementHandlerImpl();
/* Check if each label for attribute is associated to an input id attribute*/
for (Element el : entry.getValue().get()) {
String id = el.attr(FOR_ATTR);
if (StringUtils.isNotBlank(id)) {
ElementHandler<Element> linkedLabelToInputHandler = new ElementHandlerImpl();
linkedLabelToInputHandler.addAll(entry.getKey().select(CssLikeSelectorBuilder.buildSelectorFromId(id)));
if (linkedLabelToInputHandler.isEmpty()) {
labelOnError.add(el);
}
}
}
ElementChecker elementPresenceChecker = new ElementPresenceChecker(new ImmutablePair(TestSolution.FAILED, INVALID_LABEL_MSG), new ImmutablePair(TestSolution.PASSED, ""));
elementPresenceChecker.check(sspHandler, labelOnError, testSolutionHandler);
}
}
use of org.asqatasun.ruleimplementation.ElementHandler in project Asqatasun by Asqatasun.
the class Rgaa30Rule110103 method check.
@Override
protected void check(SSPHandler sspHandler, TestSolutionHandler testSolutionHandler) {
/* If the page has no input form element, the test is not applicable */
if (inputFormMap.entrySet().isEmpty()) {
testSolutionHandler.addTestSolution(TestSolution.NOT_APPLICABLE);
return;
}
for (Map.Entry<Element, ElementHandler<Element>> entry : inputFormMap.entrySet()) {
/* The attribute Emptiness Checker. Keep default value i.e failed
when attribute is empty
*/
ElementChecker attributeEmptinessChecker = new TextEmptinessChecker(new TextAttributeOfElementBuilder(ARIA_LABELLEDBY_ATTR), ARIA_LABELLEDBY_EMPTY_MSG, null);
attributeEmptinessChecker.check(sspHandler, entry.getValue(), testSolutionHandler);
ElementHandler<Element> inputWithoutLabel = new ElementHandlerImpl();
ElementHandler<Element> notUniqueLabel = new ElementHandlerImpl();
for (Element el : entry.getValue().get()) {
if (StringUtils.isNotEmpty(el.attr(ARIA_LABELLEDBY_ATTR))) {
ElementHandler<Element> labelHandler = new ElementHandlerImpl();
labelHandler.addAll(entry.getKey().select(CssLikeSelectorBuilder.buildSelectorFromAttributeTypeAndValue(ID_ATTR, el.attr(ARIA_LABELLEDBY_ATTR))));
if (labelHandler.get().isEmpty()) {
inputWithoutLabel.add(el);
} else if (labelHandler.get().size() > 1) {
notUniqueLabel.add(el);
notUniqueLabel.addAll(labelHandler.get());
}
}
}
/* Check if the form element has a label associated */
ElementChecker elementPresenceChecker = new ElementPresenceChecker(new ImmutablePair(TestSolution.FAILED, FORM_ELEMENT_WITHOUT_LABEL_MSG), new ImmutablePair(TestSolution.PASSED, ""));
elementPresenceChecker.check(sspHandler, inputWithoutLabel, testSolutionHandler);
/* Check if the id attr of the label associated to the form element is unique */
elementPresenceChecker = new ElementPresenceChecker(new ImmutablePair(TestSolution.FAILED, FORM_ELEMENT_WITH_NOT_UNIQUE_LABEL_MSG), new ImmutablePair(TestSolution.PASSED, ""));
elementPresenceChecker.check(sspHandler, notUniqueLabel, testSolutionHandler);
}
}
use of org.asqatasun.ruleimplementation.ElementHandler in project Asqatasun by Asqatasun.
the class Rgaa32016Rule110102 method check.
@Override
protected void check(SSPHandler sspHandler, TestSolutionHandler testSolutionHandler) {
/* If the page has no input form element, the test is not applicable */
if (inputFormMap.entrySet().isEmpty()) {
testSolutionHandler.addTestSolution(TestSolution.NOT_APPLICABLE);
return;
}
for (Map.Entry<Element, ElementHandler<Element>> entry : inputFormMap.entrySet()) {
/* The attribute Presence Checker */
ElementChecker attributePresenceChecker = new AttributePresenceChecker(ID_ATTR, new ImmutablePair(TestSolution.PASSED, ""), new ImmutablePair(TestSolution.FAILED, ID_MISSING_MSG));
attributePresenceChecker.check(sspHandler, entry.getValue(), testSolutionHandler);
/* The attribute Emptiness Checker. Keep default value i.e failed
when attribute is empty
*/
ElementChecker attributeEmptinessChecker = new TextEmptinessChecker(new TextAttributeOfElementBuilder(ID_ATTR), ID_MISSING_MSG, null);
attributeEmptinessChecker.check(sspHandler, entry.getValue(), testSolutionHandler);
/* The id unicityChecker */
ElementChecker idUnicityChecker = new IdUnicityChecker(ID_NOT_UNIQUE_MSG);
idUnicityChecker.check(sspHandler, entry.getValue(), testSolutionHandler);
}
for (Map.Entry<Element, ElementHandler<Element>> entry : labelFormMap.entrySet()) {
/* The attribute Presence Checker */
ElementChecker attributePresenceChecker = new AttributePresenceChecker(FOR_ATTR, new ImmutablePair(TestSolution.PASSED, ""), new ImmutablePair(TestSolution.FAILED, FOR_MISSING_MSG));
attributePresenceChecker.check(sspHandler, entry.getValue(), testSolutionHandler);
/* The attribute Emptiness Checker. Keep default value i.e failed
when attribute is empty
*/
ElementChecker attributeEmptinessChecker = new TextEmptinessChecker(new TextAttributeOfElementBuilder(FOR_ATTR), FOR_MISSING_MSG, null);
attributeEmptinessChecker.check(sspHandler, entry.getValue(), testSolutionHandler);
}
for (Map.Entry<Element, ElementHandler<Element>> entry : inputFormMap.entrySet()) {
ElementHandler<Element> inputOnError = new ElementHandlerImpl();
/* Check if each input id attribute is linked to a for attribute*/
for (Element el : entry.getValue().get()) {
String id = el.id();
if (StringUtils.isNotBlank(id)) {
ElementHandler<Element> linkedLabelToInputHandler = new ElementHandlerImpl();
if (entry.getKey().select(LABEL_ELEMENT + " " + CssLikeSelectorBuilder.buildSelectorFromElementsAndAttributeValue(INPUT_ELEMENT, ID_ATTR, id)).isEmpty()) {
linkedLabelToInputHandler.addAll(entry.getKey().select(CssLikeSelectorBuilder.buildSelectorFromElementsAndAttributeValue(LABEL_ELEMENT, FOR_ATTR, id)));
if (linkedLabelToInputHandler.isEmpty()) {
inputOnError.add(el);
}
}
}
}
ElementChecker elementPresenceChecker = new ElementPresenceChecker(new ImmutablePair(TestSolution.FAILED, INVALID_INPUT_MSG), new ImmutablePair(TestSolution.PASSED, ""));
elementPresenceChecker.check(sspHandler, inputOnError, testSolutionHandler);
}
for (Map.Entry<Element, ElementHandler<Element>> entry : labelFormMap.entrySet()) {
ElementHandler<Element> labelOnError = new ElementHandlerImpl();
/* Check if each label for attribute is associated to an input id attribute*/
for (Element el : entry.getValue().get()) {
String id = el.attr(FOR_ATTR);
if (StringUtils.isNotBlank(id)) {
ElementHandler<Element> linkedLabelToInputHandler = new ElementHandlerImpl();
linkedLabelToInputHandler.addAll(entry.getKey().select(CssLikeSelectorBuilder.buildSelectorFromId(id)));
if (linkedLabelToInputHandler.isEmpty()) {
labelOnError.add(el);
}
}
}
ElementChecker elementPresenceChecker = new ElementPresenceChecker(new ImmutablePair(TestSolution.FAILED, INVALID_LABEL_MSG), new ImmutablePair(TestSolution.PASSED, ""));
elementPresenceChecker.check(sspHandler, labelOnError, testSolutionHandler);
}
}
Aggregations