package net.conselldemallorca.helium.test.tramitacio; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; import org.openqa.selenium.By; import net.conselldemallorca.helium.test.util.BaseTest; @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class ReindexarAturarExpedient extends BaseTest { //EXP.12 - Reindexar expedient //EXP.13 - Aturar tramitacio expedient String entorn = carregarPropietat("tramitacio.expedient.reindexar.entorn.nom", "Nom de l'entorn de proves no configurat al fitxer de properties"); String titolEntorn = carregarPropietat("tramitacio.expedient.reindexar.entorn.titol", "Titol de l'entorn de proves no configurat al fitxer de properties"); String usuari = carregarPropietat("test.base.usuari.disseny", "Usuari feina de l'entorn de proves no configurat al fitxer de properties"); String usuariAdmin = carregarPropietat("test.base.usuari.configuracio", "Usuari configuració de l'entorn de proves no configurat al fitxer de properties"); String nomTipusExp = carregarPropietat("tramitacio.expedient.reindexar.tipus.expedient.nom", "Nom del tipus d'expedient de proves no configurat al fitxer de properties"); String codTipusExp = carregarPropietat("tramitacio.expedient.reindexar.tipus.expedient.codi", "Codi del tipus d'expedient de proves no configurat al fitxer de properties"); String tipusExpPath = carregarPropietatPath("tramitacio.expedient.reindexar.tipus.expedient.path", "Path del tipus d'expedient de proves no configurat al fitxer de properties"); //Llista de expedients que es crearàn > Reindexarán > Aturaràn i borraran static List<String[]> expedientes = new ArrayList<String[]>(); int numExpPrueba = 5; // XPATHS String pestanyaForms = "//*[@id='tabnav']/li/a[contains(@href, '/expedientTipus/formext.html')]"; String botoGuardarCanvis = "//*[@id='command']//div[@class='buttonHolder']/button[text() = 'Guardar']"; String linkBorrarExpedient = "//*[@id='registre']/tbody/tr[1]/td/a[contains(@href, '/expedient/delete.html')]"; @Test public void a1_inicialitzacio() { carregarUrlConfiguracio(); crearEntorn(entorn, titolEntorn); assignarPermisosEntorn(entorn, usuariAdmin, "DESIGN", "ORGANIZATION", "READ", "ADMINISTRATION"); assignarPermisosEntorn(entorn, usuari, "DESIGN", "ORGANIZATION", "READ", "ADMINISTRATION"); marcarEntornDefecte(titolEntorn); seleccionarEntorn(titolEntorn); crearTipusExpedient(nomTipusExp, codTipusExp); assignarPermisosTipusExpedient(codTipusExp, usuariAdmin, "CREATE", "MANAGE", "WRITE", "DELETE", "ADMINISTRATION", "DESIGN", "SUPERVISION", "READ"); assignarPermisosTipusExpedient(codTipusExp, usuari, "CREATE", "MANAGE", "WRITE", "DELETE", "ADMINISTRATION", "DESIGN", "SUPERVISION", "READ"); importarDadesTipExp(codTipusExp, tipusExpPath); } @Test public void b1_reindexar_expedient() { carregarUrlDisseny(); seleccionarEntorn(titolEntorn); // Iniciamos n expedientes con la última versión for (int i = 0; i < numExpPrueba; i++) { String[] expediente = iniciarExpediente(codTipusExp,"SE-"+i+"/2014", "Expedient de prova Selenium " + (new Date()).getTime() ); screenshotHelper.saveScreenshot("tramitar/reindexar_aturar/b1_1_"+(i+1)+"_expedientcreat.png"); expedientes.add(expediente); } int contadorExpedientsScript = 1; // Eliminamos los expedientes en Lucene for (String[] expediente : expedientes) { String script = "" + "String processInstanceId = net.conselldemallorca.helium.jbpm3.integracio.Jbpm3HeliumBridge.getInstanceService().getExpedientAmbEntornITipusINumero(net.conselldemallorca.helium.jbpm3.integracio.Jbpm3HeliumBridge.getInstanceService().getEntornActual().getId(), \""+codTipusExp+"\", \""+expediente[0]+"\").getProcessInstanceId();" + "net.conselldemallorca.helium.jbpm3.integracio.Jbpm3HeliumBridge.getInstanceService().luceneDeleteExpedient(processInstanceId);"; actions.moveToElement(driver.findElement(By.id("menuConsultes"))); actions.build().perform(); actions.moveToElement(driver.findElement(By.xpath("//*[@id='menuConsultes']//a[contains(@href, '/expedient/consultaDisseny.html')]"))); actions.click(); actions.build().perform(); try { //A vegades passa directament a la pantalla de consulta disseny sense pasar per la seleccio de tipus Expedient / Consulta driver.findElement(By.xpath("//*[@id='expedientTipusId0']")).findElements(By.tagName("option")).get(1).click(); driver.findElement(By.xpath("//*[@id='consultaId0']")).findElements(By.tagName("option")).get(1).click(); }catch (Exception ex) {} driver.findElement(By.xpath("//button[contains(text(), 'Consultar')]")).click(); screenshotHelper.saveScreenshot("entorns/reindexar/3_"+contadorExpedientsScript+"_1_llistaExpedients.png"); //Executam l´script per aquest expedient driver.findElement(By.xpath("//*[@id='registre']//a[contains(@href,'/expedient/info.html')][1]")).click(); driver.findElement(By.xpath("//*[@id='tabnav']//a[contains(@href,'/expedient/eines.html')]")).click(); driver.findElement(By.xpath("//*[@id='content']/div/h3[contains(a/text(), \"Execució d'scripts\")]/a")).click(); screenshotHelper.saveScreenshot("entorns/reindexar/3_"+contadorExpedientsScript+"_2_execucioScriptsExpedient.png"); driver.findElement(By.xpath("//*[@id='script0']")).sendKeys(script); screenshotHelper.saveScreenshot("entorns/reindexar/3_"+contadorExpedientsScript+"_3_acceptarScript.png"); driver.findElement(By.xpath("//button[contains(text(), 'Executar')]")).click(); if (isAlertPresent()) { acceptarAlerta(); } existeixElementAssert("//*[@id='infos']/p", "No se ejecutó el script correctamente del expediente: " + expediente); screenshotHelper.saveScreenshot("entorns/reindexar/3_"+contadorExpedientsScript+"_4_resultatScript.png"); contadorExpedientsScript++; } //Comprobamos que no aparecen expedientes en la consulta //consultaExpedients(); //Reindexam desde cada expedient contadorExpedientsScript=1; for (int e=0; e<numExpPrueba; e++) { consultaExpedients(); screenshotHelper.saveScreenshot("tramitar/reindexar_aturar/b1_2_"+contadorExpedientsScript+"_1_llistaExpedients.png"); String xPathExpActual = "//*[@id='registre']/tbody/tr["+Integer.toString(e+1)+"]/td/a[contains(@href,'/expedient/info.html')]"; //driver.findElement(By.xpath("//*[@id='registre']/tbody/tr["+(e+1)+"]/td/a[contains(@href,'/expedient/info.html')]")).click(); //driver.findElement(By.xpath("//*[@id='registre']//a[contains(@href,'/expedient/info.html')]["+(e+1)+"]")).click(); driver.findElement(By.xpath(xPathExpActual)).click(); driver.findElement(By.xpath("//*[@id='tabnav']//a[contains(@href,'/expedient/eines.html')]")).click(); driver.findElement(By.xpath("//*[@id='content']/h3[contains(a/text(), \"Reindexar l'expedient\")]/a")).click(); if (isAlertPresent()) { acceptarAlerta(); } existeixElementAssert("//*[@id='infos']/p", "No se reindexó correctamente el expediente."); screenshotHelper.saveScreenshot("tramitar/reindexar_aturar/b1_2_"+contadorExpedientsScript+"_2_expedient_reindexat.png"); contadorExpedientsScript++; } consultaExpedients(); screenshotHelper.saveScreenshot("tramitar/reindexar_aturar/b1_3_llistaExpedientsDespresIndexar.png"); //Comprovam que els expedients tornen a apareixer for (String[] expediente : expedientes) { existeixElementAssert("//td[contains(a/text(),'"+expediente[0]+"')]", "No se encontró el expediente: " + expediente[0]); } } @Test public void c1_aturar_tramitacio_expedient() { carregarUrlDisseny(); seleccionarEntorn(titolEntorn); consultaExpedients(); screenshotHelper.saveScreenshot("tramitar/reindexar_aturar/c1_1_llistaExpedients.png"); int contadorExpedientsScript=1; for (int e=0; e<numExpPrueba; e++) { String xPathExpActual = "//*[@id='registre']/tbody/tr["+Integer.toString(e+1)+"]/td/a[contains(@href,'/expedient/info.html')]"; //Executam l´script per aquest expedient driver.findElement(By.xpath(xPathExpActual)).click(); driver.findElement(By.xpath("//*[@id='tabnav']//a[contains(@href,'/expedient/eines.html')]")).click(); screenshotHelper.saveScreenshot("tramitar/reindexar_aturar/c1_2_"+contadorExpedientsScript+"_1_eines_expedient.png"); driver.findElement(By.xpath("//*[@id='content']/div/h3[contains(a/text(), \"Aturar la tram\")]/a")).click(); driver.findElement(By.id("motiu0")).sendKeys("Motiu aturada "+contadorExpedientsScript); screenshotHelper.saveScreenshot("tramitar/reindexar_aturar/c1_2_"+contadorExpedientsScript+"_2_motiu_aturada.png"); driver.findElement(By.xpath("//*[@id='aturarCommand']/div[@class='buttonHolder']/button[text() = 'Aturar']")).click(); if (isAlertPresent()) { acceptarAlerta(); } existeixElementAssert("//*[@id='infos']/p", "No se paró correctamente el expediente."); existeixElementAssert("//*[@id='content']/div[@class='missatgesAturat']", "No se paró correctamente el expediente."); screenshotHelper.saveScreenshot("tramitar/reindexar_aturar/c1_2_"+contadorExpedientsScript+"_3_expedient_aturat.png"); contadorExpedientsScript++; consultaExpedients(); } } @Test public void z0_finalitzacio() { carregarUrlConfiguracio(); consultaExpedients(); while (existeixElement(linkBorrarExpedient)) { driver.findElement(By.xpath(linkBorrarExpedient)).click(); if (isAlertPresent()) { acceptarAlerta(); } consultaExpedients(); } eliminarTipusExpedient(codTipusExp); eliminarEntorn(entorn); } // - - - - - - - - - - - - - - - - - - - - - // F U N C I O N S P R I V A D E S // - - - - - - - - - - - - - - - - - - - - - private void consultaExpedients() { actions.moveToElement(driver.findElement(By.id("menuConsultes"))); actions.build().perform(); actions.moveToElement(driver.findElement(By.xpath("//*[@id='menuConsultes']//a[contains(@href, '/expedient/consultaDisseny.html')]"))); actions.click(); actions.build().perform(); try { //A vegades passa directament a la pantalla de consulta disseny sense pasar per la seleccio de tipus Expedient / Consulta driver.findElement(By.xpath("//*[@id='expedientTipusId0']")).findElements(By.tagName("option")).get(1).click(); driver.findElement(By.xpath("//*[@id='consultaId0']")).findElements(By.tagName("option")).get(1).click(); }catch (Exception ex) {} driver.findElement(By.xpath("//button[contains(text(), 'Consultar')]")).click(); } }