Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package co.edu.uniandes.csw.cliente.web.test; import java.util.List; import java.util.concurrent.TimeUnit; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.transaction.UserTransaction; import org.junit.*; import static org.junit.Assert.*; import org.junit.runner.RunWith; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; /** * * @author admin */ public class ClienteTest { // Es la instancia inicial del web driver que controlar el navegador firefox private static WebDriver driver; // url en el cual se aloja la pgina web (en este caso localhost:8080) private static String baseUrl; // variable que indica si varios alert consecutivos (alert javascript) se tomarn private static boolean acceptNextAlert = true; private static StringBuffer verificationErrors = new StringBuffer(); @PersistenceContext private EntityManager em; /*La anotacin @BeforeClass indica lo que se debe ejecutar ANTES de correr el archivo de pruebas. Este mtodo instancia un nuevo driver firefox (causando la apertura de una ventana fsica de firefox).*/ @Inject UserTransaction utx; @BeforeClass public static void setUp() throws Exception { driver = new FirefoxDriver(); // se define el url base del proyecto web baseUrl = "http://localhost:8080"; driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } // La anotacin @AfterClass indica lo que se debe ejecutar DESPUS de ejecutar // el archivo de pruebas. Este mtodo cierra la ventana de firefox // abierta por @BeforeClass que se utiliz para la prueba. @AfterClass public static void tearDown() throws Exception { // Se cierra el navegador. driver.quit(); // Se verifica que se haya cerrado efectivamente el navegador. String verificationErrorString = verificationErrors.toString(); if (!"".equals(verificationErrorString)) { fail(verificationErrorString); } } @Before public void setUpUrl() { driver.get(baseUrl + "/cliente.master.service.subsystem/"); //configTest(); } public void configTest() { System.out.println("em: " + em); try { utx.begin(); clearData(); utx.commit(); } catch (Exception e) { e.printStackTrace(); try { utx.rollback(); } catch (Exception e1) { e1.printStackTrace(); } } } private void clearData() { em.createQuery("delete from ClienteEntity").executeUpdate(); } @Test public void testRegistrar() throws Exception { String cadena = "prueba11"; driver.findElement(By.xpath("//button[contains(@id,'button3')]")).click(); Thread.sleep(5000); driver.findElement(By.id("name")).clear(); driver.findElement(By.id("name")).sendKeys(cadena); driver.findElements(By.id("docId")).get(1).clear(); driver.findElements(By.id("docId")).get(1).sendKeys(cadena); driver.findElement(By.id("tipo")).clear(); driver.findElement(By.id("tipo")).sendKeys(cadena); driver.findElements(By.id("password")).get(1).clear(); driver.findElements(By.id("password")).get(1).sendKeys(cadena); driver.findElements(By.xpath("//button[contains(@id,'cliente-loginButton')]")).get(1).click(); Thread.sleep(5000); // List<WebElement> table = driver.findElements(By.xpath("//table[contains(@class,'table striped')]/tbody/tr")); // boolean sucess = false; // for (WebElement webElement : table) // { // List<WebElement> elems = webElement.findElements(By.xpath("td")); // if (elems.get(0).getText().equals("aaa") && elems.get(1).getText().equals("aaa") // && elems.get(2).getText().equals("aaa") && elems.get(2).getText().equals("aaa")) // { // sucess = true; // } // } boolean sucess = false; String texto1 = driver.findElement(By.id("name")).getAttribute("value"); if (texto1.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; String texto2 = driver.findElement(By.id("docId")).getAttribute("value"); if (texto2.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; String texto3 = driver.findElement(By.id("tipo")).getAttribute("value"); if (texto3.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; String texto4 = driver.findElement(By.id("password")).getAttribute("value"); if (texto4.equals(cadena)) { sucess = true; } assertTrue(sucess); } @Test public void testLogin() throws Exception { String cadena = "prueba21"; driver.findElement(By.xpath("//button[contains(@id,'button3')]")).click(); Thread.sleep(5000); driver.findElement(By.id("name")).clear(); driver.findElement(By.id("name")).sendKeys(cadena); driver.findElements(By.id("docId")).get(1).clear(); driver.findElements(By.id("docId")).get(1).sendKeys(cadena); driver.findElement(By.id("tipo")).clear(); driver.findElement(By.id("tipo")).sendKeys(cadena); driver.findElements(By.id("password")).get(1).clear(); driver.findElements(By.id("password")).get(1).sendKeys(cadena); driver.findElements(By.xpath("//button[contains(@id,'cliente-loginButton')]")).get(1).click(); Thread.sleep(5000); // List<WebElement> table = driver.findElements(By.xpath("//table[contains(@class,'table striped')]/tbody/tr")); // boolean sucess = false; // for (WebElement webElement : table) // { // List<WebElement> elems = webElement.findElements(By.xpath("td")); // if (elems.get(0).getText().equals("aaa") && elems.get(1).getText().equals("aaa") // && elems.get(2).getText().equals("aaa") && elems.get(2).getText().equals("aaa")) // { // sucess = true; // } // } boolean sucess = false; String texto1 = driver.findElement(By.id("name")).getAttribute("value"); if (texto1.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; String texto2 = driver.findElement(By.id("docId")).getAttribute("value"); if (texto2.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; String texto3 = driver.findElement(By.id("tipo")).getAttribute("value"); if (texto3.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; String texto4 = driver.findElement(By.id("password")).getAttribute("value"); if (texto4.equals(cadena)) { sucess = true; } assertTrue(sucess); driver.findElement(By.xpath("//button[contains(@id,'button7')]")).click(); Thread.sleep(5000); driver.findElement(By.xpath("//button[contains(@id,'button3')]")).click(); Thread.sleep(5000); driver.findElements(By.id("docId")).get(0).clear(); driver.findElements(By.id("docId")).get(0).sendKeys(cadena); driver.findElements(By.id("password")).get(0).clear(); driver.findElements(By.id("password")).get(0).sendKeys(cadena); driver.findElements(By.xpath("//button[contains(@id,'cliente-loginButton')]")).get(0).click(); Thread.sleep(5000); sucess = false; texto1 = driver.findElement(By.id("name")).getAttribute("value"); if (texto1.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; texto2 = driver.findElement(By.id("docId")).getAttribute("value"); if (texto2.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; texto3 = driver.findElement(By.id("tipo")).getAttribute("value"); if (texto3.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; texto4 = driver.findElement(By.id("password")).getAttribute("value"); if (texto4.equals(cadena)) { sucess = true; } assertTrue(sucess); } @Test public void testVerInfoProducto() throws Exception { String nombreProducto = "Leche"; int costoProducto = 1000; int pesoProducto = 1000; driver.findElements(By.xpath("//button[contains(@id,'ver-producto')]")).get(0).click(); Thread.sleep(5000); WebElement cad1 = driver.findElement(By.xpath("//*[contains(.,'" + nombreProducto + "')]")); if (cad1 != null) { assertTrue(true); } else { assertTrue(false); } WebElement cad2 = driver.findElement(By.xpath("//*[contains(.,'Costo: $" + costoProducto + "')]")); if (cad2 != null) { assertTrue(true); } else { assertTrue(false); } WebElement cad3 = driver.findElement(By.xpath("//*[contains(.,'Peso: " + pesoProducto + "')]")); if (cad3 != null) { assertTrue(true); } else { assertTrue(false); } } @Test public void testAgregarProductoACarrito() throws Exception { String nombreProducto = "Leche"; int costoProducto = 1000; int pesoProducto = 1000; driver.findElements(By.xpath("//button[contains(@id,'ver-producto')]")).get(0).click(); Thread.sleep(5000); WebElement cad1 = driver.findElement(By.xpath("//*[contains(.,'" + nombreProducto + "')]")); if (cad1 != null) { assertTrue(true); } else { assertTrue(false); } WebElement cad2 = driver.findElement(By.xpath("//*[contains(.,'Costo: $" + costoProducto + "')]")); if (cad2 != null) { assertTrue(true); } else { assertTrue(false); } WebElement cad3 = driver.findElement(By.xpath("//*[contains(.,'Peso: " + pesoProducto + "')]")); if (cad3 != null) { assertTrue(true); } else { assertTrue(false); } driver.findElement(By.xpath("//button[contains(@id,'comprar-producto')]")).click(); Thread.sleep(5000); cad1 = driver.findElement(By.xpath("//*[contains(.,'" + nombreProducto + "')]")); if (cad1 != null) { assertTrue(true); } else { assertTrue(false); } cad2 = driver.findElement(By.xpath("//*[contains(.,'$" + costoProducto + "')]")); if (cad2 != null) { assertTrue(true); } else { assertTrue(false); } } @Test public void testComprar() throws Exception { String cadena = "prueba31"; driver.findElement(By.xpath("//button[contains(@id,'button3')]")).click(); Thread.sleep(5000); driver.findElement(By.id("name")).clear(); driver.findElement(By.id("name")).sendKeys(cadena); driver.findElements(By.id("docId")).get(1).clear(); driver.findElements(By.id("docId")).get(1).sendKeys(cadena); driver.findElement(By.id("tipo")).clear(); driver.findElement(By.id("tipo")).sendKeys(cadena); driver.findElements(By.id("password")).get(1).clear(); driver.findElements(By.id("password")).get(1).sendKeys(cadena); driver.findElements(By.xpath("//button[contains(@id,'cliente-loginButton')]")).get(1).click(); Thread.sleep(5000); // List<WebElement> table = driver.findElements(By.xpath("//table[contains(@class,'table striped')]/tbody/tr")); // boolean sucess = false; // for (WebElement webElement : table) // { // List<WebElement> elems = webElement.findElements(By.xpath("td")); // if (elems.get(0).getText().equals("aaa") && elems.get(1).getText().equals("aaa") // && elems.get(2).getText().equals("aaa") && elems.get(2).getText().equals("aaa")) // { // sucess = true; // } // } boolean sucess = false; String texto1 = driver.findElement(By.id("name")).getAttribute("value"); if (texto1.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; String texto2 = driver.findElement(By.id("docId")).getAttribute("value"); if (texto2.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; String texto3 = driver.findElement(By.id("tipo")).getAttribute("value"); if (texto3.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; String texto4 = driver.findElement(By.id("password")).getAttribute("value"); if (texto4.equals(cadena)) { sucess = true; } assertTrue(sucess); driver.findElement(By.xpath("//button[contains(@id,'button7')]")).click(); Thread.sleep(5000); driver.findElement(By.xpath("//button[contains(@id,'button3')]")).click(); Thread.sleep(5000); driver.findElements(By.id("docId")).get(0).clear(); driver.findElements(By.id("docId")).get(0).sendKeys(cadena); driver.findElements(By.id("password")).get(0).clear(); driver.findElements(By.id("password")).get(0).sendKeys(cadena); driver.findElements(By.xpath("//button[contains(@id,'cliente-loginButton')]")).get(0).click(); Thread.sleep(5000); sucess = false; texto1 = driver.findElement(By.id("name")).getAttribute("value"); if (texto1.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; texto2 = driver.findElement(By.id("docId")).getAttribute("value"); if (texto2.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; texto3 = driver.findElement(By.id("tipo")).getAttribute("value"); if (texto3.equals(cadena)) { sucess = true; } assertTrue(sucess); sucess = false; texto4 = driver.findElement(By.id("password")).getAttribute("value"); if (texto4.equals(cadena)) { sucess = true; } assertTrue(sucess); String nombreProducto = "Leche"; int costoProducto = 1000; int pesoProducto = 1000; driver.findElements(By.xpath("//button[contains(@id,'button1')]")).get(0).click(); Thread.sleep(5000); driver.findElements(By.xpath("//button[contains(@id,'ver-producto')]")).get(0).click(); Thread.sleep(5000); WebElement cad1 = driver.findElement(By.xpath("//*[contains(.,'" + nombreProducto + "')]")); if (cad1 != null) { assertTrue(true); } else { assertTrue(false); } WebElement cad2 = driver.findElement(By.xpath("//*[contains(.,'Costo: $" + costoProducto + "')]")); if (cad2 != null) { assertTrue(true); } else { assertTrue(false); } WebElement cad3 = driver.findElement(By.xpath("//*[contains(.,'Peso: " + pesoProducto + "')]")); if (cad3 != null) { assertTrue(true); } else { assertTrue(false); } driver.findElement(By.xpath("//button[contains(@id,'comprar-producto')]")).click(); Thread.sleep(5000); cad1 = driver.findElement(By.xpath("//*[contains(.,'" + nombreProducto + "')]")); if (cad1 != null) { assertTrue(true); } else { assertTrue(false); } cad2 = driver.findElement(By.xpath("//*[contains(.,'$" + costoProducto + "')]")); if (cad2 != null) { assertTrue(true); } else { assertTrue(false); } driver.findElements(By.id("pago")).get(0).clear(); driver.findElements(By.id("pago")).get(0).sendKeys("Tarjeta dbito"); driver.findElements(By.id("direccion")).get(0).clear(); driver.findElements(By.id("direccion")).get(0).sendKeys("Cra 23 no 45"); driver.findElements(By.xpath("//button[contains(@id,'confirmar-compra')]")).get(0).click(); Thread.sleep(5000); driver.findElement(By.xpath("//button[contains(@id,'button5')]")).click(); // cad1 = driver.findElement(By.xpath("//*[contains(.,'Cra 23 no 45')]")); // if(cad1!=null) // { // assertTrue(true); // } // else // { // assertTrue(false); // } // cad2 = driver.findElement(By.xpath("//*[contains(.,'Tarjeta dbito')]")); // if(cad2!=null) // { // assertTrue(true); // } // else // { // assertTrue(false); // } } }