package ru.qatools.gridrouter.utils; import org.eclipse.jetty.security.HashLoginService; import org.eclipse.jetty.util.security.Password; import java.net.MalformedURLException; import java.net.URL; import static java.util.UUID.randomUUID; import static ru.qatools.gridrouter.utils.SocketUtil.findFreePort; /** * @author Innokenty Shuvalov innokenty@yandex-team.ru */ public class GridRouterRule extends JettyRule { public static final String USER_1 = "user1"; public static final String USER_2 = "user2"; public static final String USER_3 = "user3"; public static final String USER_4 = "user4"; public static final String PASSWORD = "password"; public static final String ROLE = "user"; public final String baseUrl; public final String baseUrlWithAuth; public final String baseUrlWrongPassword; public GridRouterRule() { super( "/", "src/main/webapp", "target/classes", findFreePort(), new HashLoginService() {{ setName("Selenium Grid Router"); putUser(USER_1, new Password(PASSWORD), new String[]{ROLE}); putUser(USER_2, new Password(PASSWORD), new String[]{ROLE}); putUser(USER_3, new Password(PASSWORD), new String[]{ROLE}); putUser(USER_4, new Password(PASSWORD), new String[]{ROLE}); }} ); baseUrl = "http://localhost:" + getPort(); baseUrlWithAuth = baseUrl(USER_1); baseUrlWrongPassword = baseUrl(USER_1, randomUUID().toString()); } public static URL hubUrl(String baseUrl) { try { return new URL(baseUrl + "/wd/hub"); } catch (MalformedURLException e) { throw new RuntimeException(e); } } public String baseUrl(String user) { return baseUrl(user, PASSWORD); } public String baseUrl(String user, String password) { return String.format("http://%s:%s@localhost:%d", user, password, getPort()); } }