Java tutorial
/* * (c) Kitodo. Key to digital objects e. V. <contact@kitodo.org> * * This file is part of the Kitodo project. * * It is licensed under GNU General Public License version 3 or later. * * For the full copyright and license information, please read the * GPL3-License.txt file that was distributed with this source code. */ package org.kitodo.selenium; import static org.awaitility.Awaitility.await; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeTrue; import java.util.List; import org.apache.commons.lang.SystemUtils; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import org.kitodo.data.database.beans.Process; import org.kitodo.production.services.ServiceManager; import org.kitodo.selenium.testframework.BaseTestSelenium; import org.kitodo.selenium.testframework.Browser; import org.kitodo.selenium.testframework.Pages; import org.kitodo.selenium.testframework.pages.ProcessesPage; import org.kitodo.selenium.testframework.pages.ProjectEditPage; import org.kitodo.selenium.testframework.pages.ProjectsPage; import org.kitodo.selenium.testframework.pages.TemplateEditPage; import org.kitodo.selenium.testframework.pages.UsersPage; import org.kitodo.selenium.testframework.pages.WorkflowEditPage; public class EditingST extends BaseTestSelenium { private static ProcessesPage processesPage; private static ProjectsPage projectsPage; private static UsersPage usersPage; @BeforeClass public static void setup() throws Exception { processesPage = Pages.getProcessesPage(); projectsPage = Pages.getProjectsPage(); usersPage = Pages.getUsersPage(); } @Before public void login() throws Exception { Pages.getLoginPage().goTo().performLoginAsAdmin(); } @After public void logout() throws Exception { Pages.getTopNavigation().logout(); if (Browser.isAlertPresent()) { Browser.getDriver().switchTo().alert().accept(); } } @Ignore("Save of process is pending in -saving-") @Test public void editProcessTest() throws Exception { assumeTrue(!SystemUtils.IS_OS_WINDOWS && !SystemUtils.IS_OS_MAC); processesPage.editProcess().changeProcessData(); assertEquals("Header for edit process is incorrect", "Vorgang bearbeiten (First process)", Pages.getProcessEditPage().getHeaderText()); Pages.getProcessEditPage().save(); assertTrue("Redirection after save was not successful", processesPage.isAt()); Process processAfterEdit = ServiceManager.getProcessService().getById(1); assertEquals("Incorrect amount of template properties", 4, processAfterEdit.getTemplates().size()); } @Test public void editBatchTest() throws Exception { processesPage.editBatch(); await().untilAsserted(() -> assertEquals("Batch was not renamed!", 1, ServiceManager.getBatchService().getByQuery("FROM Batch WHERE title = 'SeleniumBatch'").size())); assertEquals("Process was not removed from batch", 1, ServiceManager.getBatchService() .getByQuery("FROM Batch WHERE title = 'SeleniumBatch'").get(0).getProcesses().size()); } @Test public void editProjectTest() throws Exception { final String newProjectTitle = "newTitle"; ProjectEditPage projectEditPage = projectsPage.editProject(); assertEquals("Header for edit project is incorrect", "Projekt bearbeiten (First project)", Pages.getProjectEditPage().getHeaderText()); assertFalse(projectEditPage.areElementsEnabled()); projectEditPage.changeTitle(newProjectTitle); projectEditPage.save(); projectsPage.editProject(); projectEditPage.toggleProjectActiveCheckbox(); projectEditPage.save(); boolean projectAvailable = Pages.getProjectsPage().getProjectsTitles().contains(newProjectTitle); assertTrue("Title was not changed", projectAvailable); List<String> projectsActiveStates = projectsPage.getProjectsActiveStates(); assertTrue(projectsActiveStates.contains("fa fa-minus-square-o fa-lg checkbox-unchecked")); projectEditPage = projectsPage.editProject(); projectEditPage.toggleProjectActiveCheckbox().save(); projectsActiveStates = projectsPage.getProjectsActiveStates(); assertFalse(projectsActiveStates.contains("fa fa-minus-square-o fa-lg checkbox-unchecked")); } @Test public void editTemplateTest() throws Exception { projectsPage = projectsPage.goToTemplateTab(); List<String> templateDetails = projectsPage.getTemplateDetails(); assertTrue("The first project should be assigned to this template", templateDetails.contains("First project")); assertFalse("The template is already assigned to second Project", templateDetails.stream().anyMatch(listString -> listString.contains("Second project"))); TemplateEditPage editTemplatePage = projectsPage.editTemplate(); assertEquals("Header for edit template is incorrect", "Produktionsvorlage bearbeiten (First template)", Pages.getTemplateEditPage().getHeaderText()); editTemplatePage.addSecondProject(); templateDetails = editTemplatePage.save().getTemplateDetails(); assertTrue("The second project should be assigned to this template", templateDetails.stream().anyMatch(listString -> listString.contains("Second project"))); } @Test public void editWorkflowTest() throws Exception { String status = projectsPage.goToWorkflowTab().getWorkflowStatusForWorkflow(); assertEquals("Status is not correct", "Entwurf", status); WorkflowEditPage workflowEditPage = projectsPage.editWorkflow(); workflowEditPage.changeWorkflowStatusToActive(); assertEquals("Header for edit workflow is incorrect", "Workflow bearbeiten (test)", Pages.getWorkflowEditPage().getHeaderText()); projectsPage = workflowEditPage.save(); status = projectsPage.goToWorkflowTab().getWorkflowStatusForWorkflow(); assertEquals("Status change was not saved", "Aktiv", status); } @Test public void editDocketTest() throws Exception { projectsPage.editDocket(); assertEquals("Header for edit docket is incorrect", "Laufzettel bearbeiten (default)", Pages.getDocketEditPage().getHeaderText()); } @Test public void editRulesetTest() throws Exception { projectsPage.editRuleset(); assertEquals("Header for edit ruleset is incorrect", "Regelsatz bearbeiten (SLUBDD)", Pages.getRulesetEditPage().getHeaderText()); } @Ignore("user page is there, link is there, not clicking - find out why") @Test public void editUserTest() throws Exception { usersPage.editUser(); assertEquals("Header for edit user is incorrect", "Benutzer bearbeiten (Kowalski, Jan)", Pages.getUserEditPage().getHeaderText()); } @Test public void editRoleTest() throws Exception { usersPage.editRole(); assertEquals("Header for edit role is incorrect", "Rolle bearbeiten (Admin)", Pages.getRoleEditPage().getHeaderText()); } @Test public void editLdapGroupTest() throws Exception { usersPage.editLdapGroup(); assertEquals("Header for edit LDAP group is incorrect", "LDAP-Gruppe bearbeiten (LG)", Pages.getLdapGroupEditPage().getHeaderText()); } @Test public void editClientTest() throws Exception { usersPage.editClient(); assertEquals("Header for edit client is incorrect", "Mandant bearbeiten", Pages.getClientEditPage().getHeaderText()); } }