View Javadoc

1   package com.atlassian.pageobjects.elements.test;
2   
3   import com.atlassian.pageobjects.browser.Browser;
4   import com.atlassian.pageobjects.elements.GlobalElementFinder;
5   import com.atlassian.pageobjects.elements.PageElement;
6   import com.atlassian.pageobjects.elements.PageElementFinder;
7   import com.atlassian.pageobjects.elements.test.pageobjects.page.EventsPage;
8   import com.atlassian.webdriver.testing.annotation.IgnoreBrowser;
9   import org.junit.Before;
10  import org.junit.Test;
11  import org.openqa.selenium.By;
12  
13  import static com.atlassian.pageobjects.elements.DataAttributeFinder.query;
14  import static com.atlassian.pageobjects.elements.query.Poller.waitUntilTrue;
15  
16  /**
17   * Test {@link com.atlassian.pageobjects.elements.PageElementJavascript} events API.
18   *
19   * @since 2.1
20   */
21  @IgnoreBrowser(Browser.HTMLUNIT_NOJS)
22  public class TestPageElementJavaScriptEvents extends AbstractFileBasedServerTest
23  {
24  
25      private PageElementFinder elementFinder;
26  
27      @Before
28      public void init()
29      {
30          product.visit(EventsPage.class);
31          elementFinder = product.getPageBinder().bind(GlobalElementFinder.class);
32      }
33  
34  
35      @Test
36      public void testMouseEvents()
37      {
38          final PageElement mouseEventListener = elementFinder.find(By.id("mouse-event-listener"));
39          mouseEventListener.javascript().mouse().click();
40          waitUntilTrue(query(mouseEventListener).timed().hasDataAttribute("event", "click"));
41          mouseEventListener.javascript().mouse().doubleClick();
42          waitUntilTrue(query(mouseEventListener).timed().hasDataAttribute("event", "dblclick"));
43          mouseEventListener.javascript().mouse().mousedown();
44          waitUntilTrue(query(mouseEventListener).timed().hasDataAttribute("event", "mousedown"));
45          mouseEventListener.javascript().mouse().mouseup();
46          waitUntilTrue(query(mouseEventListener).timed().hasDataAttribute("event", "mouseup"));
47          mouseEventListener.javascript().mouse().mouseover();
48          waitUntilTrue(query(mouseEventListener).timed().hasDataAttribute("event", "mouseover"));
49          mouseEventListener.javascript().mouse().mousemove();
50          waitUntilTrue(query(mouseEventListener).timed().hasDataAttribute("event", "mousemove"));
51          mouseEventListener.javascript().mouse().mouseout();
52          waitUntilTrue(query(mouseEventListener).timed().hasDataAttribute("event", "mouseout"));
53      }
54  
55      @Test
56      @IgnoreBrowser(value = {Browser.HTMLUNIT}, reason = "SELENIUM-167 :focus selector not supported")
57      public void testFormEvents()
58      {
59          final PageElement formEventListener = elementFinder.find(By.id("form-event-listener"));
60          formEventListener.javascript().form().select();
61          waitUntilTrue(query(formEventListener).timed().hasDataAttribute("event", "select"));
62          formEventListener.javascript().form().focus();
63          waitUntilTrue(query(formEventListener).timed().hasDataAttribute("event", "focus"));
64          formEventListener.javascript().form().blur();
65          waitUntilTrue(query(formEventListener).timed().hasDataAttribute("event", "blur"));
66          formEventListener.javascript().form().change();
67          waitUntilTrue(query(formEventListener).timed().hasDataAttribute("event", "change"));
68          formEventListener.javascript().form().submit();
69          waitUntilTrue(query(formEventListener).timed().hasDataAttribute("event", "submit"));
70      }
71  
72  }