package com.constellio.app.ui.pages.user; 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.services.users.UserServices; 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 UserCredentialPageAcceptTest extends ConstellioTest { ConstellioWebDriver driver; RMSchemasRecordsServices schemas; RMTestRecords records = new RMTestRecords(zeCollection); AddEditUserCredentialPage addEditUserCredentialPage; ListUserCredentialPage listUserCredentialPage; DisplayUserCredentialPage displayUserCredentialPage; UserServices userServices; @Before public void setUp() throws Exception { prepareSystem( withZeCollection().withAllTestUsers().withConstellioRMModule().withRMTest(records) .withFoldersAndContainersOfEveryStatus(), withCollection("otherCollection") ); schemas = new RMSchemasRecordsServices(zeCollection, getAppLayerFactory()); userServices = getModelLayerFactory().newUserServices(); driver = newWebDriver(loggedAsUserInCollection("admin", zeCollection)); addEditUserCredentialPage = new AddEditUserCredentialPage(driver); listUserCredentialPage = new ListUserCredentialPage(driver); displayUserCredentialPage = new DisplayUserCredentialPage(driver); listUserCredentialPage.navigateToListUserCredentialsPage(); } @Test public void testPage() throws Exception { givenListUserCredentialsPageWhenSearchThenOk(); givenListUserCredentialsPageWhenBackButtonClickedThenNavigateToAdminModule(); givenAddPageWhenAddUserCredentialAndCancelButtonClickedThenNavigateToListUserCredentials(); givenAddPageWhenAddUserCredentialWithDifferentsPasswordAndConfirmPasswordAndClickSaveThenStayInAddAddPage(); givenAddPageWhenAddUserCredentialThenOk(); givenEditPageWhenEditUserCredentialThenOk(); givenDisplayPageWhenSearchAndAddGroupThenCanSearchItInUsersGroupsTable(); givenDisplayPageWhenClickInModifyThenNavigateToAddEditUserCredential(); givenDisplayPageWhenClickInEditGroupThenNavigateToAddEditGlobalGroup(); givenDisplayPageWhenClickInRemoveGroupFromUserThenCanSearchItInGroupsTable(); givenDisplayPageWhenClickInBackButtonThenNavigateToListUserCredentials(); // givenEditPageWhenEditUserCredentialWithWrongOldPasswordThenNotUpdated(); } private void givenListUserCredentialsPageWhenSearchThenOk() throws Exception { assertThat(listUserCredentialPage.getTableRows()).hasSize(10); listUserCredentialPage.getSearchInput().setValue("Chuck"); listUserCredentialPage.getSearchButton().clickAndWaitForPageReload(); assertThat(listUserCredentialPage.getTableRows()).hasSize(1); assertThat(listUserCredentialPage.getTableRows().get(0).getText()).contains("Chuck"); } private void givenListUserCredentialsPageWhenBackButtonClickedThenNavigateToAdminModule() throws Exception { listUserCredentialPage.getBackButton().clickAndWaitForPageReload(); assertThat(driver.getCurrentPage()).isEqualTo( NavigatorConfigurationService.ADMIN_MODULE); } private void givenAddPageWhenAddUserCredentialAndCancelButtonClickedThenNavigateToListUserCredentials() throws Exception { listUserCredentialPage.navigateToListUserCredentialsPage(); givenAddPage(); addEditUserCredentialPage.getUsernameElement().setValue("zeEdouard"); addEditUserCredentialPage.getFirstNameElement().setValue("zeEdouard"); addEditUserCredentialPage.getLastNameElement().setValue("Lechat"); addEditUserCredentialPage.getEmailElement().setValue("zeEdouard@constellio.com"); addEditUserCredentialPage.getPasswordElement().setValue("1qaz2wsx"); addEditUserCredentialPage.getConfirmPasswordElement().setValue("1qaz2wsx"); addEditUserCredentialPage.getCollectionsElement().toggle(zeCollection); addEditUserCredentialPage.getCollectionsElement().toggle("otherCollection"); addEditUserCredentialPage.getCancelButton().clickAndWaitForPageReload(); assertThat(listUserCredentialPage.getTableRows()).hasSize(10); } private void givenAddPageWhenAddUserCredentialWithDifferentsPasswordAndConfirmPasswordAndClickSaveThenStayInAddAddPage() throws Exception { givenAddPage(); addEditUserCredentialPage.getUsernameElement().setValue("zeEdouard"); addEditUserCredentialPage.getFirstNameElement().setValue("zeEdouard"); addEditUserCredentialPage.getLastNameElement().setValue("Lechat"); addEditUserCredentialPage.getEmailElement().setValue("zeEdouard@constellio.com"); addEditUserCredentialPage.getPasswordElement().setValue("1qaz2wsx"); addEditUserCredentialPage.getConfirmPasswordElement().setValue("aaaaaa"); addEditUserCredentialPage.getCollectionsElement().toggle(zeCollection); addEditUserCredentialPage.getCollectionsElement().toggle("otherCollection"); addEditUserCredentialPage.getSaveButton().clickAndWaitForPageReload(); //addEditUserCredentialPage.waitForPageReload(); assertThat(driver.getCurrentPage()) .isEqualTo(NavigatorConfigurationService.USER_ADD_EDIT + "/" + NavigatorConfigurationService.USER_LIST + "/"); } private void givenAddPageWhenAddUserCredentialThenOk() throws Exception { listUserCredentialPage.navigateToListUserCredentialsPage(); givenAddPage(); addEditUserCredentialPage.getUsernameElement().setValue("zeEdouard"); addEditUserCredentialPage.getFirstNameElement().setValue("zeEdouard"); addEditUserCredentialPage.getLastNameElement().setValue("Lechat"); addEditUserCredentialPage.getEmailElement().setValue("zeEdouard@constellio.com"); addEditUserCredentialPage.getPasswordElement().setValue("1qaz2wsx"); addEditUserCredentialPage.getConfirmPasswordElement().setValue("1qaz2wsx"); addEditUserCredentialPage.getCollectionsElement().toggle(zeCollection); addEditUserCredentialPage.getCollectionsElement().toggle("otherCollection"); addEditUserCredentialPage.getSaveButton().clickAndWaitForPageReload(); //addEditUserCredentialPage.waitForPageReload(); assertThat(listUserCredentialPage.getTableRows()).hasSize(11); assertThat(listUserCredentialPage.getTableRows().get(10).getText()).contains("zeEdouard"); assertThat(userServices.getUserInCollection("zeEdouard", zeCollection).getUserRoles()).containsOnly("U"); } private void givenEditPageWhenEditUserCredentialThenOk() throws Exception { givenEditPageForIndex(8); assertThat(addEditUserCredentialPage.getUsernameElement().isEnabled()).isFalse(); addEditUserCredentialPage.getFirstNameElement().setValue("zeEdouard1"); addEditUserCredentialPage.getLastNameElement().setValue("Lechat1"); addEditUserCredentialPage.getEmailElement().setValue("zeEdouard@constellio.ca"); addEditUserCredentialPage.getPasswordElement().setValue("2wsx1qaz"); addEditUserCredentialPage.getConfirmPasswordElement().setValue("2wsx1qaz"); // addEditUserCredentialPage.getOldPassword().setValue("1qaz2wsx"); addEditUserCredentialPage.getCollectionsElement().toggle(zeCollection); addEditUserCredentialPage.getCollectionsElement().toggle("otherCollection"); addEditUserCredentialPage.getSaveButton().clickAndWaitForPageReload(); assertThat(listUserCredentialPage.getTableRows()).hasSize(11); assertThat(listUserCredentialPage.getTableRows().get(10).getText()).contains("zeEdouard"); } // private void givenEditPageWhenEditUserCredentialWithWrongOldPasswordThenNotUpdated() // throws Exception { // // givenEditPageForIndex(8); // // assertThat(addEditUserCredentialPage.getUsernameElement().getEnabled()).isFalse(); // addEditUserCredentialPage.getFirstNameElement().setValue("zeEdouard1"); // addEditUserCredentialPage.getLastNameElement().setValue("Lechat1"); // addEditUserCredentialPage.getEmailElement().setValue("zeEdouard@constellio.ca"); // addEditUserCredentialPage.getPasswordElement().setValue("2wsx1qaz"); // addEditUserCredentialPage.getConfirmPasswordElement().setValue("2wsx1qaz"); // addEditUserCredentialPage.getOldPassword().setValue("aaaaa"); // addEditUserCredentialPage.getCollectionsElement().toggle(zeCollection); // addEditUserCredentialPage.getCollectionsElement().toggle("otherCollection"); // addEditUserCredentialPage.getSaveButton().clickAndWaitForPageReload(); // //addEditUserCredentialPage.waitForPageReload(); // // assertThat(addEditUserCredentialPage.getErrorMessage()).isEqualTo("Incorrect username and/or password"); // assertThat(driver.getCurrentPage()) // .isEqualTo(NavigatorConfigurationService.USER_ADD_EDIT + "/" + NavigatorConfigurationService.USER_LIST // + "/username%253DzeEdouard"); // // } private void givenDisplayPageWhenSearchAndAddGroupThenCanSearchItInUsersGroupsTable() throws Exception { givenDisplayPageForIndex(0); displayUserCredentialPage.getSearchInputGroups().setValue("heroes"); displayUserCredentialPage.getSearchButtonGroups().clickAndWaitForPageReload(); assertThat(displayUserCredentialPage.getTableRowsGroups()).hasSize(1); assertThat(displayUserCredentialPage.getTableRowsGroups().get(0).getText()).contains("heroes"); assertThat(displayUserCredentialPage.getTableRowsUsersGroups()).isEmpty(); displayUserCredentialPage.getAddButtonOnIndex(0).clickAndWaitForPageReload(); assertThat(displayUserCredentialPage.getTableRowsUsersGroups()).hasSize(1); displayUserCredentialPage.getSearchInputUsersGroups().setValue("heroes"); displayUserCredentialPage.getSearchButtonUsersGroups().click(); assertThat(displayUserCredentialPage.getTableRowsUsersGroups()).hasSize(1); assertThat(displayUserCredentialPage.getTableRowsUsersGroups().get(0).getText()).contains("heroes"); } private void givenDisplayPageWhenClickInModifyThenNavigateToAddEditUserCredential() { givenDisplayPageForIndex(0); displayUserCredentialPage.getEditGlobalGroupButtonMenuAction().clickAndWaitForPageReload(); assertThat(driver.getCurrentPage()) .isEqualTo(NavigatorConfigurationService.USER_ADD_EDIT + "/" + NavigatorConfigurationService.USER_LIST + "/" + NavigatorConfigurationService.USER_DISPLAY + "/username%253Dadmin"); } private void givenDisplayPageWhenClickInEditGroupThenNavigateToAddEditGlobalGroup() { givenDisplayPageForIndex(0); displayUserCredentialPage.getEditGlobalGroupButtonOnIndex(0).clickAndWaitForPageReload(); assertThat(driver.getCurrentPage()) .isEqualTo(NavigatorConfigurationService.GROUP_ADD_EDIT + "/" + NavigatorConfigurationService.USER_LIST + "/" + NavigatorConfigurationService.USER_DISPLAY + "/globalGroupCode%253Dheroes%253Busername%253Dadmin"); } private void givenDisplayPageWhenClickInRemoveGroupFromUserThenCanSearchItInGroupsTable() throws Exception { givenDisplayPageForIndex(0); displayUserCredentialPage.getSearchInputUsersGroups().setValue("heroes"); displayUserCredentialPage.getSearchButtonUsersGroups().clickAndWaitForPageReload(); assertThat(displayUserCredentialPage.getTableRowsUsersGroups()).hasSize(1); assertThat(displayUserCredentialPage.getTableRowsUsersGroups().get(0).getText()).contains("heroes"); assertThat(displayUserCredentialPage.getTableRowsGroups()).hasSize(3); displayUserCredentialPage.getDeleteButtonOnIndex(0).clickAndWaitForPageReload(); displayUserCredentialPage.getCancelConfirmationDialogButton().clickAndWaitForPageReload(); assertThat(displayUserCredentialPage.getTableRowsGroups()).hasSize(3); displayUserCredentialPage.getDeleteButtonOnIndex(0).click(); displayUserCredentialPage.getOkConfirmationDialogButton().clickAndWaitForPageReload(); displayUserCredentialPage.getSearchInputGroups().setValue("heroes"); displayUserCredentialPage.getSearchButtonGroups().click(); assertThat(displayUserCredentialPage.getTableRowsUsersGroups()).isEmpty(); assertThat(displayUserCredentialPage.getTableRowsGroups()).hasSize(1); assertThat(displayUserCredentialPage.getTableRowsGroups().get(0).getText()).contains("heroes"); } private void givenDisplayPageWhenClickInBackButtonThenNavigateToListUserCredentials() { givenDisplayPageForIndex(0); displayUserCredentialPage.getBackButton().clickAndWaitForPageReload(); assertThat(driver.getCurrentPage()) .isEqualTo(NavigatorConfigurationService.USER_LIST + "/username%253Dadmin"); } // private void givenAddPage() { listUserCredentialPage.getAddButton().clickAndWaitForPageReload(); } private void givenEditPageForIndex(int index) { listUserCredentialPage.getEditUserCredentialButtonOnIndex(index).clickAndWaitForPageReload(); } private void givenDisplayPageForIndex(int index) { listUserCredentialPage.navigateToListUserCredentialsPage(); listUserCredentialPage.getDisplayUserCredentialButtonOnIndex(index).clickAndWaitForPageReload(); } }