package org.uiautomation.ios.e2e.config;
import org.openqa.selenium.By;
import org.openqa.selenium.Rotatable;
import org.openqa.selenium.ScreenOrientation;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.uiautomation.ios.BaseIOSDriverTest;
import org.uiautomation.ios.SampleApps;
import org.uiautomation.ios.UIAModels.UIATableCell;
import org.uiautomation.ios.UIAModels.predicate.NameCriteria;
import org.uiautomation.ios.client.uiamodels.impl.RemoteIOSDriver;
import org.uiautomation.ios.client.uiamodels.impl.RemoteUIATableCell;
import org.uiautomation.ios.client.uiamodels.impl.augmenter.Configurable;
import org.uiautomation.ios.client.uiamodels.impl.augmenter.ElementTree;
import org.uiautomation.ios.client.uiamodels.impl.augmenter.IOSDriverAugmenter;
import org.uiautomation.ios.client.uiamodels.impl.augmenter.IOSSearchContext;
import org.uiautomation.ios.communication.WebDriverLikeCommand;
import java.util.Map;
public class AugmenterTest extends BaseIOSDriverTest {
RemoteWebDriver driver;
@BeforeClass
public void startDriver() {
driver = new RemoteWebDriver(getRemoteURL(), SampleApps.uiCatalogCap());
}
@AfterClass
public void stopDriver() {
if (driver != null) {
driver.quit();
}
}
@Test
public void configuration() {
Configurable config = IOSDriverAugmenter.augment(driver);
config.setConfiguration(WebDriverLikeCommand.ACCEPT_ALERT, "ok", true);
Map<String, Object> conf = config.getConfiguration(WebDriverLikeCommand.ACCEPT_ALERT);
Assert.assertEquals(conf.get("ok"), true);
}
private String buttonName = "Buttons, Various uses of UIButton";
@Test
public void iosSearchContext() {
IOSSearchContext finder = IOSDriverAugmenter.augment(driver);
WebElement element = finder.findElement(new NameCriteria(buttonName));
Assert.assertTrue(element instanceof UIATableCell);
}
@Test
public void logElementTree() {
WebElement
element = driver.findElement(By.linkText("name=" + buttonName));
ElementTree tree = IOSDriverAugmenter.augment(driver);
}
@Test
public void rotatable() {
Rotatable rotator = IOSDriverAugmenter.augment(driver);
rotator.rotate(ScreenOrientation.PORTRAIT);
}
@Test
public void cast() {
RemoteIOSDriver iosdriver = IOSDriverAugmenter.getIOSDriver(driver);
WebElement
element = iosdriver.findElement(By.linkText("name=" + buttonName));
Assert.assertTrue(element instanceof RemoteUIATableCell);
}
}