示例#1
0
  /**
   * @param sspHandler
   * @param el
   * @return
   */
  private TestSolution testLink(SSPHandler sspHandler, Element el) {
    ElementHandler<Element> elHandler = new ElementHandlerImpl(el);
    TestSolutionHandler tsHandler = new TestSolutionHandlerImpl();

    // reset the service for each tested element. We use the collection
    // handled by the service to feed the local collection of remarks
    prs.resetService();

    // check the pertinence of the link
    getDecidableElementsChecker().check(sspHandler, elHandler, tsHandler);

    // get the processRemark for eventually override it with the result
    // returned by the title pertinence checker
    ProcessRemark remark = prs.getRemarkList().iterator().next();

    // we check the pertinence of the title if and only if the result is
    // failed. This checker may eventually change the result from failed
    // to nmi but the inverse is impossible.
    if (tsHandler.getTestSolution().equals(TestSolution.FAILED)) {

      // check the pertinence of the title of the link
      String linkText =
          getDecidableElementsChecker().getTextElementBuilder().buildTextFromElement(el);

      if (testTitleAttributeLink(sspHandler, el, linkText).equals(TestSolution.NEED_MORE_INFO)) {
        // override result (evidence element have already been collected
        remark.setIssue(TestSolution.NEED_MORE_INFO);
        remark.setMessageCode(CHECK_LINK_PERTINENCE_MSG);
        remarks.add(remark);
        return TestSolution.NEED_MORE_INFO;
      }
    }

    remarks.add(remark);

    return tsHandler.getTestSolution();
  }