@Test
 public void shouldThrowAnExceptionWhenTheURLIsMalformed() throws Exception {
   try {
     config.setSeleniumGridUrl("BadURL");
     config.createBrowser();
     fail();
   } catch (Exception unit) {
     assertThat(unit, instanceOf(RuntimeException.class));
     assertThat(unit.getMessage(), is("java.net.MalformedURLException: no protocol: BadURL"));
   }
 }
  @Test
  public void shouldCreateRemoteDriver() throws Exception {
    config.setSeleniumGridUrl("http://my.awesomegrid.com");
    RemoteWebDriver mockRemoteWebDriver = Mockito.mock(RemoteWebDriver.class);
    whenNew(RemoteWebDriver.class)
        .withParameterTypes(URL.class, Capabilities.class)
        .withArguments(isA(URL.class), isA(Capabilities.class))
        .thenReturn(mockRemoteWebDriver);

    final RemoteWebDriver browser = config.createBrowser();

    assertThat(browser, is(mockRemoteWebDriver));
    verifyNew(RemoteWebDriver.class, times(1))
        .withArguments(isA(URL.class), isA(Capabilities.class));
  }
 @Test
 public void shouldHaveProxyInCapability() {
   final Capabilities capabilities = config.createCapabilities();
   assertThat(capabilities.getCapability(CapabilityType.PROXY), is(notNullValue()));
   assertThat(capabilities.getCapability(ChromeOptions.CAPABILITY), is(notNullValue()));
   assertThat(capabilities.isJavascriptEnabled(), is(true));
 }
 @Before
 public void createConfig() {
   config = new RemoteDriverConfig();
   variables = new JMeterVariables();
   config.setCapability(RemoteCapability.CHROME);
   JMeterContextService.getContext().setVariables(variables);
 }
 @Test
 public void shouldSetTheCapability() throws Exception {
   assertThat(config.getCapability(), is(RemoteCapability.CHROME));
   config.setCapability(RemoteCapability.FIREFOX);
   assertThat(config.getCapability(), is(RemoteCapability.FIREFOX));
   config.setCapability(RemoteCapability.INTERNET_EXPLORER);
   assertThat(config.getCapability(), is(RemoteCapability.INTERNET_EXPLORER));
   config.setCapability(RemoteCapability.PHANTOMJS);
   assertThat(config.getCapability(), is(RemoteCapability.PHANTOMJS));
 }
 @After
 public void resetConfig() {
   config.clearThreadBrowsers();
   JMeterContextService.getContext().setVariables(null);
 }