package org.qooxdoo.demo.mobileshowcase; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.oneandone.qxwebdriver.ui.Touchable; import org.oneandone.qxwebdriver.ui.mobile.Selectable; import org.oneandone.qxwebdriver.ui.mobile.core.WidgetImpl; import org.openqa.selenium.By; import org.openqa.selenium.StaleElementReferenceException; import org.openqa.selenium.WebElement; import org.openqa.selenium.interactions.HasTouchScreen; public class List extends Mobileshowcase { @BeforeClass public static void setUpBeforeClass() throws Exception { Mobileshowcase.setUpBeforeClass(); String title = "List"; selectItem(title); verifyTitle(title); } @Test public void selectItem() { Selectable list = (Selectable) driver.findWidget(By.xpath("//div[contains(@class, 'master-detail-detail')]/descendant::ul[contains(@class, 'list')]")); list.selectItem("Item #3"); WebElement selected = driver.findElement(By.xpath("//div[text() = 'You selected Item #3']")); Assert.assertTrue(selected.isDisplayed()); Touchable ok = (Touchable) driver.findWidget(By.xpath("//div[text() = 'You selected Item #3']/ancestor::div[contains(@class, 'popup-content')]/descendant::div[contains(@class, 'dialog-button')]")); ok.tap(); try { Assert.assertFalse(selected.isDisplayed()); } catch(StaleElementReferenceException e) { // Element is no longer in the DOM } } @Test public void removeItem() throws InterruptedException { if (!(driver.getWebDriver() instanceof HasTouchScreen)) { return; } WebElement item = driver.findElement(By.xpath("//div[text() = 'Item #6']")); WidgetImpl.track(driver.getWebDriver(), item, 700, 0, 10); Thread.sleep(1000); try { Assert.assertFalse(item.isDisplayed()); } catch(StaleElementReferenceException e) { // Element is no longer in the DOM } } }