com.pineapple.eckotur.web.test.DeleteOffer.java Source code

Java tutorial

Introduction

Here is the source code for com.pineapple.eckotur.web.test.DeleteOffer.java

Source

/*
 * 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 com.pineapple.eckotur.web.test;

import java.util.List;
import java.util.concurrent.TimeUnit;
import org.junit.AfterClass;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

/**
 *
 * @author estudiante
 */
public class DeleteOffer {

    // 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();

    /*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).*/
    @BeforeClass
    public static void setUp() throws Exception {
        driver = new FirefoxDriver();
        // se define el url base del proyecto web
        baseUrl = "http://localhost:8080/Eckotur.service/cart.html";
        /* Indica cuanto se espera para la respuesta de cualquier comando realizado hacia el navegador*/
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    }

    // La anotacin @AfterClass indica lo que se debe ejecutar DESPUES 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);
        }
    }

    @Test
    public void deletecart() throws Exception {
        boolean success = false;
        driver.findElement(By.partialLinkText("delete")).click();
        Thread.sleep(3000);
        List<WebElement> rows = driver.findElements(By.xpath("//table[contains(@id,'Table')]/tbody/tr"));
        for (WebElement webElement : rows) {
            List<WebElement> elems = webElement.findElements(By.xpath("td"));
            if (elems.get(0).getText().equals("Colombia") && elems.get(1).getText().equals("8000000")) {
                List<WebElement> buttons = elems.get(2).findElements(By.xpath("button"));
                buttons.get(1).click();
                success = true;
                break;
            }
        }
        Thread.sleep(3000);
        //Se busca el objeto que fue eliminado, si se encuentra hay error al eliminar
        rows = driver.findElements(By.xpath("//table[contains(@id,'Table')]/tbody/tr"));
        if (rows.size() > 0) {
            for (WebElement webElement : rows) {
                List<WebElement> elems = webElement.findElements(By.xpath("td"));
                if (elems.get(0).getText().equals("Viaje al centro de la tierra")
                        && elems.get(1).getText().equals("Web ID: 1089772")) {
                    success = false;
                    break;
                }
            }
        }
        Thread.sleep(3000);
        assertTrue(success);
    }
}