package org.qooxdoo.demo.mobileshowcase;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.oneandone.qxwebdriver.By;
import org.oneandone.qxwebdriver.ui.Touchable;
import org.oneandone.qxwebdriver.ui.mobile.core.WidgetImpl;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.HasTouchScreen;
public class Carousel extends Mobileshowcase {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
Mobileshowcase.setUpBeforeClass();
selectItem("Carousel");
verifyTitle("Carousel");
}
@Test
public void carousel() throws InterruptedException {
if (!(driver.getWebDriver() instanceof HasTouchScreen)) {
return;
}
java.util.List<WebElement> pages = driver.findElements(By.xpath("//div[contains(@class, 'carousel-page')]"));
WebElement label0 = driver.findElement(By.xpath("//div[contains(text(), 'This is a carousel')]"));
Assert.assertTrue(label0.isDisplayed());
WidgetImpl.track(driver.getWebDriver(), pages.get(0), -350, 0, 50);
Thread.sleep(1000);
WebElement label1 = driver.findElement(By.xpath("//div[contains(text(), 'It contains multiple carousel pages')]"));
Assert.assertTrue(label1.isDisplayed());
WidgetImpl.track(driver.getWebDriver(), pages.get(1), -350, 0, 50);
Thread.sleep(1000);
WebElement label2 = driver.findElement(By.xpath("//div[contains(text(), 'Carousel pages may contain')]"));
Assert.assertTrue(label2.isDisplayed());
Touchable nextPage = (Touchable) driver.findWidget(By.xpath("//div[text() = 'Next Page']/ancestor::div[contains(@class, 'button')]"));
nextPage.tap();
Thread.sleep(1000);
WebElement label3 = driver.findElement(By.xpath("//div[contains(text(), 'The carousel snaps')]"));
Assert.assertTrue(label3.isDisplayed());
WidgetImpl.track(driver.getWebDriver(), pages.get(3), -350, 0, 50);
Thread.sleep(1000);
WebElement label4 = driver.findElement(By.xpath("//div[contains(text(), 'You can add as many')]"));
Assert.assertTrue(label4.isDisplayed());
java.util.List<WebElement> paginationLabels = driver.findElements(By.xpath("//div[contains(@class, 'carousel-pagination-label')]"));
Assert.assertEquals(6, paginationLabels.size());
Touchable addButton = (Touchable) driver.findWidget(By.xpath("//div[text() = 'Add more pages']/ancestor::div[contains(@class, 'button')]"));
addButton.tap();
paginationLabels = driver.findElements(By.xpath("//div[contains(@class, 'carousel-pagination-label')]"));
Assert.assertEquals(56, paginationLabels.size());
}
}