package test_util; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; public final class Key { private String key = null; private String user = null; private String url = null; public static String readFile(final String fileName) { try { final File key = new File(fileName); final byte[] data = new byte[(int) key.length()]; DataInputStream dis = new DataInputStream(new FileInputStream(key)); dis.readFully(data); dis.close(); return new String(data).trim(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * Reads in user from user.key in repository root. * http://username:---@ondemand.saucelabs.com:80/wd/hub **/ public String user() { if (user == null) { user = readFile("user.key"); if (user == null) { // If it's still null, that's a problem. throw new RuntimeException("Unable to read user.key."); } } return user; } /** * Reads in key from sauce.key in repository root. * http://username:---@ondemand.saucelabs.com:80/wd/hub **/ public String key() { if (key == null) { key = readFile("sauce.key"); if (key == null) { // If it's still null, that's a problem. throw new RuntimeException("Unable to read user.key."); } } return key; } /** Full URL to sauce. **/ public String url() { if (url != null) { return url; } if (key == null) { key(); } if (user == null) { user(); } url = "http://" + user + ":" + key + "@ondemand.saucelabs.com:80/wd/hub"; return url; } }