Skip to content

Commit

Permalink
SDI-2122-713-5.7-Casos Uso VistaPrivada.
Browse files Browse the repository at this point in the history
  • Loading branch information
paulasuarezp committed Mar 8, 2022
1 parent b1b8e4d commit 77f7f7e
Show file tree
Hide file tree
Showing 2 changed files with 143 additions and 0 deletions.
116 changes: 116 additions & 0 deletions src/test/java/com/uniovi/sdi/Sdi2122713SpringApplicationTests.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.uniovi.sdi;

import com.uniovi.sdi.pageobjects.*;
import com.uniovi.sdi.util.SeleniumUtils;
import org.junit.jupiter.api.*;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
Expand Down Expand Up @@ -308,4 +310,118 @@ public void PR11() {
Assertions.assertEquals(checkText, result.get(0).getText());

}

//PR12. Loguearse, comprobar que se visualizan 4 filas de notas y desconectarse usando el rol de estudiante
@Test
@Order(20)
public void PR12() {
//Vamos al formulario de logueo.
PO_HomeView.clickOption(driver, "login", "class", "btn btn-primary");
//Rellenamos el formulario
PO_LoginView.fillLoginForm(driver, "99999990A", "123456");
//COmprobamos que entramos en la pagina privada de Alumno
String checkText = "Notas del usuario";
List<WebElement> result = PO_View.checkElementBy(driver, "text", checkText);
//Contamos el número de filas de notas
List<WebElement> markList = SeleniumUtils.waitLoadElementsBy(driver, "free", "//tbody/tr",
PO_View.getTimeout());
Assertions.assertEquals(4, markList.size());
//Ahora nos desconectamos y comprobamos que aparece el menú de registro
String loginText = PO_HomeView.getP().getString("signup.message", PO_Properties.getSPANISH());
PO_PrivateView.clickOption(driver, "logout", "text", loginText);

}

//PR13. Loguearse como estudiante y ver los detalles de la nota con Descripcion = Nota A2.
@Test
@Order(21)
public void PR13() {
//Comprobamos que entramos en la pagina privada de Alumno
PO_HomeView.clickOption(driver, "login", "class", "btn btn-primary");
PO_LoginView.fillLoginForm(driver, "99999990A", "123456");
String checkText = "Notas del usuario";
List<WebElement> result = PO_View.checkElementBy(driver, "text", checkText);
//SeleniumUtils.esperarSegundos(driver, 1);
//Contamos las notas
By enlace = By.xpath("//td[contains(text(), 'Nota A2')]/following-sibling::*[2]");
driver.findElement(enlace).click();
//Esperamos por la ventana de detalle
checkText = "Detalles de la nota";
result = PO_View.checkElementBy(driver, "text", checkText);
Assertions.assertEquals(checkText, result.get(0).getText());
//Ahora nos desconectamos comprobamas que aparece el menu de registrarse
String loginText = PO_HomeView.getP().getString("signup.message", PO_Properties.getSPANISH());
PO_PrivateView.clickOption(driver, "logout", "text", loginText);
}

//P14. Loguearse como profesor y Agregar Nota A2.
//P14. Esta prueba podría encapsularse mejor ...
@Test
@Order(22)
public void PR14() {
//Vamos al formulario de login.
PO_HomeView.clickOption(driver, "login", "class", "btn btn-primary");
PO_LoginView.fillLoginForm(driver, "99999993D", "123456");
//Cmmprobamos que entramos en la pagina privada del Profesor
PO_View.checkElementBy(driver, "text", "99999993D");
//Pinchamos en la opción de menú de Notas: //li[contains(@id, 'marks-menu')]/a
List<WebElement> elements = PO_View.checkElementBy(driver, "free", "//li[contains(@id, 'marks-menu')]/a");
elements.get(0).click();
//Esperamos a que aparezca la opción de añadir nota: //a[contains(@href, 'mark/add')]
elements = PO_View.checkElementBy(driver, "free", "//a[contains(@href, 'mark/add')]");
//Pinchamos en agregar Nota.
elements.get(0).click();

//Ahora vamos a rellenar la nota. //option[contains(@value, '4')]
String checkText = "Nota Nueva 1";
PO_PrivateView.fillFormAddMark(driver, 3, checkText, "8");
//Esperamos a que se muestren los enlaces de paginación de la lista de notas
elements = PO_View.checkElementBy(driver, "free", "//a[contains(@class, 'page-link')]");
//Nos vamos a la última página
elements.get(3).click();
//Comprobamos que aparece la nota en la página
elements = PO_View.checkElementBy(driver, "text", checkText);
Assertions.assertEquals(checkText, elements.get(0).getText());
//Ahora nos desconectamos y comprobamos que aparece el menú de registrarse
String loginText = PO_HomeView.getP().getString("signup.message", PO_Properties.getSPANISH());
PO_PrivateView.clickOption(driver, "logout", "text", loginText);
}


