package ru.qatools.gridrouter; import org.junit.Rule; import org.junit.Test; import org.openqa.selenium.remote.RemoteWebDriver; import ru.qatools.gridrouter.utils.HubEmulatorRule; import static org.hamcrest.MatcherAssert.assertThat; import static org.openqa.selenium.remote.DesiredCapabilities.firefox; import static ru.qatools.gridrouter.utils.GridRouterRule.USER_2; /** * @author Innokenty Shuvalov innokenty@yandex-team.ru */ public class ProxyServletWithTwoHubsTest extends ProxyServletTest { @Rule public HubEmulatorRule hub1 = new HubEmulatorRule( 8081, hub -> hub.emulate().newSessions(1)); @Rule public HubEmulatorRule hub2 = new HubEmulatorRule( 8082, hub -> hub.emulate().newSessions(1)); public ProxyServletWithTwoHubsTest() throws Exception { super(USER_2); } @Test public void testSessionIdsHaveNoCommonPrefix() { RemoteWebDriver driver1 = new RemoteWebDriver(getUrl(), firefox()); String sessionId1 = driver1.getSessionId().toString(); RemoteWebDriver driver2 = new RemoteWebDriver(getUrl(), firefox()); String sessionId2 = driver2.getSessionId().toString(); assertThat("sessionIds should not have the same prefix", !sessionId1.regionMatches(0, sessionId2, 0, 30)); hub1.verify().totalRequestsCountIs(1); hub2.verify().totalRequestsCountIs(1); } @Override public void testSpecifyingBrowserVersion() { super.testSpecifyingBrowserVersion(); } @Override public void testSessionIdDoesNotChange() { hub1.emulate().navigation(); hub2.emulate().navigation(); super.testSessionIdDoesNotChange(); } @Test @Override public void testSessionIdChangesForANewBrowser() { super.testSessionIdChangesForANewBrowser(); hub1.verify().totalRequestsCountIs(1); hub2.verify().totalRequestsCountIs(1); } @Override public void testQuit() { hub1.emulate().quit(); hub2.emulate().quit(); super.testQuit(); } @Override public void testSendRequestParams() { hub1.emulate().navigation(); hub2.emulate().navigation(); super.testSendRequestParams(); } @Test @Override public void testFindElement() { hub1.emulate().navigation().findElement(); hub2.emulate().navigation().findElement(); super.testFindElement(); } }