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
18
19
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 }