Best SeLion code snippet using com.paypal.selion.utils.SauceConfigReader.SauceConfigReader
Source:SauceConfigChangeServlet.java
...31import com.google.gson.GsonBuilder;32import com.google.gson.JsonObject;33import com.paypal.selion.logging.SeLionGridLogger;34import com.paypal.selion.pojos.SeLionGridConstants;35import com.paypal.selion.utils.SauceConfigReader;36import com.paypal.selion.utils.ServletHelper;37/**38 * This {@link RegistryBasedServlet} based servlet updates the Sauce Configuration json file based on the input provided39 * via POST operation and re-loads the SauceConfigReader properties. For GET request it will return the40 * updateSauceConfigPage.html content. URL of the Servlet :41 * <code>http://{hub-host}:{hub-port}/grid/admin/SauceConfigChangeServlet</code>. <br>42 * <br>43 * This requires the hub to also have {@link LoginServlet} available.44 */45public class SauceConfigChangeServlet extends RegistryBasedServlet {46 private static final long serialVersionUID = 1L;47 private static final SeLionGridLogger LOGGER = SeLionGridLogger.getLogger(SauceConfigChangeServlet.class);48 /**49 * Resource path to the sauce config html file50 */51 public static final String RESOURCE_PAGE_FILE = "/com/paypal/selion/html/updateSauceConfigPage.html";52 /**53 * Form parameter for sauce url54 */55 public static final String SAUCE_URL_PARAM = "sauceURL";56 /**57 * Form parameter for the sauce username58 */59 public static final String USERNAME_PARAM = "username";60 /**61 * Form parameter for retry count on errors communicating with sauce api62 */63 public static final String RETRY_PARAM = "retry";64 /**65 * Form parameter for timeout when communicating with sauce api66 */67 public static final String TIMEOUT_PARAM = "timeout";68 /**69 * Form parameter for the sauce access key70 */71 public static final String ACCESS_KEY_PARAM = "accessKey";72 /**73 * Form parameter for the sauce parent tunnel74 */75 public static final String PARENT_TUNNEL_PARAM = "parentTunnel";76 /**77 * Form parameter for the sauce tunnel identifier78 */79 public static final String TUNNEL_IDENTIFIER_PARAM = "tunnelIdentifier";80 /**81 * Form parameter for require user supplied sauce credentials82 */83 public static final String REQUIRE_USER_CREDENTIALS_PARAM = "requireUserCredentials";84 public SauceConfigChangeServlet(GridRegistry registry) {85 super(registry);86 }87 public SauceConfigChangeServlet() {88 this(null);89 }90 @Override91 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {92 if (req.getSession(false) == null) {93 resp.sendRedirect(LoginServlet.class.getSimpleName());94 return;95 }96 loadSauceConfigPage(resp);97 }98 private void loadSauceConfigPage(HttpServletResponse resp) throws IOException {99 ServletHelper.respondAsHtmlUsingJsonAndTemplateWithHttpStatus(resp,100 JSONConfigurationUtils.loadJSON(SeLionGridConstants.SAUCE_CONFIG_FILE), RESOURCE_PAGE_FILE,101 HttpServletResponse.SC_OK);102 }103 @Override104 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {105 // Redirecting to login page if session is not found106 if (req.getSession(false) == null) {107 resp.sendRedirect(LoginServlet.class.getSimpleName());108 return;109 }110 String msg = "<p align='center'><b>Sauce configuration updated successfully. "111 + "Will take affect at next node (re)start.</b></p>";112 final String sauceURL = req.getParameter(SAUCE_URL_PARAM);113 final String key = req.getParameter(USERNAME_PARAM) + ":" + req.getParameter(ACCESS_KEY_PARAM);114 final String authKey = new String(Base64.encodeBase64(key.getBytes()));115 final String sauceRetry = req.getParameter(RETRY_PARAM);116 final String sauceTimeout = req.getParameter(TIMEOUT_PARAM);117 final String parentTunnel = req.getParameter(PARENT_TUNNEL_PARAM);118 final String tunnelId = req.getParameter(TUNNEL_IDENTIFIER_PARAM);119 final boolean requireUserCredentials = req.getParameter(REQUIRE_USER_CREDENTIALS_PARAM) == null ? false : true;120 final Path path = Paths.get(SeLionGridConstants.SAUCE_CONFIG_FILE);121 boolean isUpdateSuccess = false;122 try (BufferedWriter bw = Files.newBufferedWriter(path, Charset.defaultCharset())) {123 JsonObject jsonObject = new JsonObject();124 addToJsonObject(jsonObject, SauceConfigReader.AUTHENTICATION_KEY, authKey);125 addToJsonObject(jsonObject, SauceConfigReader.SAUCE_URL, sauceURL);126 addToJsonObject(jsonObject, SauceConfigReader.SAUCE_RETRY, sauceRetry);127 addToJsonObject(jsonObject, SauceConfigReader.SAUCE_TIMEOUT, sauceTimeout);128 addToJsonObject(jsonObject, SauceConfigReader.PARENT_TUNNEL, parentTunnel);129 addToJsonObject(jsonObject, SauceConfigReader.TUNNEL_IDENTIFIER, tunnelId);130 addToJsonObject(jsonObject, SauceConfigReader.REQUIRE_USER_CREDENTIALS, requireUserCredentials);131 bw.write(new GsonBuilder().setPrettyPrinting().create().toJson(jsonObject));132 LOGGER.info("Sauce config file updated");133 isUpdateSuccess = true;134 } catch (Exception e) { // NO SONAR135 msg = "<p align='center'><b>Sauce config file update failed. "136 + "Please refer to the log file for the failure.</b></p>";137 LOGGER.log(Level.SEVERE, e.getMessage(), e);138 }139 if (isUpdateSuccess) {140 // Load configuration once again because its updated just now141 SauceConfigReader.getInstance().invalidate();142 }143 ServletHelper.respondAsHtmlWithMessage(resp, msg);144 }145 private void addToJsonObject(JsonObject jsonObject, String key, Object value) {146 if (value instanceof String && StringUtils.isNotBlank((String) value)) {147 jsonObject.addProperty(key, (String) value);148 }149 if (value instanceof Boolean) {150 jsonObject.addProperty(key, (Boolean) value);151 }152 }153}...
SauceConfigReader
Using AI Code Generation
1SauceConfigReader sauceConfigReader = new SauceConfigReader();2sauceConfigReader.getBrowserName();3sauceConfigReader.getBrowserVersion();4sauceConfigReader.getPlatformName();5sauceConfigReader.getPlatformVersion();6sauceConfigReader.getDeviceName();7sauceConfigReader.getDeviceOrientation();8sauceConfigReader.getDeviceType();9sauceConfigReader.getDevicePlatform();10sauceConfigReader.getDevicePlatformVersion();11sauceConfigReader.getDeviceApp();12sauceConfigReader.getDeviceAppPackage();13sauceConfigReader.getDeviceAppActivity();14sauceConfigReader.getDeviceAppWaitActivity();15sauceConfigReader.getDeviceAppWaitPackage();16sauceConfigReader.getDeviceAppWaitDuration();17sauceConfigReader.getDeviceAppiumVersion();18sauceConfigReader.getDeviceAutomationName();19sauceConfigReader.getDeviceBrowserName();20sauceConfigReader.getDeviceBrowserVersion();21sauceConfigReader.getDevicePlatformName();22sauceConfigReader.getDevicePlatformVersion();23sauceConfigReader.getDeviceOrientation();24sauceConfigReader.getDeviceType();25sauceConfigReader.getDeviceWaitForAppScript();26sauceConfigReader.getDeviceWebStorageEnabled();27sauceConfigReader.getDeviceLocationContextEnabled();
SauceConfigReader
Using AI Code Generation
1import com.paypal.selion.utils.SauceConfigReader;2import org.openqa.selenium.remote.DesiredCapabilities;3import org.openqa.selenium.remote.RemoteWebDriver;4import org.testng.annotations.Test;5import java.net.URL;6public class SauceTest {7 public void test() throws Exception {8 DesiredCapabilities caps = new DesiredCapabilities();9 caps.setCapability("username", SauceConfigReader.getInstance().getUsername());10 caps.setCapability("accessKey", SauceConfigReader.getInstance().getAccessKey());11 caps.setCapability("platform", "Windows 10");12 caps.setCapability("browserName", "chrome");13 caps.setCapability("version", "latest");14 caps.setCapability("name", "SauceTest");15 caps.setCapability("extendedDebugging", "true");16 caps.setCapability("capturePerformance", "true");17 caps.setCapability("screenResolution", "1920x1080");18 caps.setCapability("videoUploadOnPass", "false");19 caps.setCapability("build", "SelionTest");20 caps.setCapability("tags", "test");21 System.out.println("Page title is: " + driver.getTitle());22 driver.quit();23 }24}25import com.paypal.selion.utils.SauceConfigReader;26import org.openqa.selenium.remote.DesiredCapabilities;27import org.openqa.selenium.remote.RemoteWebDriver;28import org.testng.annotations.Test;29import java.net.URL;30public class SauceTest {31 public void test() throws Exception {32 DesiredCapabilities caps = new DesiredCapabilities();33 caps.setCapability("username", SauceConfigReader.getInstance().getUsername());34 caps.setCapability("accessKey", SauceConfigReader.getInstance().getAccessKey());35 caps.setCapability("platform", "Windows 10");36 caps.setCapability("browserName", "chrome");37 caps.setCapability("version", "latest");38 caps.setCapability("name", "SauceTest");39 caps.setCapability("extendedDebugging", "true");40 caps.setCapability("capturePerformance", "true");41 caps.setCapability("screenResolution", "1920x1080");
SauceConfigReader
Using AI Code Generation
1SauceConfigReader reader = new SauceConfigReader();2String username = reader.getSauceUsername();3String accessKey = reader.getSauceAccessKey();4SauceConfigReader reader = new SauceConfigReader();5String username = reader.getSauceUsername();6String accessKey = reader.getSauceAccessKey();7SauceConfigReader reader = new SauceConfigReader();8String username = reader.getSauceUsername();9String accessKey = reader.getSauceAccessKey();10SauceConfigReader reader = new SauceConfigReader();11String username = reader.getSauceUsername();12String accessKey = reader.getSauceAccessKey();13SauceConfigReader reader = new SauceConfigReader();14String username = reader.getSauceUsername();15String accessKey = reader.getSauceAccessKey();16SauceConfigReader reader = new SauceConfigReader();17String username = reader.getSauceUsername();18String accessKey = reader.getSauceAccessKey();19SauceConfigReader reader = new SauceConfigReader();20String username = reader.getSauceUsername();21String accessKey = reader.getSauceAccessKey();22SauceConfigReader reader = new SauceConfigReader();23String username = reader.getSauceUsername();24String accessKey = reader.getSauceAccessKey();
SauceConfigReader
Using AI Code Generation
1SauceConfigReader config = new SauceConfigReader();2String sauceConfig = config.getSauceConfig("sauceConfig.json");3SauceConfigReader config = new SauceConfigReader();4String sauceConfig = config.getSauceConfig("sauceConfig.json");5SauceConfigReader config = new SauceConfigReader();6String sauceConfig = config.getSauceConfig("sauceConfig.json");7SauceConfigReader config = new SauceConfigReader();8String sauceConfig = config.getSauceConfig("sauceConfig.json");9SauceConfigReader config = new SauceConfigReader();10String sauceConfig = config.getSauceConfig("sauceConfig.json");11SauceConfigReader config = new SauceConfigReader();12String sauceConfig = config.getSauceConfig("sauceConfig.json");13SauceConfigReader config = new SauceConfigReader();14String sauceConfig = config.getSauceConfig("sauceConfig.json");15SauceConfigReader config = new SauceConfigReader();16String sauceConfig = config.getSauceConfig("sauceConfig.json");17SauceConfigReader config = new SauceConfigReader();18String sauceConfig = config.getSauceConfig("sauceConfig.json");19SauceConfigReader config = new SauceConfigReader();20String sauceConfig = config.getSauceConfig("sauceConfig.json
SauceConfigReader
Using AI Code Generation
1import com.paypal.selion.platform.grid.Grid;2import com.paypal.selion.platform.grid.browsercapabilities.SauceConfigReader;3import com.paypal.selion.platform.utilities.WebDriverWaitUtils;4import org.openqa.selenium.remote.DesiredCapabilities;5import org.testng.annotations.Test;6public class SauceLabsTest {7 public void testSauceLabs() {8 DesiredCapabilities caps = SauceConfigReader.getCapabilities();9 Grid.driver().getCapabilities().merge(caps);10 WebDriverWaitUtils.waitUntilPageTitleContains("Yahoo");11 System.out.println("Page title is: " + Grid.driver().getTitle());12 Grid.driver().quit();13 }14}15[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ SeLionSauceLabs ---16[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ SeLionSauceLabs ---17[INFO] --- maven-assembly-plugin:2.5.5:single (make-assembly) @ SeLionSauceLabs ---
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!