@Test public void testSimpleSamlLoginWithAddShadowUserOnLoginFalse() throws Exception { // Deleting marissa@test.org from simplesamlphp because previous SAML authentications automatically // create a UAA user with the email address as the username. deleteUser(SAML_ORIGIN, testAccounts.getEmail()); IdentityProvider provider = IntegrationTestUtils.createIdentityProvider(SAML_ORIGIN, false, baseUrl, serverRunning); String clientId = "app-addnew-false"+ new RandomValueStringGenerator().generate(); String redirectUri = "http://nosuchhostname:0/nosuchendpoint"; BaseClientDetails client = createClientAndSpecifyProvider(clientId, provider, redirectUri); String firstUrl = "/oauth/authorize?" + "client_id=" + clientId + "&response_type=code" + "&redirect_uri=" + URLEncoder.encode(redirectUri, "UTF-8"); webDriver.get(baseUrl + firstUrl); webDriver.findElement(By.xpath("//h2[contains(text(), 'Enter your username and password')]")); webDriver.findElement(By.name("username")).clear(); webDriver.findElement(By.name("username")).sendKeys(testAccounts.getUserName()); webDriver.findElement(By.name("password")).sendKeys(testAccounts.getPassword()); webDriver.findElement(By.xpath("//input[@value='Login']")).click(); // We need to verify the last request URL through the performance log because the redirect // URI does not exist. When the webDriver follows the non-existent redirect URI it receives a // connection refused error so webDriver.getCurrentURL() will remain as the SAML IdP URL. List<LogEntry> logEntries = webDriver.manage().logs().get(LogType.PERFORMANCE).getAll(); List<String> logMessages = logEntries.stream().map(logEntry -> logEntry.getMessage()).collect(Collectors.toList()); assertThat(logMessages, hasItem(containsString(redirectUri + "?error=access_denied&error_description=SAML+user+does+not+exist.+You+can+correct+this+by+creating+a+shadow+user+for+the+SAML+user."))); }
private StringBuilder formatedBrowserLogs() { StringBuilder logEntries = new StringBuilder(); SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for (LogEntry logEntry : getBrowserLog().getAll()) { logEntries.append(logEntry.getLevel()).append(": ") .append(sdfDate.format(logEntry.getTimestamp())).append(": ") .append(logEntry.getMessage()).append(System.lineSeparator()); } return logEntries; }
public List<String> getJSErrorMessageList() { LogEntries jserrors = driver.manage().logs().get(LogType.BROWSER); List<String> jsErrorMessageList = new ArrayList<String>(); for (LogEntry error : jserrors) { LOG.keywordAppender().appendArgument("Text", error.getMessage()); System.out.println("JS Error ==============" + error.getMessage()); jsErrorMessageList.add(error.getMessage()); } return jsErrorMessageList; }
void printLog(String type) throws IOException { File logFile = new File(chromePrefLogDir, type + ".json.log.gz"); PrintWriter out = null; try { for (LogEntry entry : driver.manage().logs().get(type)) { if (out == null) { out = new PrintWriter(new GZIPOutputStream(new FileOutputStream(logFile))); } out.println(entry.getMessage()); } } finally { IOUtils.closeQuietly(out); } } }
default List<String> console() { return driver().manage().logs().get("browser").getAll().stream() .map(log -> log.getMessage() .replace(" (undefined:undefined)", "") .replace(" (:)", "") .replace("\n anonymous (:1)", "")) .collect(toList()); }
default List<String> console() { return driver().manage().logs().get("browser").getAll().stream() .map(log -> log.getMessage() .replace(" (undefined:undefined)", "") .replace(" (:)", "") .replace("\n anonymous (:1)", "")) .collect(toList()); }
/** * @Title: getOutputlog @Description: TODO @author * ahu@greendotcorp.com @param @return void return type @throws */ public void getOutputlog() { LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER); for (LogEntry entry : logEntries) { log.info(Calendar.getInstance().getTime() + " " + entry.getLevel() + " " + entry.getMessage()); // do something useful with the data } }
/** * @Title: getOutputlog @Description: TODO @author * ahu@greendotcorp.com @param @return void return type @throws */ public void getOutputlog() { LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER); for (LogEntry entry : logEntries) { log.info(Calendar.getInstance().getTime() + " " + entry.getLevel() + " " + entry.getMessage()); // do something useful with the data } }
@Override protected void failed(Throwable e, Description description) { List<LogEntry> logs = Browser.getCurrentDriver().manage().logs().get("browser").getAll(); System.err.println("Browser's console:"); if (logs.isEmpty()) { System.err.println("<EMPTY>"); } else { for (LogEntry log : logs) { System.err.println(" - " + log.getMessage().replace(" (undefined:undefined)", "")); } } } }
private String prepareBrowserLogs() { StringBuilder browserLogsOutput = new StringBuilder("Browser console logs:\n").append("---------------------\n"); readBrowserLogs() .forEach( logEntry -> browserLogsOutput.append( format( "%s %s %s\n\n", formatTime(logEntry.getTimestamp()), logEntry.getLevel(), logEntry.getMessage()))); return browserLogsOutput.toString(); }
public void printBrowserLogs() { if (logger.isTraceEnabled()){ final Logs logs = webDriver.manage().logs(); if (logs != null) { final LogEntries logEntries = logs.get(LogType.BROWSER); final StringBuilder buf = new StringBuilder(); buf.append("BROWSER LOGS:\n\n"); for (final LogEntry entry : logEntries) { buf.append(new Date(entry.getTimestamp()) + " " + entry.getLevel() + " " + entry.getMessage() + "\n"); } logger.trace(buf.toString()); } } } }
@Override protected void failed(Throwable e, Description description) { List<LogEntry> logs = Browser.getCurrentDriver().manage().logs().get("browser").getAll(); System.err.println("Browser's console:"); if (logs.isEmpty()) { System.err.println("<EMPTY>"); } else { for (LogEntry log : logs) { System.err.println(" - " + log.getMessage().replace(" (undefined:undefined)", "")); } } } }
protected void storeLogs(Logs logs, String type) { StringBuilder sb = new StringBuilder(); try { LogEntries logEntries = logs.get(type); for (LogEntry entry : logEntries) { sb.append(formatLog(new Date(entry.getTimestamp()), entry.getLevel(), entry.getMessage())); } } catch (WebDriverException e) { sb.append(formatLog(new Date(), Level.SEVERE, "Unable to get webdriver logs for type " + type + ".\n" + e)); } String logStr = sb.toString(); if (!logStr.isEmpty()) seb.saveFile(logStr, "webdriver-" + type, "log"); }
/** * * @param driver the subject web driver that we want to get console log * @return List of log entries. */ public static List<String> analyzeLog(WebDriver driver) { List<String> log = new ArrayList<>(); Set<String> logTypes = driver.manage().logs().getAvailableLogTypes(); if (logTypes.contains(LogType.BROWSER)) { LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER); for (LogEntry entry : logEntries) { log.add(entry.getLevel() + " " + entry.getMessage().replaceAll("'", "")); } } else { log.add("This browser does not support getting console log."); } return log; }
@Override public JsErrorLog apply(LogEntry input) { JsErrorLog jsErrorLog = null; if (input != null) { final String message = input.getMessage(); final String source = extractSource(message); int lineNo = extractLineNo(message); final String errorMessage = extractMessage(message); jsErrorLog = new JsErrorLog(errorMessage, source, lineNo); } return jsErrorLog; }
@Override public JsErrorLog apply(LogEntry input) { JsErrorLog jsErrorLog = null; if (input != null) { final String message = input.getMessage(); final String source = extractSource(message); int lineNo = extractLineNo(message); final String errorMessage = extractMessage(message); jsErrorLog = new JsErrorLog(errorMessage, source, lineNo); } return jsErrorLog; }
private void logErrors(String url, LogEntries logEntries) { if (logEntries.getAll().size() == 0) { TestLogging.log("********* No Severe Error on Browser Console *********", true); } else { for (LogEntry logEntry : logEntries) { if (logEntry.getLevel().equals(Level.SEVERE)) { TestLogging.log("URL: "+url); TestLogging.logWebStep("Time stamp: " + logEntry.getTimestamp() + ", " + "Log level: " + logEntry .getLevel() + ", Log message: " + logEntry.getMessage(), true); isJSErrorFound = true; } } assert !isJSErrorFound; } }
private void logErrors(String event, WebElement element, LogEntries logEntries) { if (logEntries.getAll().size() == 0) { TestLogging.log("********* No Severe Error on Browser Console *********", true); } else { for (LogEntry logEntry : logEntries) { if (logEntry.getLevel().equals(Level.SEVERE)) { TestLogging.log("Sever Console Error on Browser "+event+" clicking " + "element: " +((HtmlElement)element).getBy()); TestLogging.logWebStep("Time stamp: " + logEntry.getTimestamp() + ", " + "Log level: " + logEntry .getLevel() + ", Log message: " + logEntry.getMessage(), true); isJSErrorFound = true; } } assert !isJSErrorFound; } }
@After public void tearDown() { if (driver != null) { for (LogEntry entry : driver.manage().logs().get("safariConsole")) { HashMap<String, Object> consoleEntry = new Json().toType(entry.getMessage(), Json.MAP_TYPE); System.out.println(String.format( "%s [%s] %s", entry.getTimestamp(), entry.getLevel(), consoleEntry.get("text"))); } driver.quit(); } }
public void loggingRoutine(AndroidDriver driver) { driver.get("https://appiumpro.com/test"); driver.executeScript("window.onerror=console.error.bind(console)"); driver.executeScript("console.log('foo.');"); driver.executeScript("console.warn('bar?');"); driver.findElementById("jsErrLink").click(); for (LogEntry entry : driver.manage().logs().get("browser")) { System.out.println(entry.getMessage()); } }