List of usage examples for org.jsoup.nodes Element attr
public String attr(String attributeKey)
From source file:org.asqatasun.rules.accessiweb22.Aw22Rule11013.java
@Override protected void check(SSPHandler sspHandler, TestSolutionHandler testSolutionHandler) { if (explicitLabelElements.isEmpty() && innerControlLabelElements.isEmpty()) { testSolutionHandler.addTestSolution(TestSolution.NOT_APPLICABLE); return;// w w w .j a v a 2 s . c om } // if all the label are explicitely defined, the test is passed if (innerControlLabelElements.isEmpty()) { // add the explicit label element to main handler for counter // purpose innerControlLabelElements.addAll(explicitLabelElements.get()); testSolutionHandler.addTestSolution(TestSolution.PASSED); return; } ElementHandler<Element> labelOnError = new ElementHandlerImpl(); for (Element el : innerControlLabelElements.get()) { if (!isForAttributeOfLabelEqualsToIdAttributeOfFormField(el, el.attr(FOR_ATTR))) { labelOnError.add(el); } } // use this checker to create sourceCodeRemark when needed ElementChecker checker = new ElementPresenceChecker( new ImmutablePair(TestSolution.FAILED, INVALID_LABEL_MSG), new ImmutablePair(TestSolution.PASSED, "")); checker.check(sspHandler, labelOnError, testSolutionHandler); }
From source file:org.asqatasun.rules.accessiweb22.Aw22Rule13012.java
/** * @param element/*from ww w .ja va2s . c o m*/ * @return whether the given element is an immediate redirection */ private boolean isImmediateRedirection(Element element) { String contentAttributeContent = element.attr(CONTENT_ATTR); String[] contentAttributeValues = contentAttributeContent.split(SEMI_COLON_CHAR); return !(contentAttributeValues != null && contentAttributeValues.length == 2 && Integer.valueOf(StringUtils.trim(contentAttributeValues[0])) > 0 && contentAttributeValues[1].toLowerCase().startsWith(URL_STR)); }
From source file:org.asqatasun.rules.elementchecker.attribute.AttributeWithValuePresenceChecker.java
/** * This methods checks whether a given attribute is present for a set of * elements/*from ww w . j a v a2s . co m*/ * * @param elements * @param testSolutionHandler */ private void checkAttributeWithValuePresence(Elements elements, TestSolutionHandler testSolutionHandler) { if (elements.isEmpty()) { testSolutionHandler.addTestSolution(TestSolution.NOT_APPLICABLE); return; } TestSolution testSolution = TestSolution.PASSED; for (Element el : elements) { if (!el.hasAttr(attributeName) || (el.hasAttr(attributeName) && !el.attr(attributeName).equals(attributeValue))) { testSolution = setTestSolution(testSolution, getFailureSolution()); createSourceCodeRemark(getFailureSolution(), el, getFailureMsgCode()); } else if (StringUtils.isNotBlank(getSuccessMsgCode())) { testSolution = setTestSolution(testSolution, getSuccessSolution()); createSourceCodeRemark(getSuccessSolution(), el, getSuccessMsgCode()); } } testSolutionHandler.addTestSolution(testSolution); }
From source file:org.asqatasun.rules.elementchecker.ElementCheckerImpl.java
/** * //from w ww. jav a 2s .c o m * @param element * @param attributeName * @param isExternalResource * @return the text content of an attribute */ protected String buildAttributeContent(Element element, String attributeName, boolean isExternalResource) { if (!element.hasAttr(attributeName)) { return ABSENT_ATTRIBUTE_VALUE; } else if (isExternalResource && !element.attr(ABS_URL_PREFIX + attributeName).isEmpty()) { return element.absUrl(attributeName).trim(); } else { return element.attr(attributeName).trim(); } }
From source file:org.asqatasun.rules.elementchecker.lang.LangChecker.java
/** * //from w w w.j a v a 2 s. c om * @param element * @param sspHandler * @return */ protected String extractLangDefinitionFromElement(Element element, SSPHandler sspHandler) { String lang = element.attr(LANG_ATTR).trim(); String xmlLang = element.attr(XML_LANG_ATTR).trim(); // if the lang attributes are identical, return one of them if (xmlLang.isEmpty() && !lang.isEmpty()) { return lang; } else if (!xmlLang.isEmpty() && lang.isEmpty()) { return xmlLang; } else { if (xmlLang.equalsIgnoreCase(lang)) { return lang; // if the doctype defines html document, returns the lang attribute // value } else if (!hasSSPXhtmlDoctype(sspHandler)) { return lang; } else { // if the doctype defines a xhtml document, returns the xml:lang // attribute value return xmlLang; } } }
From source file:org.asqatasun.rules.elementselector.AreaElementSelector.java
/** * //from w ww . jav a2s . co m * @param sspHandler * @param element * @return */ private boolean isMapAssociatedWithImage(SSPHandler sspHandler, Element element) { if (StringUtils.isBlank(element.attr(NAME_ATTR))) { return false; } String query = CssLikeSelectorBuilder.buildSelectorFromAttributeTypeAndValue(USEMAP_ATTR, element.attr(NAME_ATTR)); if (CssLikeSelectorBuilder.getNumberOfElements(sspHandler, query) > 0) { return true; } query = CssLikeSelectorBuilder.buildSelectorFromAttributeTypeAndValue(USEMAP_ATTR, '#' + element.attr(NAME_ATTR)); return CssLikeSelectorBuilder.getNumberOfElements(sspHandler, query) > 0; }
From source file:org.asqatasun.rules.elementselector.LinkElementSelector.java
/** * /*ww w. ja va 2 s . c o m*/ * @param linkElement * @param linkText * @return whether the current link have a context */ protected boolean doesLinkHaveContext(Element linkElement, String linkText) { // does the current link have a title attribute? if (considerTitleAsContext && linkElement.hasAttr(TITLE_ATTR) && !StringUtils.equalsIgnoreCase(linkElement.attr(TITLE_ATTR), linkText)) { return true; } if (linkElement.hasAttr(ARIA_LABEL_ATTR) && StringUtils.isNotBlank(linkElement.attr(ARIA_LABEL_ATTR))) { return true; } if (linkElement.hasAttr(ARIA_LABELLEDBY_ATTR) && StringUtils.isNotBlank(linkElement.attr(ARIA_LABELLEDBY_ATTR))) { return true; } // does the parent of the current link have some text? if (StringUtils.isNotBlank(linkElement.parent().ownText())) { return true; } // does the current element have a previous sibling of heading type? if (isOneOfPrecedingSiblingofHeadingType(linkElement)) { return true; } // does one of the parent of the current element have a previous sibling // of heading type or is found in the PARENT_CONTEXT_ELEMENTS list? for (Element parent : linkElement.parents()) { if (PARENT_CONTEXT_ELEMENTS.contains(parent.tagName()) || isOneOfPrecedingSiblingofHeadingType(parent)) { return true; } } return false; }
From source file:org.asqatasun.rules.rgaa22.Rgaa22Rule06021.java
/** * /* ww w. j a va 2 s . co m*/ * @param element * @return */ private boolean doesElementHaveRequestedTargetAttribute(Element element) { if (!element.hasAttr(TARGET_ATTR)) { return false; } String targetValue = element.attr(TARGET_ATTR); return !(StringUtils.equalsIgnoreCase(targetValue, TOP_TARGET_VALUE) || StringUtils.equalsIgnoreCase(targetValue, PARENT_TARGET_VALUE) || StringUtils.equalsIgnoreCase(targetValue, SELF_TARGET_VALUE)); }
From source file:org.asqatasun.rules.rgaa22.Rgaa22Rule06031.java
/** * /* w w w. jav a2s . c o m*/ * @param element * @return */ private boolean doesElementHaveRequestedTargetAttribute(Element element) { if (!element.hasAttr(TARGET_ATTR)) { return false; } String targetValue = element.attr(TARGET_ATTR); if (StringUtils.equalsIgnoreCase(targetValue, TOP_TARGET_VALUE) || StringUtils.equalsIgnoreCase(targetValue, PARENT_TARGET_VALUE) || StringUtils.equalsIgnoreCase(targetValue, SELF_TARGET_VALUE)) { return false; } return true; }
From source file:org.asqatasun.rules.rgaa30.Rgaa30Rule010204.java
/** * /*from ww w . j a v a2 s .c o m*/ * @param svgElements * @param svgElementsWithoutRoleImage * @param ariaAttrOnSvgOrChild * @param svgElementsWithDescOrTitleChild * @param titleAttrOnSvgOrChild */ private void extractMalformedPatternDetectedElements(ElementHandler<Element> svgElements, ElementHandler<Element> svgElementsWithoutRoleImage, ElementHandler<Element> ariaAttrOnSvgOrChild, ElementHandler<Element> svgElementsWithDescOrTitleChild, ElementHandler<Element> titleAttrOnSvgOrChild, ElementHandler<Element> wellFormedSvgElements) { for (Element element : svgElements.get()) { boolean patternDetected = false; if (!StringUtils.equalsIgnoreCase(element.attr(ROLE_ATTR), "img")) { svgElementsWithoutRoleImage.add(element); patternDetected = true; } if (element.hasAttr(ARIA_LABEL_ATTR) || element.hasAttr(ARIA_LABELLEDBY_ATTR) || element.hasAttr(ARIA_DESCRIBEDBY_ATTR) || !element.select(ARIA_DESCRIBEDBY_CSS_LIKE_QUERY + "," + ARIA_LABEL_CSS_LIKE_QUERY + "," + ARIA_LABELLEDBY_CSS_LIKE_QUERY).isEmpty()) { ariaAttrOnSvgOrChild.add(element); patternDetected = true; } if (!element.select(NOT_EMPTY_ARIA_TITLE_CSS_LIKE_QUERY + "," + NOT_EMPTY_ARIA_DESC_CSS_LIKE_QUERY) .isEmpty()) { svgElementsWithDescOrTitleChild.add(element); patternDetected = true; } if (element.hasAttr(TITLE_ELEMENT) || !element.select("[title]").isEmpty()) { titleAttrOnSvgOrChild.add(element); patternDetected = true; } if (wellFormedSvgElements != null && !patternDetected) { wellFormedSvgElements.add(element); } } }