package com.googlecode.jmeter.plugins.webdriver.config;

import static org.junit.Assert.*;

import org.junit.Test;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import static org.hamcrest.core.Is.*;
import static org.hamcrest.CoreMatchers.notNullValue;

public class RemoteDesiredCapabilitiesFactoryTest {
	
	@Test
	public void shouldReturnFirefoxDriverWhenFirefoxCapabilityIsPassed() throws Exception {
		DesiredCapabilities capabilities = RemoteDesiredCapabilitiesFactory.build(RemoteCapability.FIREFOX);
		assertThat(capabilities.getCapability(FirefoxDriver.PROFILE), is(notNullValue()));
		assertThat(capabilities.getBrowserName(), is("firefox"));
	}
	
	@Test
	public void shouldReturnChromeDriverWhenChromeCapabilityIsPassed() throws Exception {
		DesiredCapabilities capabilities = RemoteDesiredCapabilitiesFactory.build(RemoteCapability.CHROME);
		assertThat(capabilities.getCapability(ChromeOptions.CAPABILITY), is(notNullValue()));
		assertThat(capabilities.getBrowserName(), is("chrome"));
	}
	
	@Test
	public void shouldReturnInternetExplorerDriverWhenChromeCapabilityIsPassed() throws Exception {
		DesiredCapabilities capabilities = RemoteDesiredCapabilitiesFactory.build(RemoteCapability.INTERNET_EXPLORER);
		assertThat(capabilities.getBrowserName(), is("internet explorer"));
	}
	@Test(expected = IllegalArgumentException.class)
	public void shouldThrowAnExceptionWhenAnInvalidCapabilityIsPassed() throws Exception {
		RemoteDesiredCapabilitiesFactory.build(null);
	}

}

package com.googlecode.jmeter.plugins.webdriver.config;

import static org.junit.Assert.*;

import org.junit.Test;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import static org.hamcrest.core.Is.*;
import static org.hamcrest.CoreMatchers.notNullValue;

public class RemoteDesiredCapabilitiesFactoryTest {

	@Test
	public void shouldReturnFirefoxDriverWhenFirefoxCapabilityIsPassed() throws Exception {
		DesiredCapabilities capabilities = RemoteDesiredCapabilitiesFactory.build(RemoteCapability.FIREFOX);
		assertThat(capabilities.getCapability(FirefoxDriver.PROFILE), is(notNullValue()));
		assertThat(capabilities.getBrowserName(), is("firefox"));
	}

	@Test
	public void shouldReturnChromeDriverWhenChromeCapabilityIsPassed() throws Exception {
		DesiredCapabilities capabilities = RemoteDesiredCapabilitiesFactory.build(RemoteCapability.CHROME);
		assertThat(capabilities.getCapability(ChromeOptions.CAPABILITY), is(notNullValue()));
		assertThat(capabilities.getBrowserName(), is("chrome"));
	}

	@Test
	public void shouldReturnInternetExplorerDriverWhenChromeCapabilityIsPassed() throws Exception {
		DesiredCapabilities capabilities = RemoteDesiredCapabilitiesFactory.build(RemoteCapability.INTERNET_EXPLORER);
		assertThat(capabilities.getBrowserName(), is("internet explorer"));
	}

	@Test
	public void shouldReturnPhantomJSDriverWhenChromeCapabilityIsPassed() throws Exception {
		DesiredCapabilities capabilities = RemoteDesiredCapabilitiesFactory.build(RemoteCapability.PHANTOMJS);
		assertThat(capabilities.getCapability(ChromeOptions.CAPABILITY), is(notNullValue()));
		assertThat(capabilities.getBrowserName(), is("phantomjs"));
	}

	@Test(expected = IllegalArgumentException.class)
	public void shouldThrowAnExceptionWhenAnInvalidCapabilityIsPassed() throws Exception {
		RemoteDesiredCapabilitiesFactory.build(null);
	}

}

Add tests to PhantomJS (GhostDriver) capability