package org.springside.modules.unit.test; import static org.junit.Assert.*; import java.net.MalformedURLException; import java.net.URL; import mockit.Mock; import mockit.MockClass; import mockit.Mockit; import org.junit.Test; import org.openqa.selenium.Capabilities; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.htmlunit.HtmlUnitDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.springside.modules.test.utils.SeleniumUtils; public class SeleniumUtilsTest { @MockClass(realClass = RemoteWebDriver.class) public static class MockRemoteWebDriver { @Mock public MockRemoteWebDriver(URL remoteAddress, Capabilities desiredCapabilities) { try { assertEquals(new URL("http://localhost:3000/wd"), remoteAddress); } catch (MalformedURLException e) { fail("exception happen"); } assertEquals(DesiredCapabilities.firefox(), desiredCapabilities); } } @MockClass(realClass = FirefoxDriver.class) public static class MockFirefoxDriver { @Mock public MockFirefoxDriver() { } } @MockClass(realClass = InternetExplorerDriver.class) public static class MockInternetExplorerDriver { @Mock public MockInternetExplorerDriver() { } } @Test public void buildWebDriver() throws Exception { Mockit.setUpMocks(MockFirefoxDriver.class, MockInternetExplorerDriver.class, MockRemoteWebDriver.class); WebDriver driver = SeleniumUtils.buildDriver(SeleniumUtils.HTMLUNIT); assertTrue(driver instanceof HtmlUnitDriver); driver = SeleniumUtils.buildDriver(SeleniumUtils.FIREFOX); assertTrue(driver instanceof FirefoxDriver); driver = SeleniumUtils.buildDriver(SeleniumUtils.IE); assertTrue(driver instanceof InternetExplorerDriver); driver = SeleniumUtils.buildDriver(SeleniumUtils.REMOTE + ":localhost:3000:" + SeleniumUtils.FIREFOX); assertTrue(driver instanceof RemoteWebDriver); Mockit.tearDownMocks(); } }