package com.constellio.app.ui.pages.globalGroup; import static org.assertj.core.api.Assertions.assertThat; import org.junit.Before; import org.junit.Test; import com.constellio.app.modules.rm.RMTestRecords; import com.constellio.app.modules.rm.services.RMSchemasRecordsServices; import com.constellio.app.ui.application.NavigatorConfigurationService; import com.constellio.model.entities.security.global.GlobalGroupStatus; import com.constellio.model.services.users.GlobalGroupsManager; import com.constellio.sdk.tests.ConstellioTest; import com.constellio.sdk.tests.annotations.UiTest; import com.constellio.sdk.tests.selenium.adapters.constellio.ConstellioWebDriver; @UiTest public class GlobalGroupPageAcceptTest extends ConstellioTest { ConstellioWebDriver driver; RMSchemasRecordsServices rm; RMTestRecords records = new RMTestRecords(zeCollection); AddEditGlobalGroupPage addEditGlobalGroupPage; ListGlobalGroupPage listGlobalGroupPage; DisplayGlobalGroupPage displayGlobalGroupPage; GlobalGroupsManager globalGroupsManager; @Before public void setUp() throws Exception { prepareSystem( withZeCollection().withConstellioRMModule().withAllTestUsers().withRMTest(records) .withFoldersAndContainersOfEveryStatus() ); rm = new RMSchemasRecordsServices(zeCollection, getAppLayerFactory()); givenCollection("otherCollection"); globalGroupsManager = getModelLayerFactory().getGlobalGroupsManager(); driver = newWebDriver(loggedAsUserInCollection("admin", zeCollection)); addEditGlobalGroupPage = new AddEditGlobalGroupPage(driver); listGlobalGroupPage = new ListGlobalGroupPage(driver); displayGlobalGroupPage = new DisplayGlobalGroupPage(driver); } // @InDevelopmentTest @Test public void testPage() throws Exception { givenListGroupsPageWhenSearchThenOk(); givenListGroupsPageWhenBackButtonClickedThenNavigateToAdminModule(); givenAddPageWhenAddGlobalGroupAndCancelButtonClickedThenNavigateToListGroups(); givenAddPageWhenAddGlobalGroupThenOk(); givenEditPageWhenEditGlobalGroupThenOk(); givenDisplayPageWhenSearchAndAddUserInGroupThenCanSearchHimInUserGroupTable(); givenDisplayPageWhenClickInModifyThenNavigateToAddEditGlobalGroup(); givenDisplayPageWhenClickInEditUserThenNavigateToAddEditUserCredential(); givenDisplayPageWhenClickInDeleteUserFromGroupThenCanSearchHimInUserTable(); givenDisplayPageWhenClickInBackButtonThenNavigateToListGroup(); givenDisplayPageWhenAddSubGroupThenCanSearchIt(); givenDisplayPageWhenEditSubGroupThenCanSearchIt(); givenDisplayPageWhenDeleteSubGroupThenOk(); givenDisplayPageWhenClickInDeleteGroupThenDeleteItAndNavigateToListGroup(); givenListGroupsWhenDeleteHeroesGroupAndNoConfirmButtonClickedThenNoDeleteIt(); givenListGroupsWhenDeleteHeroesGroupAndConfirmButtonClickedThenDeleteIt(); } private void givenListGroupsPageWhenSearchThenOk() throws Exception { listGlobalGroupPage.navigateToListGlobalGroupsPage(); assertThat(listGlobalGroupPage.getTableRows()).hasSize(2); listGlobalGroupPage.getSearchInput().setValue("Heroes"); listGlobalGroupPage.getSearchButton().click(); listGlobalGroupPage.waitForPageReload(); assertThat(listGlobalGroupPage.getTableRows()).hasSize(1); assertThat(listGlobalGroupPage.getTableRows().get(0).getText()).contains("heroes"); } private void givenListGroupsPageWhenBackButtonClickedThenNavigateToAdminModule() throws Exception { listGlobalGroupPage.getBackButton().click(); listGlobalGroupPage.waitForPageReload(); assertThat(driver.getCurrentPage()).isEqualTo( NavigatorConfigurationService.ADMIN_MODULE); } private void givenAddPageWhenAddGlobalGroupAndCancelButtonClickedThenNavigateToListGroups() throws Exception { listGlobalGroupPage.navigateToListGlobalGroupsPage(); listGlobalGroupPage.waitForPageReload(); givenAddPage(); assertThat(addEditGlobalGroupPage.getStatusElement().isEnabled()).isFalse(); addEditGlobalGroupPage.getCodeElement().setValue("zeGroup1"); addEditGlobalGroupPage.getNameElement().setValue("The zeGroup 1"); addEditGlobalGroupPage.getCollectionsElement().toggle(zeCollection); addEditGlobalGroupPage.getCollectionsElement().toggle("otherCollection"); addEditGlobalGroupPage.getCancelButton().click(); addEditGlobalGroupPage.waitForPageReload(); assertThat(listGlobalGroupPage.getTableRows()).hasSize(2); } private void givenAddPageWhenAddGlobalGroupThenOk() throws Exception { givenAddPage(); addEditGlobalGroupPage.getCodeElement().setValue("zeGroup1"); addEditGlobalGroupPage.getNameElement().setValue("The zeGroup 1"); addEditGlobalGroupPage.getCollectionsElement().toggle(zeCollection); addEditGlobalGroupPage.getCollectionsElement().toggle("otherCollection"); addEditGlobalGroupPage.getSaveButton().click(); addEditGlobalGroupPage.waitForPageReload(); assertThat(listGlobalGroupPage.getTableRows()).hasSize(3); assertThat(listGlobalGroupPage.getTableRows().get(2).getText()).contains("zeGroup1"); } private void givenEditPageWhenEditGlobalGroupThenOk() throws Exception { givenEditPageForIndex(0); addEditGlobalGroupPage.getNameElement().setValue("The heroes 1"); addEditGlobalGroupPage.getCollectionsElement().toggle(zeCollection); addEditGlobalGroupPage.getCollectionsElement().toggle("otherCollection"); addEditGlobalGroupPage.getStatusElement().toggle(GlobalGroupStatus.ACTIVE.name()); addEditGlobalGroupPage.getSaveButton().click(); addEditGlobalGroupPage.waitForPageReload(); assertThat(listGlobalGroupPage.getTableRows()).hasSize(3); assertThat(listGlobalGroupPage.getTableRows().get(0).getText()).contains("heroes 1"); } private void givenDisplayPageWhenSearchAndAddUserInGroupThenCanSearchHimInUserGroupTable() throws Exception { givenDisplayPageForIndex(0); displayGlobalGroupPage.getSearchInputUsers().setValue("admin"); displayGlobalGroupPage.getSearchButtonUsers().click(); displayGlobalGroupPage.waitForPageReload(); assertThat(displayGlobalGroupPage.getTableRowsUsers()).hasSize(1); assertThat(displayGlobalGroupPage.getTableRowsUsers().get(0).getText()).contains("admin"); assertThat(displayGlobalGroupPage.getTableRowsUsersInGroup()).hasSize(3); displayGlobalGroupPage.getAddButton().click(); displayGlobalGroupPage.waitForPageReload(); assertThat(displayGlobalGroupPage.getTableRowsUsersInGroup()).hasSize(4); displayGlobalGroupPage.getSearchInputUsersInGroup().setValue("admin"); displayGlobalGroupPage.getSearchButtonUsersInGroup().click(); assertThat(displayGlobalGroupPage.getTableRowsUsersInGroup()).hasSize(1); assertThat(displayGlobalGroupPage.getTableRowsUsersInGroup().get(0).getText()).contains("admin"); } private void givenDisplayPageWhenClickInModifyThenNavigateToAddEditGlobalGroup() { givenDisplayPageForIndex(0); displayGlobalGroupPage.getEditGlobalGroupButtonMenuAction().click(); displayGlobalGroupPage.waitForPageReload(); assertThat(driver.getCurrentPage()) .isEqualTo(NavigatorConfigurationService.GROUP_ADD_EDIT + "/groupList/groupDisplay/globalGroupCode%253Dheroes"); } private void givenDisplayPageWhenClickInEditUserThenNavigateToAddEditUserCredential() { givenDisplayPageForIndex(0); displayGlobalGroupPage.getEditUserCredentialButtonOnIndex(1).click(); displayGlobalGroupPage.waitForPageReload(); assertThat(driver.getCurrentPage()) .isEqualTo(NavigatorConfigurationService.USER_ADD_EDIT + "/groupList/groupDisplay/globalGroupCode%253Dheroes%253Busername%253Dadmin"); } public void givenDisplayPageWhenClickInDeleteUserFromGroupThenCanSearchHimInUserTable() throws Exception { givenDisplayPageForIndex(0); displayGlobalGroupPage.getSearchInputUsersInGroup().setValue("charles"); displayGlobalGroupPage.getSearchButtonUsersInGroup().click(); displayGlobalGroupPage.waitForPageReload(); assertThat(displayGlobalGroupPage.getTableRowsUsersInGroup()).hasSize(1); assertThat(displayGlobalGroupPage.getTableRowsUsersInGroup().get(0).getText()).contains("charles"); assertThat(displayGlobalGroupPage.getTableRowsUsers()).hasSize(6); displayGlobalGroupPage.getDeleteButtonOnIndex(1).click(); displayGlobalGroupPage.waitForPageReload(); displayGlobalGroupPage.getCancelConfirmationDialogButton().click(); displayGlobalGroupPage.waitForPageReload(); assertThat(displayGlobalGroupPage.getTableRowsUsers()).hasSize(6); displayGlobalGroupPage.getDeleteButtonOnIndex(1).click(); displayGlobalGroupPage.getOkConfirmationDialogButton().click(); displayGlobalGroupPage.waitForPageReload(); displayGlobalGroupPage.getSearchInputUsers().setValue("charles"); displayGlobalGroupPage.getSearchButtonUsers().click(); assertThat(displayGlobalGroupPage.getTableRowsUsersInGroup()).hasSize(3); assertThat(displayGlobalGroupPage.getTableRowsUsers()).hasSize(1); assertThat(displayGlobalGroupPage.getTableRowsUsers().get(0).getText()).contains("charles"); } private void givenDisplayPageWhenClickInBackButtonThenNavigateToListGroup() { givenDisplayPageForIndex(0); displayGlobalGroupPage.getBackButton().click(); displayGlobalGroupPage.waitForPageReload(); assertThat(driver.getCurrentPage()) .isEqualTo(NavigatorConfigurationService.GROUP_LIST + "/globalGroupCode%253Dheroes"); } private void givenDisplayPageWhenAddSubGroupThenCanSearchIt() { givenDisplayPageForIndex(0); displayGlobalGroupPage.getAddSubGlobalGroupButtonMenuAction().click(); displayGlobalGroupPage.waitForPageReload(); addEditGlobalGroupPage.getCodeElement().setValue("heroes1"); addEditGlobalGroupPage.getNameElement().setValue("The heroes 1"); addEditGlobalGroupPage.getCollectionsElement().toggle(zeCollection); addEditGlobalGroupPage.getCollectionsElement().toggle("otherCollection"); addEditGlobalGroupPage.getSaveButton().click(); addEditGlobalGroupPage.waitForPageReload(); displayGlobalGroupPage.getSearchInputSubGroups().setValue("heroes1"); displayGlobalGroupPage.getSearchButtonSubGroups().click(); addEditGlobalGroupPage.waitForPageReload(); assertThat(displayGlobalGroupPage.getTableRowsSubGroups()).hasSize(1); assertThat(displayGlobalGroupPage.getTableRowsSubGroups().get(0).getText()).contains("heroes1"); } private void givenDisplayPageWhenEditSubGroupThenCanSearchIt() { givenDisplayPageForIndex(0); displayGlobalGroupPage.getEditSubGlobalGroupButtonOnIndex(0).click(); displayGlobalGroupPage.waitForPageReload(); addEditGlobalGroupPage.getNameElement().setValue("The heroes 1 modified"); addEditGlobalGroupPage.getCollectionsElement().toggle(zeCollection); addEditGlobalGroupPage.getCollectionsElement().toggle("otherCollection"); addEditGlobalGroupPage.getSaveButton().click(); addEditGlobalGroupPage.waitForPageReload(); displayGlobalGroupPage.getSearchInputSubGroups().setValue("heroes1"); displayGlobalGroupPage.getSearchButtonSubGroups().click(); addEditGlobalGroupPage.waitForPageReload(); assertThat(displayGlobalGroupPage.getTableRowsSubGroups()).hasSize(1); assertThat(displayGlobalGroupPage.getTableRowsSubGroups().get(0).getText()).contains("The heroes 1 modified"); } private void givenDisplayPageWhenDeleteSubGroupThenOk() { givenDisplayPageForIndex(0); displayGlobalGroupPage.getDeleteSubGlobalGroupButtonOnIndex(0).click(); displayGlobalGroupPage.getOkConfirmationDialogButton().click(); displayGlobalGroupPage.waitForPageReload(); assertThat(globalGroupsManager.getGlobalGroupWithCode("heroes1").getStatus()).isSameAs(GlobalGroupStatus.INACTIVE); displayGlobalGroupPage.getSearchInputSubGroups().setValue("heroes1"); displayGlobalGroupPage.getSearchButtonSubGroups().click(); assertThat(displayGlobalGroupPage.getTableRowsSubGroups()).isEmpty(); } private void givenDisplayPageWhenClickInDeleteGroupThenDeleteItAndNavigateToListGroup() { givenDisplayPageForIndex(2); String currentPage = driver.getCurrentPage(); displayGlobalGroupPage.getDeleteGlobalGroupButtonMenuAction().click(); displayGlobalGroupPage.waitForPageReload(); displayGlobalGroupPage.getCancelConfirmationDialogButton().click(); displayGlobalGroupPage.waitForPageReload(); assertThat(driver.getCurrentPage()).isEqualTo(currentPage); displayGlobalGroupPage.getDeleteGlobalGroupButtonMenuAction().click(); displayGlobalGroupPage.waitForPageReload(); displayGlobalGroupPage.getOkConfirmationDialogButton().click(); displayGlobalGroupPage.waitForPageReload(); assertThat(driver.getCurrentPage()) .isEqualTo(NavigatorConfigurationService.GROUP_LIST); assertThat(listGlobalGroupPage.getTableRows()).hasSize(2); } private void givenListGroupsWhenDeleteHeroesGroupAndNoConfirmButtonClickedThenNoDeleteIt() throws Exception { listGlobalGroupPage.getDeleteButtonOnIndex(0).click(); listGlobalGroupPage.waitForPageReload(); listGlobalGroupPage.getCancelConfirmationDialogButton().click(); listGlobalGroupPage.waitForPageReload(); assertThat(listGlobalGroupPage.getTableRows()).hasSize(2); assertThat(listGlobalGroupPage.getTableRows().get(0).getText()).contains("heroes"); } private void givenListGroupsWhenDeleteHeroesGroupAndConfirmButtonClickedThenDeleteIt() throws Exception { listGlobalGroupPage.getDeleteButtonOnIndex(0).click(); listGlobalGroupPage.waitForPageReload(); listGlobalGroupPage.getOkConfirmationDialogButton().click(); listGlobalGroupPage.waitForPageReload(); assertThat(listGlobalGroupPage.getTableRows()).hasSize(1); assertThat(listGlobalGroupPage.getTableRows().get(0).getText()).doesNotContain("heroes"); } // private void givenAddPage() { listGlobalGroupPage.getAddButton().clickAndWaitForPageReload(); } private void givenEditPageForIndex(int index) { listGlobalGroupPage.getEditGlobalGroupButtonOnIndex(index).clickAndWaitForPageReload(); } private void givenDisplayPageForIndex(int index) { listGlobalGroupPage.navigateToListGlobalGroupsPage(); listGlobalGroupPage.getDisplayGlobalGroupButtonOnIndex(index).clickAndWaitForPageReload(); } }