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.query.Poller;
8 import com.atlassian.pageobjects.elements.test.pageobjects.page.ElementsPage;
9 import com.atlassian.webdriver.testing.annotation.IgnoreBrowser;
10 import org.junit.Before;
11 import org.junit.Test;
12 import org.openqa.selenium.By;
13
14 import java.util.List;
15
16 import static org.junit.Assert.assertEquals;
17
18 @IgnoreBrowser(Browser.HTMLUNIT_NOJS)
19 public class TestFindStaleTimedElement extends AbstractFileBasedServerTest
20 {
21 private PageElementFinder elementFinder;
22
23 @Before
24 public void initFinder()
25 {
26 elementFinder = product.getPageBinder().bind(GlobalElementFinder.class);
27 }
28
29 @Test
30 public void staleElementsShouldBeSuccessfullyLocated()
31 {
32 product.visit(ElementsPage.class);
33
34 PageElement leafList = elementFinder.find(By.id("test10_leafList"));
35
36 elementFinder.find(By.id("test10_reloadChildListButton")).click();
37
38 Poller.waitUntilTrue(leafList.timed().isPresent());
39 assertEquals(3, leafList.findAll(By.className("test10_item")).size());
40 }
41
42 @Test
43 public void staleElementsInListShouldBeSuccessfullyLocated()
44 {
45 product.visit(ElementsPage.class);
46
47 PageElement parent = elementFinder.find(By.id("test10_childList"));
48 List<PageElement> items = parent.findAll(By.className("test10_item"));
49
50
51 elementFinder.find(By.id("test10_reloadChildElementsButton")).click();
52
53 assertEquals(3, items.size());
54 Poller.waitUntilTrue(items.get(0).timed().isPresent());
55 Poller.waitUntilTrue(items.get(0).timed().hasText("Item 1"));
56 Poller.waitUntilTrue(items.get(1).timed().isPresent());
57 Poller.waitUntilTrue(items.get(1).timed().hasText("Item 2"));
58 Poller.waitUntilTrue(items.get(2).timed().isPresent());
59 Poller.waitUntilTrue(items.get(2).timed().hasText("Item 3"));
60 }
61 }