Package com.crawljax.core.state

Examples of com.crawljax.core.state.Eventable


  }

  @Test
  public void domChangeNotifierIsCalled() {
    StateVertex stateBefore = mock(StateVertex.class);
    Eventable eventable = mock(Eventable.class);
    StateVertex stateAfter = mock(StateVertex.class);
    String oldDom = "old";
    String newDom = "new";
    when(stateBefore.getDom()).thenReturn(oldDom);
    when(stateAfter.getDom()).thenReturn(newDom);
View Full Code Here


  }

  @Test
  public void fireEventFailedIsCalled() {
    List<Eventable> path = ImmutableList.of();
    Eventable eventable = mock(Eventable.class);
    plugins.runOnFireEventFailedPlugins(context, eventable, path);
    verify(fireEventFailedPlugin).onFireEventFailed(context, eventable, path);
    assertThat(counterFor(OnFireEventFailedPlugin.class), is(1));
  }
View Full Code Here

  }

  @Test
  public void whenDomChangeErrorsTheDefaultIsUsed() {
    StateVertex stateBefore = mock(StateVertex.class);
    Eventable eventable = mock(Eventable.class);
    StateVertex stateAfter = mock(StateVertex.class);
    String oldDom = "old";
    String newDom = "new";
    when(stateBefore.getDom()).thenReturn(oldDom);
    when(stateAfter.getDom()).thenReturn(newDom);
View Full Code Here

   * @param eventable
   *            the eventable to fire
   * @return true iff the event is fired
   */
  private boolean fireEvent(Eventable eventable) {
    Eventable eventToFire = eventable;
    if (eventable.getIdentification().getHow().toString().equals("xpath")
            && eventable.getRelatedFrame().equals("")) {
      eventToFire = resolveByXpath(eventable, eventToFire);
    }
    boolean isFired = false;
    try {
      isFired = browser.fireEventAndWait(eventToFire);
    } catch (ElementNotVisibleException | NoSuchElementException e) {
      if (crawlRules.isCrawlHiddenAnchors() && eventToFire.getElement() != null
              && "A".equals(eventToFire.getElement().getTag())) {
        isFired = visitAnchorHrefIfPossible(eventToFire);
      } else {
        LOG.debug("Ignoring invisble element {}", eventToFire.getElement());
      }
    } catch (InterruptedException e) {
      LOG.debug("Interrupted during fire event");
      Thread.currentThread().interrupt();
      return false;
View Full Code Here

    String newXPath = new ElementResolver(eventable, browser).resolve();
    if (newXPath != null && !xpath.equals(newXPath)) {
      LOG.debug("XPath changed from {} to {} relatedFrame: {}", xpath, newXPath,
              eventable.getRelatedFrame());
      eventToFire =
              new Eventable(new Identification(Identification.How.xpath, newXPath),
                      eventType);
    }
    return eventToFire;
  }
View Full Code Here

    CandidateCrawlAction action =
            candidateActionCache.pollActionOrNull(stateMachine.getCurrentState());
    while (action != null && !interrupted) {
      CandidateElement element = action.getCandidateElement();
      if (element.allConditionsSatisfied(browser)) {
        Eventable event = new Eventable(element, action.getEventType());
        handleInputElements(event);
        waitForRefreshTagIfAny(event);

        boolean fired = fireEvent(event);
        if (fired) {
View Full Code Here

    List<Map<String, String>> elements =
            Lists.newArrayListWithCapacity(candidateElements.size());

    for (CandidateElementPosition element : candidateElements) {
      Eventable eventable = getEventableByCandidateElementInState(state, element);
      StateVertex toState = null;
      Map<String, String> elementMap = new HashMap<String, String>();
      elementMap.put("xpath", element.getXpath());
      elementMap
              .put("left", "" + (element.getLeft() - 3));
      elementMap.put("top", "" + (element.getTop() - 3));
      elementMap.put("width", "" + (element.getWidth() + 2));
      elementMap.put("height", "" + (element.getHeight() + 2));
      if (eventable != null) {
        toState = eventable.getTargetStateVertex();
      }
      if (toState != null) {
        elementMap.put("targetname", toState.getName());
        if (getStateNumber(toState.getName()) < getStateNumber(state.getName())) {
          // state already found
View Full Code Here

   *             when the event can not be fired.
   */
  @Test
  public final void testFireEvent() throws Exception {
    browser.goToUrl(SERVER.getSiteUrl().resolve("simple.html"));
    browser.fireEventAndWait(new Eventable(new Identification(How.xpath, "//H1"),
            EventType.click));
  }
View Full Code Here

      String newXPath = new ElementResolver(eventable, getBrowser()).resolve();
      if (newXPath != null && !xpath.equals(newXPath)) {
        LOGGER.info("XPath changed from " + xpath + " to " + newXPath + " relatedFrame:"
                + eventable.getRelatedFrame());
        eventable =
                new Eventable(new Identification(Identification.How.xpath, newXPath),
                        eventType);
      }
    }

    if (getBrowser().fireEvent(eventable)) {
View Full Code Here

    EventType eventType = action.getEventType();

    StateVertex orrigionalState = this.getStateMachine().getCurrentState();

    if (candidateElement.allConditionsSatisfied(getBrowser())) {
      ClickResult clickResult = clickTag(new Eventable(candidateElement, eventType));
      switch (clickResult) {
        case cloneDetected:
          fired = false;
          // We are in the clone state so we continue with the cloned version to search
          // for work.
View Full Code Here

TOP

Related Classes of com.crawljax.core.state.Eventable

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.