/*
* Copyright 2004-2016 EPAM Systems
*
* This file is part of JDI project.
*
* JDI is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* JDI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with JDI. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epam.jdi.uitests.mobile;
import com.epam.jdi.uitests.core.settings.JDISettings;
import com.epam.jdi.uitests.mobile.appium.driver.AppiumDriverFactory;
import com.epam.jdi.uitests.mobile.appium.driver.DriverTypes;
import com.epam.jdi.uitests.mobile.appium.driver.ScreenshotMaker;
import com.epam.web.matcher.testng.Check;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import java.util.function.Supplier;
import static com.epam.web.matcher.base.DoScreen.SCREEN_ON_FAIL;
import static org.slf4j.LoggerFactory.getLogger;
/**
* Created by Roman_Iovlev on 11/13/2015.
*/
public class WebSettings extends JDISettings {
public static WebDriver getDriver() {
return getDriverFactory().getDriver();
}
public static AppiumDriverFactory getDriverFactory() {
return (AppiumDriverFactory) JDISettings.driverFactory;
}
public static String useDriver(DriverTypes driverName) {
return getDriverFactory().registerDriver(driverName);
}
public static String useDriver(Supplier<WebDriver> driver) {
return getDriverFactory().registerDriver(driver);
}
public static JavascriptExecutor getJSExecutor() {
if (driverFactory.getDriver() instanceof JavascriptExecutor) {
return (JavascriptExecutor) driverFactory.getDriver();
} else {
throw new ClassCastException("JavaScript doesn't support.");
}
}
public static void init() {
driverFactory = new AppiumDriverFactory();
asserter = new Check() {
@Override
protected String doScreenshotGetMessage() {
return ScreenshotMaker.doScreenshotGetMessage();
}
}.doScreenshot(SCREEN_ON_FAIL);
logger = getLogger("JDI Logger");
timeouts = new WebTimeoutSettings();
}
}