/*
* Copyright (c) 2006-2011 Nuxeo SA (http://nuxeo.com/) and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* bstefanescu
*/
package org.eclipse.ecr.testlib.runner.web;
import org.openqa.selenium.Speed;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
/**
* @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a>
*
*/
public enum BrowserFamily {
FIREFOX, IE, CHROME, HTML_UNIT, HTML_UNIT_JS;
public DriverFactory getDriverFactory() {
switch (this) {
case FIREFOX:
return new FirefoxDriverFactory();
case IE:
return new IEDriverFactory();
case CHROME:
return new ChromeDriverFactory();
case HTML_UNIT_JS:
return new HtmlUnitJsDriverFactory();
default:
return new HtmlUnitDriverFactory();
}
}
class FirefoxDriverFactory implements DriverFactory {
@Override
public WebDriver createDriver() {
FirefoxDriver ff = new FirefoxDriver();
ff.manage().setSpeed(Speed.FAST);
return ff;
}
@Override
public void disposeDriver(WebDriver driver) {
}
@Override
public BrowserFamily getBrowserFamily() {
return BrowserFamily.this;
}
}
class ChromeDriverFactory implements DriverFactory {
@Override
public WebDriver createDriver() {
ChromeDriver ff = new ChromeDriver();
ff.manage().setSpeed(Speed.FAST);
return ff;
}
@Override
public void disposeDriver(WebDriver driver) {
}
@Override
public BrowserFamily getBrowserFamily() {
return BrowserFamily.this;
}
}
class IEDriverFactory implements DriverFactory {
@Override
public WebDriver createDriver() {
InternetExplorerDriver driver = new InternetExplorerDriver();
driver.manage().setSpeed(Speed.FAST);
return driver;
}
@Override
public void disposeDriver(WebDriver driver) {
}
@Override
public BrowserFamily getBrowserFamily() {
return BrowserFamily.this;
}
}
class HtmlUnitDriverFactory implements DriverFactory {
@Override
public WebDriver createDriver() {
return new HtmlUnitDriver();
}
@Override
public void disposeDriver(WebDriver driver) {
}
@Override
public BrowserFamily getBrowserFamily() {
return BrowserFamily.this;
}
}
class HtmlUnitJsDriverFactory implements DriverFactory {
@Override
public WebDriver createDriver() {
HtmlUnitDriver driver = new HtmlUnitDriver();
driver.setJavascriptEnabled(true);
return driver;
}
@Override
public void disposeDriver(WebDriver driver) {
}
@Override
public BrowserFamily getBrowserFamily() {
return BrowserFamily.this;
}
}
// private WebDriver _old_makeFirefoxDriver() {
// String Xport = System.getProperty("nuxeo.xvfb.id", ":0");
// File firefoxPath = new File(System.getProperty("firefox.path",
// "/usr/bin/firefox"));
// FirefoxBinary firefox = new FirefoxBinary(firefoxPath);
// firefox.setEnvironmentProperty("DISPLAY", Xport);
// WebDriver driver = new FirefoxDriver(firefox, null);
// //driver.setVisible(false);
// driver.manage().setSpeed(Speed.FAST);
// return driver;
// }
}