Skip to content

Commit

Permalink
feat(tests) Improved logic of getting properties to simplify running
Browse files Browse the repository at this point in the history
tests from IDE
  • Loading branch information
MatousJobanek committed Jun 13, 2017
1 parent f7a2caa commit cc90e43
Show file tree
Hide file tree
Showing 15 changed files with 110 additions and 70 deletions.
Expand Up @@ -3,12 +3,9 @@
import java.io.IOException;
import java.net.URL;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import org.jboss.arquillian.config.descriptor.api.ArquillianDescriptor;
import org.jboss.arquillian.config.descriptor.api.ExtensionDef;
import org.jboss.arquillian.drone.webdriver.binary.handler.SeleniumServerBinaryHandler;
import org.jboss.arquillian.drone.webdriver.factory.remote.reusable.MockBrowserCapabilitiesRegistry;
import org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil;
import org.jboss.arquillian.drone.webdriver.utils.Validate;
import org.jboss.arquillian.test.spi.event.suite.AfterSuite;
import org.jboss.arquillian.test.test.AbstractTestTestBase;
Expand Down Expand Up @@ -38,7 +35,7 @@ protected void addExtensions(List<Class<?>> extensions) {
public void initialise() throws Exception {
capabilities = new DesiredCapabilities();
// use selenium server version defined in arquillian.xml
String selSerVersion = getSeleniumServerVersion(MockBrowserCapabilitiesRegistry.getArquillianDescriptor());
String selSerVersion = ArqDescPropertyUtil.getSeleniumServerVersionProperty();
if (!Validate.empty(selSerVersion)) {
capabilities
.setCapability(SeleniumServerBinaryHandler.SELENIUM_SERVER_VERSION_PROPERTY, selSerVersion);
Expand Down Expand Up @@ -90,12 +87,6 @@ public void stopSeleniumServer() {
fire(new AfterSuite());
}

private String getSeleniumServerVersion(ArquillianDescriptor arquillian) {
ExtensionDef webdriver = arquillian.extension("webdriver");
Map<String, String> props = webdriver.getExtensionProperties();
return props.get("seleniumServerVersion");
}

private void verifyLogContainsRegex(String regex) throws IOException {

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
Expand Down
Expand Up @@ -19,12 +19,13 @@
import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.junit.Arquillian;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openqa.selenium.WebDriver;

import static org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil.assumeBrowserNotEqual;

/**
* Test for ARQ-1543. Checks that everything works fine if user misconfigures Drone by injecting same instance twice in a
* single
Expand All @@ -45,7 +46,7 @@ public class DoubleDroneInjectionTestCase {

@BeforeClass
public static void skipIfEdgeBrowser() {
Assume.assumeFalse(System.getProperty("browser").equals("edge"));
assumeBrowserNotEqual("edge");
}

@Test
Expand Down
Expand Up @@ -22,7 +22,6 @@
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.junit.InSequence;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand All @@ -31,6 +30,8 @@
import org.openqa.selenium.remote.SessionId;
import qualifier.Reusable;

import static org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil.assumeBrowserNotEqual;

/**
* Tests Arquillian Selenium extension against Weld Login example.
* <p>
Expand All @@ -50,7 +51,7 @@ public class ReusableRemoteWebDriverTestCase {

@BeforeClass
public static void skipIfEdgeBrowser() {
Assume.assumeFalse(System.getProperty("browser").equals("edge"));
assumeBrowserNotEqual("edge");
}

private void checkIfWebdriverHubIsRunning() {
Expand Down
Expand Up @@ -19,12 +19,13 @@
import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.junit.Arquillian;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openqa.selenium.WebDriver;

import static org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil.assumeBrowserNotEqual;

/**
* Test for ARQ-1543. Checks that everything works fine if user misconfigures Drone by injecting same instance twice in a
* single
Expand All @@ -40,7 +41,7 @@ public class TripleDroneInjectionTestCase extends DoubleDroneInjectionTestCase {

@BeforeClass
public static void skipIfEdgeBrowser() {
Assume.assumeFalse(System.getProperty("browser").equals("edge"));
assumeBrowserNotEqual("edge");
}

@Test
Expand Down
Expand Up @@ -4,7 +4,6 @@
import java.net.URL;
import org.jboss.arquillian.drone.webdriver.configuration.WebDriverConfiguration;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand All @@ -13,15 +12,15 @@
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

import static org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil.assumeBrowserEqual;
import static org.mockito.Mockito.when;

@RunWith(MockitoJUnitRunner.class)
public class ChromeHeadlessDriverTest {

@BeforeClass
public static void executeOnlyIfChromeHeadlessBrowser() {
String browser = System.getProperty("browser").toLowerCase();
Assume.assumeTrue(browser.equals("chromeheadless"));
assumeBrowserEqual("chromeheadless");
}

@Test
Expand Down
@@ -1,26 +1,25 @@
package org.jboss.arquillian.drone.webdriver.factory.remote.reusable;

import java.net.URLClassLoader;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.jboss.arquillian.config.descriptor.api.ArquillianDescriptor;
import org.jboss.arquillian.config.descriptor.api.ExtensionDef;
import org.jboss.arquillian.drone.webdriver.factory.BrowserCapabilitiesList;
import org.jboss.arquillian.drone.webdriver.spi.BrowserCapabilities;
import org.jboss.arquillian.drone.webdriver.spi.BrowserCapabilitiesRegistry;
import org.jboss.shrinkwrap.descriptor.api.Descriptors;
import org.junit.Assert;

import static org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil.WEBDRIVER_REUSABLE_EXT;
import static org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil.getBrowserProperty;

public class MockBrowserCapabilitiesRegistry implements BrowserCapabilitiesRegistry {

private final Map<String, BrowserCapabilities> cache;

public MockBrowserCapabilitiesRegistry() {
this.cache = new HashMap<String, BrowserCapabilities>();

String browser = getBrowser(getArquillianDescriptor()).toLowerCase();
String browser = getBrowserProperty(WEBDRIVER_REUSABLE_EXT);
if ("phantomjs".equals(browser)) {
registerBrowserCapabilitiesFor(browser, new BrowserCapabilitiesList.PhantomJS());
} else if ("chrome".equals(browser)) {
Expand All @@ -44,11 +43,6 @@ public MockBrowserCapabilitiesRegistry() {
}
}

public static ArquillianDescriptor getArquillianDescriptor() {
return Descriptors.importAs(ArquillianDescriptor.class).fromStream(
URLClassLoader.getSystemResourceAsStream("arquillian.xml"), true);
}

public static MockBrowserCapabilitiesRegistry createSingletonRegistry() {

MockBrowserCapabilitiesRegistry registry = new MockBrowserCapabilitiesRegistry();
Expand Down Expand Up @@ -79,12 +73,4 @@ public Collection<BrowserCapabilities> getAllBrowserCapabilities() {

return Collections.unmodifiableCollection(cache.values());
}

private String getBrowser(ArquillianDescriptor arquillian) {
ExtensionDef webdriver = arquillian.extension("webdriver-reusable");
Assert.assertNotNull("webdriver-reusable extension should be defined in arquillian.xml", webdriver);
Map<String, String> props = webdriver.getExtensionProperties();

return props.get("browser");
}
}
Expand Up @@ -19,9 +19,6 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.Map;
import org.jboss.arquillian.config.descriptor.api.ArquillianDescriptor;
import org.jboss.arquillian.config.descriptor.api.ExtensionDef;
import org.jboss.arquillian.core.api.Event;
import org.jboss.arquillian.core.api.Injector;
import org.jboss.arquillian.core.api.Instance;
Expand All @@ -34,11 +31,11 @@
import org.jboss.arquillian.drone.webdriver.configuration.WebDriverConfiguration;
import org.jboss.arquillian.drone.webdriver.factory.ChromeDriverFactory;
import org.jboss.arquillian.drone.webdriver.factory.RemoteWebDriverFactory;
import org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil;
import org.jboss.arquillian.test.spi.event.suite.AfterSuite;
import org.jboss.arquillian.test.spi.event.suite.BeforeSuite;
import org.jboss.arquillian.test.test.AbstractTestTestBase;
import org.junit.After;
import org.junit.Assume;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
Expand All @@ -49,6 +46,9 @@
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import static org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil.WEBDRIVER_REUSABLE_EXT;
import static org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil.assumeBrowserNotEqual;
import static org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil.getBrowserProperty;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.mockito.Mockito.when;
Expand Down Expand Up @@ -77,7 +77,7 @@ public class TestRemoteWebDriverFactorySessionStoring extends AbstractTestTestBa

@BeforeClass
public static void skipIfEdgeBrowser() {
Assume.assumeFalse(System.getProperty("browser", "phantomjs").equals("edge"));
assumeBrowserNotEqual("edge");
}

@Override
Expand Down Expand Up @@ -108,7 +108,7 @@ public void setupMocks() {

initializationParameter = new InitializationParameter(hubUrl, desiredCapabilities);

String browser = System.getProperty("browser").toLowerCase();
String browser = getBrowserProperty(WEBDRIVER_REUSABLE_EXT);
if (browser.equals("chromeheadless")) {
when(configuration.getBrowser()).thenReturn("chromeheadless");
new ChromeDriverFactory().setChromeOptions(configuration, (DesiredCapabilities) desiredCapabilities);
Expand All @@ -128,7 +128,7 @@ private void runSeleniumServer() {
String seleniumServerArgs = System.getProperty("seleniumServerArgs");

// use selenium server version defined in arquillian.xml
String selSerVersion = getSeleniumServerVersion(MockBrowserCapabilitiesRegistry.getArquillianDescriptor());
String selSerVersion = ArqDescPropertyUtil.getSeleniumServerVersionProperty(WEBDRIVER_REUSABLE_EXT);
if (!Validate.empty(selSerVersion)) {
selServerCaps
.setCapability(SeleniumServerBinaryHandler.SELENIUM_SERVER_VERSION_PROPERTY, selSerVersion);
Expand All @@ -142,12 +142,6 @@ private void runSeleniumServer() {
}
}

private String getSeleniumServerVersion(ArquillianDescriptor arquillian) {
ExtensionDef webdriver = arquillian.extension("webdriver-reusable");
Map<String, String> props = webdriver.getExtensionProperties();
return props.get("seleniumServerVersion");
}

@After
public void stopServer() {
fire(new AfterSuite());
Expand Down
Expand Up @@ -26,7 +26,6 @@
import org.jboss.arquillian.drone.webdriver.augmentation.AugmentingEnhancer;
import org.jboss.arquillian.drone.webdriver.factory.remote.reusable.ftest.AbstractInBrowserTest;
import org.jboss.arquillian.junit.Arquillian;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand All @@ -35,15 +34,16 @@
import org.openqa.selenium.remote.SessionId;
import qualifier.Reusable;

import static org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil.assumeBrowserNotEqual;
import static org.junit.Assert.fail;

@RunWith(Arquillian.class)
public class TestReusableRemoteWebDriver extends AbstractInBrowserTest {

@BeforeClass
public static void skipIfEdgeOrHtmlUnitBrowser() {
final String browser = System.getProperty("browser");
Assume.assumeFalse(browser.equals("edge") || browser.equals("htmlunit") || browser.equals("htmlUnit"));
assumeBrowserNotEqual("edge");
assumeBrowserNotEqual("htmlunit");
}

@Test
Expand Down
Expand Up @@ -19,14 +19,14 @@
import java.io.Serializable;
import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.junit.Arquillian;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openqa.selenium.Capabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import qualifier.Reusable;

import static org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil.assumeBrowserNotEqual;
import static org.junit.Assert.assertTrue;

/**
Expand All @@ -41,7 +41,7 @@ public class TestCapabilitiesSerialization extends AbstractInBrowserTest {

@BeforeClass
public static void skipIfEdgeBrowser() {
Assume.assumeFalse(System.getProperty("browser").equals("edge"));
assumeBrowserNotEqual("edge");
}

@Test
Expand Down
Expand Up @@ -21,7 +21,6 @@
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.junit.InSequence;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand All @@ -30,6 +29,8 @@
import qualifier.Reusable;
import qualifier.ReuseCookies;

import static org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil.assumeBrowserNotEqual;

/**
* @author <a href="mailto:kpiwko@redhat.com">Karel Piwko</a>
*/
Expand All @@ -38,7 +39,7 @@ public class TestReusingCookies extends AbstractInBrowserTest {

@BeforeClass
public static void skipIfEdgeBrowser() {
Assume.assumeFalse(System.getProperty("browser").equals("edge"));
assumeBrowserNotEqual("edge");
}

@Test
Expand Down
Expand Up @@ -18,7 +18,6 @@

import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.junit.Arquillian;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand All @@ -27,6 +26,7 @@
import org.openqa.selenium.remote.SessionId;
import qualifier.Reusable;

import static org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil.assumeBrowserNotEqual;
import static org.junit.Assert.assertEquals;

@RunWith(Arquillian.class)
Expand All @@ -36,7 +36,7 @@ public class TestReusingRemoteWebDriverSession extends AbstractInBrowserTest {

@BeforeClass
public static void skipIfEdgeBrowser() {
Assume.assumeFalse(System.getProperty("browser").equals("edge"));
assumeBrowserNotEqual("edge");
}

@Test
Expand Down
Expand Up @@ -18,7 +18,6 @@

import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.junit.Arquillian;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand All @@ -27,6 +26,7 @@
import org.openqa.selenium.remote.SessionId;
import qualifier.Reusable;

import static org.jboss.arquillian.drone.webdriver.utils.ArqDescPropertyUtil.assumeBrowserNotEqual;
import static org.junit.Assert.assertEquals;

@RunWith(Arquillian.class)
Expand All @@ -36,7 +36,7 @@ public class TestReusingVariousDrivers extends AbstractInBrowserTest {

@BeforeClass
public static void skipIfEdgeBrowser() {
Assume.assumeFalse(System.getProperty("browser").equals("edge"));
assumeBrowserNotEqual("edge");
}

@Test
Expand Down

0 comments on commit cc90e43

Please sign in to comment.