package com.constellio.app.ui.pages.user; import static com.constellio.app.ui.i18n.i18n.$; import static org.assertj.core.api.Assertions.assertThat; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.joda.time.Duration; import org.junit.Before; import org.junit.Test; import com.constellio.app.modules.rm.DemoTestRecords; import com.constellio.app.modules.rm.navigation.RMNavigationConfiguration; import com.constellio.app.modules.rm.RMTestRecords; import com.constellio.app.services.factories.ConstellioFactories; import com.constellio.app.ui.pages.base.SchemaPresenterUtils; import com.constellio.app.ui.pages.base.SessionContext; import com.constellio.app.ui.pages.globalGroup.AddEditGlobalGroupPage; import com.constellio.app.ui.pages.globalGroup.DisplayGlobalGroupPage; import com.constellio.app.ui.pages.globalGroup.ListGlobalGroupPage; import com.constellio.app.ui.pages.profile.ModifyProfilePage; import com.constellio.model.conf.LDAPTestConfig; import com.constellio.model.conf.ldap.LDAPConfigurationManager; import com.constellio.model.conf.ldap.config.LDAPServerConfiguration; import com.constellio.model.conf.ldap.config.LDAPUserSyncConfiguration; import com.constellio.model.entities.records.wrappers.User; import com.constellio.model.entities.security.global.GlobalGroupStatus; import com.constellio.model.entities.security.global.UserCredential; import com.constellio.model.entities.security.global.UserCredentialStatus; import com.constellio.model.services.records.RecordServices; import com.constellio.model.services.security.authentification.AuthenticationService; import com.constellio.model.services.users.UserServices; import com.constellio.sdk.tests.ConstellioTest; import com.constellio.sdk.tests.annotations.InDevelopmentTest; import com.constellio.sdk.tests.annotations.UiTest; import com.constellio.sdk.tests.selenium.adapters.constellio.ConstellioWebDriver; @UiTest public class UserGroupAndModifyProfilePageWithLDAPAcceptTest extends ConstellioTest { public static final String ADMINISTRATOR = "Administrator"; public static final String RGD = "RGD"; AddEditUserCredentialPage addEditUserCredentialPage; ListUserCredentialPage listUserCredentialPage; DisplayUserCredentialPage displayUserCredentialPage; ModifyProfilePage modifyProfilePage; AddEditGlobalGroupPage addEditGlobalGroupPage; ListGlobalGroupPage listGlobalGroupPage; DisplayGlobalGroupPage displayGlobalGroupPage; AuthenticationService authenticationService; RecordServices recordServices; ConstellioWebDriver driver; RMTestRecords records = new RMTestRecords(zeCollection); DemoTestRecords records2 = new DemoTestRecords("LaCollectionDeRida"); SessionContext sessionContext; User administratorInZeCollection; LDAPUserSyncConfiguration userSync; LDAPServerConfiguration serverConf; LDAPConfigurationManager ldapConfigurationManager; UserServices userServices; @Before public void setUp() throws Exception { prepareSystem( withZeCollection().withConstellioRMModule().withAllTestUsers().withRMTest( records).withFoldersAndContainersOfEveryStatus().withEvents(), withCollection("LaCollectionDeRida").withConstellioRMModule().withAllTestUsers().withRMTest(records2) .withFoldersAndContainersOfEveryStatus() ); inCollection("LaCollectionDeRida").setCollectionTitleTo("Collection d'entreprise"); inCollection(zeCollection).setCollectionTitleTo("Collection de test"); recordServices = getModelLayerFactory().newRecordServices(); userServices = getModelLayerFactory().newUserServices(); ldapConfigurationManager = getModelLayerFactory().getLdapConfigurationManager(); authenticationService = getModelLayerFactory().newAuthenticationService(); givenAdmin(); setupLDAPWithoutSynchronization(userServices); } @Test @InDevelopmentTest //Ne passe pas sur le serveur d'intégration public void testPage() throws Exception { testWithAdminAndLDAPActiveAndWithoutSynchronization(); //TODO fix this test // givenAdministrator(); // testWithAdministratorAndLDAPActiveAndWithoutSynchronization(); synchronizeLDAP(); testWithAdminAndLDAPSynchronization(); givenAdministrator(); testWithAdministratorAndLDAPSynchronization(); throw new RuntimeException("victory"); } private void testWithAdminAndLDAPActiveAndWithoutSynchronization() throws Exception { driver.snapshot("1"); navigatoToListUserCredentialPage(); driver.snapshot("2"); assertThat(ldapConfigurationManager.idUsersSynchActivated()).isFalse(); assertThat(ldapConfigurationManager.isLDAPAuthentication()).isTrue(); givenListUserCredentialsPageThenCanAddUser(); givenAddPageWhenAddUserThenAddUserWithoutPassword(1); givenEditPageWhenEditUserThenEditUserWithoutPassword(1); givenAdminInEditPageWhenEditUserCredentialThenOk(); givenDisplayPageWhenAddAndRemoveGroupsThenOk(1); givenListGlobalGroupPageThenCanAddGroup(); givenAddGlobalGroupPageWhenAddGroupThenOk(1); givenEditGlobalGroupPageWhenEditGroupThenOk(1); givenDisplayGlobalGroupPageWhenAddSubGroupThenOk(1); givenDisplayPageWhenDeleteSubGroupThenOk(1); givenDisplayGlobalGroupPageWhenAddAndRemoveUserThenOk(1); givenDisplayGlobalGroupPageWhenRemoveGroupThenOk(1); givenModifyProfilePageThenCanEdit(); } private void testWithAdministratorAndLDAPActiveAndWithoutSynchronization() throws Exception { navigatoToListUserCredentialPage(); assertThat(ldapConfigurationManager.idUsersSynchActivated()).isFalse(); assertThat(ldapConfigurationManager.isLDAPAuthentication()).isTrue(); givenListUserCredentialsPageThenCanAddUser(); givenAddPageWhenAddUserThenAddUserWithoutPassword(2); givenEditPageWhenEditUserThenEditUserWithoutPassword(2); givenDisplayPageWhenAddAndRemoveGroupsThenOk(2); givenListGlobalGroupPageThenCanAddGroup(); givenAddGlobalGroupPageWhenAddGroupThenOk(2); givenEditGlobalGroupPageWhenEditGroupThenOk(2); givenDisplayGlobalGroupPageWhenAddSubGroupThenOk(2); givenDisplayPageWhenDeleteSubGroupThenOk(2); givenDisplayGlobalGroupPageWhenAddAndRemoveUserThenOk(2); givenDisplayGlobalGroupPageWhenRemoveGroupThenOk(2); givenModifyProfilePageThenCanEdit(); } private void testWithAdminAndLDAPSynchronization() throws Exception { navigatoToListUserCredentialPage(); assertThat(ldapConfigurationManager.idUsersSynchActivated()).isTrue(); assertThat(ldapConfigurationManager.isLDAPAuthentication()).isTrue(); givenListUserCredentialsPageThenCannotAddUser(); givenListUserCredentialsPageWhenSearchForAdministratorThenCannotEdit(); givenAdminInListUserCredentialsPagewhenSearchForHimSelfThenCanEdit(); givenAdminInEditPageWhenEditUserCredentialThenOk(); givenDisplayPageThenAddAndDeleteButtonsAreInvisiblesEditIsEnabled(); givenModifyProfilePageThenCanEdit(); givenListGlobalGroupsPageThenCannotAddOrEdit(); givenDisplayGlobalGroupsPageThenAllEditAddAndDeleteButtonsAreInvisibles(); } private void testWithAdministratorAndLDAPSynchronization() throws Exception { navigatoToListUserCredentialPage(); assertThat(ldapConfigurationManager.idUsersSynchActivated()).isTrue(); assertThat(ldapConfigurationManager.isLDAPAuthentication()).isTrue(); givenListUserCredentialsPageThenCannotAddUser(); givenListUserCredentialsPageWhenSearchForAdministratorThenCannotEdit(); givenDisplayPageThenAllAddEditAndDeleteButtonsAreInvisibles(); givenAdministratorInModifyProfilePageThenCanEditOnlyStartTabAndDefaultTaxonomy(); givenListGlobalGroupsPageThenCannotAddOrEdit(); givenDisplayGlobalGroupsPageThenAllEditAddAndDeleteButtonsAreInvisibles(); } private void givenListUserCredentialsPageThenCanAddUser() { assertThat(listUserCredentialPage.getAddButton().isEnabled()).isTrue(); } private void givenAddPageWhenAddUserThenAddUserWithoutPassword(int id) { listUserCredentialPage.navigateToListUserCredentialsPage(); givenUserAddPage(); addEditUserCredentialPage.getUsernameElement().clearAndSetValue("zeEdouard" + id); addEditUserCredentialPage.getFirstNameElement().clearAndSetValue("zeEdouard" + id); addEditUserCredentialPage.getLastNameElement().clearAndSetValue("Lechat" + id); addEditUserCredentialPage.getEmailElement().clearAndSetValue("ze" + id + "Edouard@constellio.com"); addEditUserCredentialPage.getCollectionsElement().toggle(zeCollection); addEditUserCredentialPage.getSaveButton().clickAndWaitForPageReload(); assertThat(userServices.getUserCredential("zeEdouard" + id)).isNotNull(); assertThat(userServices.getUserCredential("zeEdouard" + id).getFirstName()).isEqualTo("zeEdouard" + id); assertThat(userServices.getUserCredential("zeEdouard" + id).getLastName()).isEqualTo("Lechat" + id); assertThat(userServices.getUserCredential("zeEdouard" + id).getEmail()).isEqualTo("ze" + id + "Edouard@constellio.com"); assertThat(userServices.getUserCredential("zeEdouard" + id).getStatus()).isEqualTo(UserCredentialStatus.ACTIVE); } private void givenEditPageWhenEditUserThenEditUserWithoutPassword(int id) { listUserCredentialPage.navigateToListUserCredentialsPage(); givenEditPageForUser("zeEdouard" + id); assertThat(addEditUserCredentialPage.getUsernameElement().isEnabled()).isFalse(); addEditUserCredentialPage.getFirstNameElement().clearAndSetValue("zeEdouard1" + id); addEditUserCredentialPage.getLastNameElement().clearAndSetValue("Lechat1" + id); addEditUserCredentialPage.getEmailElement().clearAndSetValue("ze" + id + "Edouard@constellio.com"); addEditUserCredentialPage.getCollectionsElement().toggle(zeCollection); addEditUserCredentialPage.getSaveButton().clickAndWaitForPageReload(); assertThat(userServices.getUserCredential("zeEdouard" + id)).isNotNull(); assertThat(userServices.getUserCredential("zeEdouard" + id).getFirstName()).isEqualTo("zeEdouard1" + id); assertThat(userServices.getUserCredential("zeEdouard" + id).getLastName()).isEqualTo("Lechat1" + id); assertThat(userServices.getUserCredential("zeEdouard" + id).getEmail()).isEqualTo("ze" + id + "Edouard@constellio.com"); assertThat(userServices.getUserCredential("zeEdouard" + id).getStatus()).isEqualTo(UserCredentialStatus.ACTIVE); } private void givenDisplayPageWhenAddAndRemoveGroupsThenOk(int id) { listUserCredentialPage.navigateToListUserCredentialsPage(); givenDisplayPageForUser("zeEdouard" + id); displayUserCredentialPage.getSearchInputGroups().setValue("Administrators"); displayUserCredentialPage.getSearchButtonGroups().clickAndWaitForPageReload(); displayUserCredentialPage.getAddButtonOnIndex(0).clickAndWaitForPageReload(); assertThat(userServices.getUserCredential("zeEdouard" + id).getGlobalGroups()).hasSize(1); assertThat(userServices.getUserCredential("zeEdouard" + id).getGlobalGroups().get(0)).contains(""); assertThat(displayUserCredentialPage.getEditGlobalGroupButtonOnIndex(0).isEnabled()).isTrue(); displayUserCredentialPage.getDeleteButtonOnIndex(0).click(); displayUserCredentialPage.getOkConfirmationDialogButton().clickAndWaitForPageReload(); assertThat(userServices.getUserCredential("zeEdouard" + id).getGlobalGroups()).isEmpty(); } private void givenListGlobalGroupPageThenCanAddGroup() { assertThat(listGlobalGroupPage.getAddButton().isEnabled()).isTrue(); } private void givenAddGlobalGroupPageWhenAddGroupThenOk(int id) { listGlobalGroupPage.navigateToListGlobalGroupsPage(); listGlobalGroupPage.getAddButton().clickAndWaitForPageReload(); assertThat(addEditGlobalGroupPage.getStatusElement().isEnabled()).isFalse(); addEditGlobalGroupPage.getCodeElement().setValue("zeGroup1" + id); addEditGlobalGroupPage.getNameElement().setValue("The zeGroup 1" + id); addEditGlobalGroupPage.getCollectionsElement().toggle(zeCollection); addEditGlobalGroupPage.getSaveButton().clickAndWaitForPageReload(); assertThat(userServices.getGroup("zeGroup1" + id)).isNotNull(); } private void givenEditGlobalGroupPageWhenEditGroupThenOk(int id) { listGlobalGroupPage.navigateToListGlobalGroupsPage(); givenEditPageForGroup("zeGroup1" + id); assertThat(addEditGlobalGroupPage.getCodeElement().isEnabled()).isFalse(); addEditGlobalGroupPage.getNameElement().clearAndSetValue("The zeGroup 1 modified" + id); addEditGlobalGroupPage.getCollectionsElement().toggle(zeCollection); addEditGlobalGroupPage.getCollectionsElement().toggle(zeCollection); addEditGlobalGroupPage.getSaveButton().clickAndWaitForPageReload(); assertThat(userServices.getGroup("zeGroup1" + id)).isNotNull(); assertThat(userServices.getGroup("zeGroup1" + id).getName()).isEqualTo("The zeGroup 1 modified" + id); } private void givenDisplayGlobalGroupPageWhenAddSubGroupThenOk(int id) { listGlobalGroupPage.navigateToListGlobalGroupsPage(); givenDisplayPageForGroup("zeGroup1" + id); displayGlobalGroupPage.getAddSubGlobalGroupButtonMenuAction().click(); displayGlobalGroupPage.waitForPageReload(); addEditGlobalGroupPage.getCodeElement().clearAndSetValue("zeSubGroup1" + id); addEditGlobalGroupPage.getNameElement().clearAndSetValue("The zeSubGroup 1" + id); addEditGlobalGroupPage.getCollectionsElement().toggle(zeCollection); addEditGlobalGroupPage.getSaveButton().clickAndWaitForPageReload(); assertThat(userServices.getGroup("zeSubGroup1" + id)).isNotNull(); assertThat(userServices.getGroup("zeSubGroup1" + id).getParent()).isEqualTo("zeGroup1" + id); } private void givenDisplayPageWhenDeleteSubGroupThenOk(int id) { listGlobalGroupPage.navigateToListGlobalGroupsPage(); givenDisplayPageForGroup("zeGroup1" + id); displayGlobalGroupPage.getDeleteSubGlobalGroupButtonOnIndex(0).clickAndWaitForPageReload(); displayGlobalGroupPage.getOkConfirmationDialogButton().clickAndWaitForPageReload(); assertThat(userServices.getGroup("zeSubGroup1" + id)).isNotNull(); assertThat(userServices.getGroup("zeSubGroup1" + id).getStatus()).isEqualTo(GlobalGroupStatus.INACTIVE); } private void givenDisplayGlobalGroupPageWhenAddAndRemoveUserThenOk(int id) { listGlobalGroupPage.navigateToListGlobalGroupsPage(); givenDisplayPageForGroup("zeGroup1" + id); displayGlobalGroupPage.getSearchInputUsers().clearAndSetValue("admin@organization.com"); displayGlobalGroupPage.getSearchButtonUsers().click(); displayGlobalGroupPage.waitForPageReload(); displayGlobalGroupPage.getAddButton().clickAndWaitForPageReload(); assertThat(userServices.getUserCredential("admin").getGlobalGroups()).contains("zeGroup1" + id); displayGlobalGroupPage.getSearchInputUsersInGroup().clearAndSetValue("admin@organization.com"); displayGlobalGroupPage.getSearchButtonUsersInGroup().click(); displayGlobalGroupPage.getDeleteButtonOnIndex(0).clickAndWaitForPageReload(); displayGlobalGroupPage.getOkConfirmationDialogButton().clickAndWaitForPageReload(); assertThat(userServices.getUserCredential("admin").getGlobalGroups()).doesNotContain("zeGroup1" + id); } private void givenDisplayGlobalGroupPageWhenRemoveGroupThenOk(int id) { listGlobalGroupPage.navigateToListGlobalGroupsPage(); givenDisplayPageForGroup("zeGroup1" + id); displayGlobalGroupPage.getDeleteGlobalGroupButtonMenuAction().clickAndWaitForPageReload(); assertThat(userServices.getGroup("zeSubGroup1" + id)).isNotNull(); assertThat(userServices.getGroup("zeSubGroup1" + id).getStatus()).isEqualTo(GlobalGroupStatus.INACTIVE); } // private void givenListUserCredentialsPageThenCannotAddUser() throws Exception { assertThat(listUserCredentialPage.getAddButton().isEnabled()).isFalse(); } private void givenListUserCredentialsPageWhenSearchForAdministratorThenCannotEdit() throws Exception { listUserCredentialPage.getSearchInput().setValue(ADMINISTRATOR); listUserCredentialPage.getSearchButton().clickAndWaitForPageReload(); assertThat(listUserCredentialPage.getTableRows()).hasSize(1); assertThat(listUserCredentialPage.getTableRows().get(0).getText()).contains(ADMINISTRATOR); assertThat(listUserCredentialPage.findEditButtonElements()).isEmpty(); } private void givenAdminInListUserCredentialsPagewhenSearchForHimSelfThenCanEdit() throws Exception { listUserCredentialPage.getSearchInput().clearAndSetValue("admin@organization.com"); listUserCredentialPage.getSearchButton().clickAndWaitForPageReload(); assertThat(listUserCredentialPage.getTableRows()).hasSize(1); assertThat(listUserCredentialPage.getTableRows().get(0).getText()).contains("admin"); assertThat(listUserCredentialPage.getEditUserCredentialButtonOnIndex(0).isEnabled()).isTrue(); } private void givenAdminInEditPageWhenEditUserCredentialThenOk() throws Exception { listUserCredentialPage.getSearchInput().clearAndSetValue("admin@organization.com"); listUserCredentialPage.getSearchButton().clickAndWaitForPageReload(); givenEditUserPageForIndex(0); assertThat(addEditUserCredentialPage.getUsernameElement().isEnabled()).isFalse(); addEditUserCredentialPage.getFirstNameElement().clearAndSetValue("Admin1"); addEditUserCredentialPage.getLastNameElement().clearAndSetValue("System1"); addEditUserCredentialPage.getEmailElement().clearAndSetValue("admin@organization.com"); addEditUserCredentialPage.getPasswordElement().clearAndSetValue("2wsx1qaz"); addEditUserCredentialPage.getConfirmPasswordElement().clearAndSetValue("2wsx1qaz"); addEditUserCredentialPage.getCollectionsElement().toggle(zeCollection); addEditUserCredentialPage.getCollectionsElement().toggle(zeCollection); addEditUserCredentialPage.getSaveButton().clickAndWaitForPageReload(); assertThat(userServices.getUserCredential("admin").getFirstName()).isEqualTo("Admin1"); assertThat(userServices.getUserCredential("admin").getLastName()).isEqualTo("System1"); assertThat(userServices.getUserCredential("admin").getEmail()).isEqualTo("admin@organization.com"); assertThat(userServices.getUserCredential("admin").getCollections()).isEqualTo( Arrays.asList("LaCollectionDeRida", zeCollection)); assertThat(authenticationService.authenticate("admin", "2wsx1qaz")); } private void givenDisplayPageThenAllAddEditAndDeleteButtonsAreInvisibles() { listUserCredentialPage.getSearchInput().clearAndSetValue("admin@organization.com"); listUserCredentialPage.getSearchButton().clickAndWaitForPageReload(); givenDisplayUserPageForIndex(0); assertThat(displayUserCredentialPage.getEditGlobalGroupButtonMenuAction().isEnabled()).isFalse(); assertThat(displayUserCredentialPage.findEditButtonElements()).hasSize(1); assertThat(displayUserCredentialPage.getEditGlobalGroupButtonMenuAction().isEnabled()).isFalse(); assertThat(displayUserCredentialPage.findAddButtonElements()).isEmpty(); assertThat(displayUserCredentialPage.findDeleteButtonElements()).isEmpty(); } private void givenDisplayPageThenAddAndDeleteButtonsAreInvisiblesEditIsEnabled() { listUserCredentialPage.getSearchInput().clearAndSetValue("admin@organization.com"); listUserCredentialPage.getSearchButton().clickAndWaitForPageReload(); givenDisplayUserPageForIndex(0); assertThat(displayUserCredentialPage.getEditGlobalGroupButtonMenuAction().isEnabled()).isTrue(); assertThat(displayUserCredentialPage.findEditButtonElements()).hasSize(1); assertThat(displayUserCredentialPage.getEditGlobalGroupButtonMenuAction().isEnabled()).isTrue(); assertThat(displayUserCredentialPage.findAddButtonElements()).isEmpty(); assertThat(displayUserCredentialPage.findDeleteButtonElements()).isEmpty(); } private void givenModifyProfilePageThenCanEdit() { modifyProfilePage.navigateToPage(); modifyProfilePage.waitForPageReload(); modifyProfilePage.getFirstNameElement().clearAndSetValue("System1"); modifyProfilePage.getLastNameElement().clearAndSetValue("Admin1"); modifyProfilePage.getPhoneElement().clearAndSetValue("33333333"); modifyProfilePage.getEmailElement().clearAndSetValue("admin@organization.com"); modifyProfilePage.getStartTabElement().toggle($("HomeView.tab." + RMNavigationConfiguration.LAST_VIEWED_DOCUMENTS)); modifyProfilePage.getDefaultTaxonomyElement().toggle("Plan de classification"); modifyProfilePage.getSaveButton().click(); modifyProfilePage.waitForPageReload(); modifyProfilePage.navigateToPage(); assertThat(modifyProfilePage.getFirstNameElement().getValue()).isEqualTo("System1"); assertThat(modifyProfilePage.getLastNameElement().getValue()).isEqualTo("Admin1"); assertThat(modifyProfilePage.getEmailElement().getValue()).isEqualTo("admin@organization.com"); assertThat(modifyProfilePage.getPhoneElement().getValue()).isEqualTo("33333333"); assertThat(modifyProfilePage.getStartTabElement().getCheckedValues().get(0)) .isEqualTo($("HomeView.tab." + RMNavigationConfiguration.LAST_VIEWED_DOCUMENTS)); assertThat(modifyProfilePage.getDefaultTaxonomyElement().getCheckedValues().get(0)).isEqualTo("Plan de classification"); } private void givenAdministratorInModifyProfilePageThenCanEditOnlyStartTabAndDefaultTaxonomy() { modifyProfilePage.navigateToPage(); assertThat(modifyProfilePage.getFirstNameElement().isEnabled()).isFalse(); assertThat(modifyProfilePage.getLastNameElement().isEnabled()).isFalse(); assertThat(modifyProfilePage.getPhoneElement().isEnabled()).isFalse(); assertThat(modifyProfilePage.getEmailElement().isEnabled()).isFalse(); modifyProfilePage.getStartTabElement().toggle($("HomeView.tab." + RMNavigationConfiguration.LAST_VIEWED_DOCUMENTS)); modifyProfilePage.getDefaultTaxonomyElement().toggle("Plan de classification"); modifyProfilePage.getSaveButton().click(); modifyProfilePage.waitForPageReload(); modifyProfilePage.navigateToPage(); assertThat(modifyProfilePage.getFirstNameElement().getValue()).isEqualTo(""); assertThat(modifyProfilePage.getLastNameElement().getValue()).isEqualTo(""); assertThat(modifyProfilePage.getEmailElement().getValue()).isEqualTo(""); assertThat(modifyProfilePage.getPhoneElement().getValue()).isEqualTo(""); assertThat(modifyProfilePage.getStartTabElement().getCheckedValues().get(0)) .isEqualTo($("HomeView.tab." + RMNavigationConfiguration.LAST_VIEWED_DOCUMENTS)); assertThat(modifyProfilePage.getDefaultTaxonomyElement().getCheckedValues().get(0)).isEqualTo("Plan de classification"); } private void givenListGlobalGroupsPageThenCannotAddOrEdit() { listGlobalGroupPage.navigateToListGlobalGroupsPage(); assertThat(listGlobalGroupPage.getAddButton().isEnabled()).isFalse(); assertThat(listGlobalGroupPage.findEditButtonElements()).isEmpty(); assertThat(displayGlobalGroupPage.findDeleteButtonElements()).isEmpty(); } private void givenDisplayGlobalGroupsPageThenAllEditAddAndDeleteButtonsAreInvisibles() { listGlobalGroupPage.getDisplayGlobalGroupButtonOnIndex(0).click(); listGlobalGroupPage.waitForPageReload(); assertThat(displayGlobalGroupPage.findEditButtonElements()).hasSize(1); assertThat(displayGlobalGroupPage.getEditGlobalGroupButtonMenuAction().isEnabled()).isFalse(); assertThat(displayGlobalGroupPage.findAddButtonElements()).isEmpty(); assertThat(displayGlobalGroupPage.getAddSubGlobalGroupButtonMenuAction().isEnabled()).isFalse(); assertThat(displayGlobalGroupPage.findDeleteButtonElements()).hasSize(1); assertThat(displayGlobalGroupPage.getDeleteGlobalGroupButtonMenuAction().isEnabled()).isFalse(); } // private void navigatoToListUserCredentialPage() throws Exception { driver.navigateTo().appManagement(); listUserCredentialPage.navigateToListUserCredentialsPage(); } private void givenAdministrator() { addAdministratorInCollection(userServices); sessionContext = loggedAsUserInCollection(ADMINISTRATOR, zeCollection); driver = newWebDriver(sessionContext); addEditUserCredentialPage = new AddEditUserCredentialPage(driver); listUserCredentialPage = new ListUserCredentialPage(driver); displayUserCredentialPage = new DisplayUserCredentialPage(driver); listGlobalGroupPage = new ListGlobalGroupPage(driver); displayGlobalGroupPage = new DisplayGlobalGroupPage(driver); addEditGlobalGroupPage = new AddEditGlobalGroupPage(driver); modifyProfilePage = new ModifyProfilePage(driver); } private void givenAdmin() { sessionContext = loggedAsUserInCollection("admin", zeCollection); driver = newWebDriver(sessionContext); addEditUserCredentialPage = new AddEditUserCredentialPage(driver); listUserCredentialPage = new ListUserCredentialPage(driver); displayUserCredentialPage = new DisplayUserCredentialPage(driver); listGlobalGroupPage = new ListGlobalGroupPage(driver); displayGlobalGroupPage = new DisplayGlobalGroupPage(driver); addEditGlobalGroupPage = new AddEditGlobalGroupPage(driver); modifyProfilePage = new ModifyProfilePage(driver); driver.snapshot("0"); } private void setupLDAPWithoutSynchronization(UserServices userServices) { userSync = LDAPTestConfig.getLDAPUserSyncConfiguration(); userSync.setDurationBetweenExecution(null); serverConf = LDAPTestConfig.getLDAPServerConfiguration(); ldapConfigurationManager.saveLDAPConfiguration(serverConf, userSync); getModelLayerFactory().getLdapUserSyncManager().synchronizeIfPossible(); } private void addAdministratorInCollection(UserServices userServices) { UserCredential administrator = userServices.getUser(ADMINISTRATOR); userServices.addUserToCollection(administrator, zeCollection); administratorInZeCollection = userServices.getUserInCollection(ADMINISTRATOR, zeCollection); List<String> roles = new ArrayList<>(administratorInZeCollection.getUserRoles()); roles.add(RGD); administratorInZeCollection.setUserRoles(roles); SchemaPresenterUtils presenterUtils = new SchemaPresenterUtils(User.DEFAULT_SCHEMA, ConstellioFactories .getInstance(), sessionContext); presenterUtils.addOrUpdate(administratorInZeCollection.getWrappedRecord()); } private void synchronizeLDAP() { userSync.setDurationBetweenExecution(Duration.standardDays(1)); ldapConfigurationManager.saveLDAPConfiguration(serverConf, userSync); getModelLayerFactory().getLdapUserSyncManager().synchronizeIfPossible(); } private void givenUserAddPage() { listUserCredentialPage.getAddButton().clickAndWaitForPageReload(); } private void givenGroupAddPage() { listGlobalGroupPage.getAddButton().clickAndWaitForPageReload(); } private void givenEditUserPageForIndex(int index) { listUserCredentialPage.getEditUserCredentialButtonOnIndex(index).clickAndWaitForPageReload(); } private void givenEditPageForUser(String user) { listUserCredentialPage.getSearchInput().setValue(user); listUserCredentialPage.getSearchButton().clickAndWaitForPageReload(); listUserCredentialPage.getEditUserCredentialButtonOnIndex(0).clickAndWaitForPageReload(); } private void givenEditPageForGroup(String group) { listGlobalGroupPage.getSearchInput().setValue(group); listGlobalGroupPage.getSearchButton().clickAndWaitForPageReload(); listGlobalGroupPage.getEditGlobalGroupButtonOnIndex(0).clickAndWaitForPageReload(); } private void givenDisplayPageForUser(String user) { listUserCredentialPage.getSearchInput().setValue(user); listUserCredentialPage.getSearchButton().clickAndWaitForPageReload(); listUserCredentialPage.getDisplayUserCredentialButtonOnIndex(0).clickAndWaitForPageReload(); } private void givenDisplayPageForGroup(String group) { listGlobalGroupPage.getSearchInput().setValue(group); listGlobalGroupPage.getSearchButton().clickAndWaitForPageReload(); listGlobalGroupPage.getDisplayGlobalGroupButtonOnIndex(0).clickAndWaitForPageReload(); } // private void givenDisplayUserPageForIndex(int index) { listUserCredentialPage.navigateToListUserCredentialsPage(); listUserCredentialPage.getDisplayUserCredentialButtonOnIndex(index).clickAndWaitForPageReload(); } }