Vou Colocar novamente o Código todo.
package br.com.alura.leilao.login;
import org.junit.Assert;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class LoginTest {
private LoginPage paginaDeLogin;
@BeforeEach
public void beforeEach() {
this.paginaDeLogin = new LoginPage();
}
@AfterEach
public void afterEach() {
this.paginaDeLogin.fechar();
}
@Test
public void deveriaEfetuarLoginComDadosValidos() {
paginaDeLogin.preencheFormularioDeLogin("fulano", "pass");
paginaDeLogin.efetuaLogin();
Assert.assertFalse(paginaDeLogin.isPaginaDeLogin());
Assert.assertEquals("fulano", paginaDeLogin.getNomeUsuarioLogado());
}
@Test
public void naoDeveriaLogarComDadosInvalidos() {
paginaDeLogin.preencheFormularioDeLogin("invalido", "123");
paginaDeLogin.efetuaLogin();
Assert.assertTrue(paginaDeLogin.isPaginaDeLoginComDadosInvalidos());
Assert.assertNull(paginaDeLogin.getNomeUsuarioLogado());
Assert.assertTrue(paginaDeLogin.contemTexto("Usuário e senha inválidos."));
}
@Test
public void naoDeveriaAcessarPaginaRestritaSemEstarLogado() {
paginaDeLogin.navegaParaPaginaDeLances();
Assert.assertTrue(paginaDeLogin.isPaginaDeLogin());
Assert.assertFalse(paginaDeLogin.contemTexto("Dados do Leilão"));
}
}
package br.com.alura.leilao.login;
import org.junit.Assert;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class LoginPage {
private static final String URL_LOGIN = "http:/localhost:8080/login";
private WebDriver browser;
public LoginPage() {
System.setProperty("webdriver.chrome.driver", "drivers/chromedriver.exe");
this.browser = new ChromeDriver();
browser.navigate().to (URL_LOGIN);
}
public void fechar() {
this.browser.quit();
}
public void preencheFormularioDeLogin(String username, String password) {
browser.findElement(By.id("username")).sendKeys(username);
browser.findElement(By.id("password")).sendKeys(password);
}
public void efetuaLogin() {
browser.findElement(By.id("login-form")).submit();
}
public boolean isPaginaDeLogin() {
return browser.getCurrentUrl().equals(URL_LOGIN);
}
public Object getNomeUsuarioLogado() {
try {
return browser.findElement(By.id("usuario-logado")).getText();
} catch (NoSuchElementException e ) {
return null;
}
}
public void navegaParaPaginaDeLances() {
this.browser.navigate().to ("http://localhost:8080/leiloes/2");
}
public boolean contemTexto(String texto) {
return browser.getPageSource().contains(texto);
}
public boolean isPaginaDeLoginComDadosInvalidos() {
return browser.getCurrentUrl().equals(URL_LOGIN + "?error");
}
}