@Test
@Order(23)
public void PR15() {
//Vamos al formulario de logueo.
PO_HomeView.clickOption(driver, "login", "class", "btn btn-primary");
PO_LoginView.fillLoginForm(driver, "99999993D", "123456");

//Comprobamos que entramos en la pagina privada del Profesor
PO_View.checkElementBy(driver, "text", "99999993D");
//Pinchamos en la opción de menu de Notas: //li[contains(@id, 'marks-menu')]/a
List<WebElement> elements = PO_View.checkElementBy(driver, "free", "//li[contains(@id, 'marks-menu')]/a");
elements.get(0).click();
//Pinchamos en la opción de lista de notas.
elements = PO_View.checkElementBy(driver, "free", "//a[contains(@href, 'mark/list')]");
elements.get(0).click();
//Esperamos a que se muestren los enlaces de paginacion la lista de notas
elements = PO_View.checkElementBy(driver, "free", "//a[contains(@class, 'page-link')]");
//Nos vamos a la última página
elements.get(3).click();

//Esperamos a que aparezca la Nueva nota en la ultima pagina
//Y Pinchamos en el enlace de borrado de la Nota "Nota Nueva 1"
elements = PO_View.checkElementBy(driver, "free", "//td[contains(text(), 'Nota Nueva 1')]/following-sibling::*/a[contains(@href, 'mark/delete')]");
elements.get(0).click();
//Volvemos a la última pagina
elements = PO_View.checkElementBy(driver, "free", "//a[contains(@class, 'page-link')]");
elements.get(3).click();
//Y esperamos a que NO aparezca la ultima "Nueva Nota 1"
SeleniumUtils.waitTextIsNotPresentOnPage(driver, "Nota Nueva 1",PO_View.getTimeout());

//Ahora nos desconectamos comprobamas que aparece el menu de registrarse
String loginText = PO_HomeView.getP().getString("signup.message", PO_Properties.getSPANISH());
PO_PrivateView.clickOption(driver, "logout", "text", loginText);
}


}
27 changes: 27 additions & 0 deletions src/test/java/com/uniovi/sdi/pageobjects/PO_PrivateView.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.uniovi.sdi.pageobjects;

import com.uniovi.sdi.util.SeleniumUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Select;

public class PO_PrivateView extends PO_NavView {
static public void fillFormAddMark(WebDriver driver, int userOrder, String descriptionp, String scorep)
{
//Esperamos 5 segundo a que carge el DOM porque en algunos equipos falla
SeleniumUtils.waitSeconds(driver, 5);
//Seleccionamos el alumnos userOrder
new Select(driver.findElement(By.id("user"))).selectByIndex(userOrder);
//Rellenemos el campo de descripción
WebElement description = driver.findElement(By.name("description"));
description.clear();
description.sendKeys(descriptionp);
WebElement score = driver.findElement(By.name("score"));
score.click();
score.clear();
score.sendKeys(scorep);
By boton = By.className("btn");
driver.findElement(boton).click();
}
}

0 comments on commit 77f7f7e

Please sign in to comment.