package integration;
import com.codeborne.selenide.Configuration;
import com.codeborne.selenide.WebDriverProvider;
import com.codeborne.selenide.WebDriverRunner;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import static com.codeborne.selenide.Selenide.close;
import static com.codeborne.selenide.WebDriverRunner.isChrome;
import static org.junit.Assert.assertTrue;
import static org.junit.Assume.assumeTrue;
public class CustomWebDriverProviderTest extends IntegrationTest {
private String originalWebdriver;
@Before
public void setUp() {
originalWebdriver = Configuration.browser;
assumeTrue(isChrome());
close();
}
@After
public void tearDown() {
close();
Configuration.browser = originalWebdriver;
}
@Test
public void userCanImplementAnyCustomWebdriverProvider() {
Configuration.browser = CustomWebDriverProvider.class.getName();
openFile("autocomplete.html");
assertTrue(WebDriverRunner.getWebDriver() instanceof CustomChromeDriver);
}
private static class CustomChromeDriver extends ChromeDriver {
}
private static class CustomWebDriverProvider implements WebDriverProvider {
@Override
public WebDriver createDriver(DesiredCapabilities desiredCapabilities) {
return new CustomChromeDriver();
}
}
}