r3661 - in trunk/pollen-ui-struts2/src: it/pollen-ui-it test/java/org/chorem/pollen/ui/it
Author: tchemit Date: 2012-08-28 21:42:01 +0200 (Tue, 28 Aug 2012) New Revision: 3661 Url: http://chorem.org/repositories/revision/pollen/3661 Log: refs #606: Add some ITs to prevent regression (can add at build time new selenium driver to use with extraDrivers jvm parameter) Modified: trunk/pollen-ui-struts2/src/it/pollen-ui-it/pom.xml trunk/pollen-ui-struts2/src/test/java/org/chorem/pollen/ui/it/AbstractPollenIT.java trunk/pollen-ui-struts2/src/test/java/org/chorem/pollen/ui/it/WebDriverResources.java Modified: trunk/pollen-ui-struts2/src/it/pollen-ui-it/pom.xml =================================================================== --- trunk/pollen-ui-struts2/src/it/pollen-ui-it/pom.xml 2012-08-28 18:46:32 UTC (rev 3660) +++ trunk/pollen-ui-struts2/src/it/pollen-ui-it/pom.xml 2012-08-28 19:42:01 UTC (rev 3661) @@ -47,7 +47,8 @@ <explodedWarPath>../pollen-ui-it/target/war</explodedWarPath> <pollenConfigurationFile>pollen-it.properties</pollenConfigurationFile> - <pollenDataDirectory>${project.build.testOutputDirectory}/data + <pollenDataDirectory> + ${project.build.testOutputDirectory}/data </pollenDataDirectory> </properties> @@ -386,6 +387,7 @@ <pollenDataDirectory> ${pollenDataDirectory} </pollenDataDirectory> + <extraDrivers>${extraDrivers}</extraDrivers> </systemPropertyVariables> </configuration> </execution> Modified: trunk/pollen-ui-struts2/src/test/java/org/chorem/pollen/ui/it/AbstractPollenIT.java =================================================================== --- trunk/pollen-ui-struts2/src/test/java/org/chorem/pollen/ui/it/AbstractPollenIT.java 2012-08-28 18:46:32 UTC (rev 3660) +++ trunk/pollen-ui-struts2/src/test/java/org/chorem/pollen/ui/it/AbstractPollenIT.java 2012-08-28 19:42:01 UTC (rev 3661) @@ -39,7 +39,6 @@ import org.openqa.selenium.WebElement; import java.util.Calendar; -import java.util.Collection; import java.util.Date; import java.util.List; @@ -56,7 +55,7 @@ protected Log log = LogFactory.getLog(getClass()); @Parameterized.Parameters - public static Collection<Object[]> driverTypes() { + public static Iterable<Object[]> driverTypes() { return WebDriverResources.driverTypes(); } Modified: trunk/pollen-ui-struts2/src/test/java/org/chorem/pollen/ui/it/WebDriverResources.java =================================================================== --- trunk/pollen-ui-struts2/src/test/java/org/chorem/pollen/ui/it/WebDriverResources.java 2012-08-28 18:46:32 UTC (rev 3660) +++ trunk/pollen-ui-struts2/src/test/java/org/chorem/pollen/ui/it/WebDriverResources.java 2012-08-28 19:42:01 UTC (rev 3661) @@ -25,6 +25,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.rules.TestWatcher; @@ -33,7 +34,6 @@ import org.openqa.selenium.htmlunit.HtmlUnitDriver; import java.util.Arrays; -import java.util.Collection; import java.util.List; import java.util.Map; @@ -48,14 +48,60 @@ /** Logger. */ private static final Log log = LogFactory.getLog(WebDriverResources.class); - protected static Collection<Object[]> driverTypes; + protected static Iterable<Object[]> driverTypes; protected static Map<Class<? extends WebDriver>, WebDriver> drivers = Maps.newHashMap(); - public static Collection<Object[]> driverTypes() { + public static Iterable<Object[]> driverTypes() { if (driverTypes == null) { - driverTypes = prepareDrivers(); + List<Class<? extends WebDriver>> allDrivers = Lists.newArrayList(); +// allDrivers.add(HtmlUnitDriver.class); + allDrivers.add(FirefoxDriver.class); +// allDrivers.add(ChromeDriver.class); +// allDrivers.add(InternetExplorerDriver.class); +// allDrivers.add(SafariDriver.class); + + String extraDriverProperty = System.getProperty("extraDrivers"); + if (StringUtils.isNotBlank(extraDriverProperty)) { + String[] extraDrivers = extraDriverProperty.split("\\s*,\\s*"); + for (String extraDriverFqn : extraDrivers) { + if (log.isInfoEnabled()) { + log.info("Try to add extra driver " + extraDriverFqn); + } + + try { + Class<?> newDriver = Class.forName(extraDriverFqn); + allDrivers.add((Class<? extends WebDriver>) newDriver); + } catch (ClassNotFoundException e) { + if (log.isErrorEnabled()) { + log.error("Could not load class " + extraDriverFqn, e); + } + } + } + } + + List<Class<?>> checkedDrivers = Lists.newArrayList(); + for (Class<? extends WebDriver> driverType : allDrivers) { + + try { + WebDriver driver = createDriver(driverType); + checkedDrivers.add(driverType); + drivers.put(driverType, driver); + } catch (Exception e) { + + // can not use this driver + if (log.isInfoEnabled()) { + log.info("Can not use driver " + driverType.getName(), e); + } + } + } + Object[][] data = new Object[checkedDrivers.size()][1]; + int i = 0; + for (Class<?> checkedDriver : checkedDrivers) { + data[i++][0] = checkedDriver; + } + driverTypes = Arrays.asList(data); } Preconditions.checkNotNull(driverTypes); return driverTypes; @@ -87,38 +133,6 @@ } } - public static List<Object[]> prepareDrivers() { - - List<Class<? extends WebDriver>> allDrivers = Lists.newArrayList(); -// allDrivers.add(HtmlUnitDriver.class); - allDrivers.add(FirefoxDriver.class); -// allDrivers.add(ChromeDriver.class); -// allDrivers.add(InternetExplorerDriver.class); -// allDrivers.add(SafariDriver.class); - - List<Class<?>> checkedDrivers = Lists.newArrayList(); - for (Class<? extends WebDriver> driverType : allDrivers) { - - try { - WebDriver driver = createDriver(driverType); - checkedDrivers.add(driverType); - drivers.put(driverType, driver); - } catch (Exception e) { - - // can not use this driver - if (log.isInfoEnabled()) { - log.info("Can not use driver " + driverType.getName(), e); - } - } - } - Object[][] data = new Object[checkedDrivers.size()][1]; - int i = 0; - for (Class<?> checkedDriver : checkedDrivers) { - data[i++][0] = checkedDriver; - } - return Arrays.asList(data); - } - private static <W extends WebDriver> W createDriver(Class<W> driverType) throws Exception { W result = driverType.getConstructor().newInstance();
participants (1)
-
tchemit@users.chorem.org