package com.constellio.app.ui.pages.security;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.ADD_RETENTION_RULE;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.ARCHIVES_MANAGEMENT;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.DECOMMISSIONING;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.DECOMMISSIONING_LIST_ADD_EXISTING_CONTAINER;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.DECOMMISSIONING_LIST_ADD_NEW_CONTAINER;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.DECOMMISSIONING_LIST_BUILDER;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.DECOMMISSIONING_LIST_EDIT;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.DISPLAY_ADMIN_UNIT_WITH_CONTAINERS;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.DISPLAY_CONTAINER;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.DISPLAY_DOCUMENT;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.DISPLAY_FILING_SPACE_WITH_CONTAINERS;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.DISPLAY_FOLDER;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.DISPLAY_RETENTION_RULE;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.EDIT_DOCUMENT;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.EDIT_FOLDER;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.EDIT_RETENTION_RULE;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.LIST_RETENTION_RULES;
import static com.constellio.app.modules.rm.navigation.RMNavigationConfiguration.REPORTS;
import static com.constellio.app.ui.application.NavigatorConfigurationService.ADD_EDIT_METADATA;
import static com.constellio.app.ui.application.NavigatorConfigurationService.ADD_EDIT_SCHEMA;
import static com.constellio.app.ui.application.NavigatorConfigurationService.ADD_EDIT_SCHEMA_METADATA;
import static com.constellio.app.ui.application.NavigatorConfigurationService.ADD_EDIT_SCHEMA_RECORD;
import static com.constellio.app.ui.application.NavigatorConfigurationService.ADMIN_MODULE;
import static com.constellio.app.ui.application.NavigatorConfigurationService.COLLECTION_ADD_EDIT;
import static com.constellio.app.ui.application.NavigatorConfigurationService.COLLECTION_GROUP;
import static com.constellio.app.ui.application.NavigatorConfigurationService.COLLECTION_GROUP_ROLES;
import static com.constellio.app.ui.application.NavigatorConfigurationService.COLLECTION_MANAGEMENT;
import static com.constellio.app.ui.application.NavigatorConfigurationService.COLLECTION_USER;
import static com.constellio.app.ui.application.NavigatorConfigurationService.COLLECTION_USER_LIST;
import static com.constellio.app.ui.application.NavigatorConfigurationService.COLLECTION_USER_ROLES;
import static com.constellio.app.ui.application.NavigatorConfigurationService.CONFIG_MANAGEMENT;
import static com.constellio.app.ui.application.NavigatorConfigurationService.DISPLAY_SCHEMA_RECORD;
import static com.constellio.app.ui.application.NavigatorConfigurationService.DISPLAY_SCHEMA_TYPE;
import static com.constellio.app.ui.application.NavigatorConfigurationService.EDIT_DISPLAY_FORM;
import static com.constellio.app.ui.application.NavigatorConfigurationService.EVENTS_LIST;
import static com.constellio.app.ui.application.NavigatorConfigurationService.EVENT_CATEGORY;
import static com.constellio.app.ui.application.NavigatorConfigurationService.EVENT_DISPLAY;
import static com.constellio.app.ui.application.NavigatorConfigurationService.EXPORTER;
import static com.constellio.app.ui.application.NavigatorConfigurationService.FORM_DISPLAY_FORM;
import static com.constellio.app.ui.application.NavigatorConfigurationService.GROUP_ADD_EDIT;
import static com.constellio.app.ui.application.NavigatorConfigurationService.GROUP_DISPLAY;
import static com.constellio.app.ui.application.NavigatorConfigurationService.GROUP_LIST;
import static com.constellio.app.ui.application.NavigatorConfigurationService.IMPORT_FILE;
import static com.constellio.app.ui.application.NavigatorConfigurationService.IMPORT_SCHEMA_TYPES;
import static com.constellio.app.ui.application.NavigatorConfigurationService.IMPORT_USERS;
import static com.constellio.app.ui.application.NavigatorConfigurationService.LDAP_CONFIG_MANAGEMENT;
import static com.constellio.app.ui.application.NavigatorConfigurationService.LIST_OBJECT_ACCESS_AUTHORIZATIONS;
import static com.constellio.app.ui.application.NavigatorConfigurationService.LIST_ONGLET;
import static com.constellio.app.ui.application.NavigatorConfigurationService.LIST_PRINCIPAL_ACCESS_AUTHORIZATIONS;
import static com.constellio.app.ui.application.NavigatorConfigurationService.LIST_SCHEMA_RECORDS;
import static com.constellio.app.ui.application.NavigatorConfigurationService.LIST_TAXONOMY;
import static com.constellio.app.ui.application.NavigatorConfigurationService.LIST_VALUE_DOMAINS;
import static com.constellio.app.ui.application.NavigatorConfigurationService.PERMISSION_MANAGEMENT;
import static com.constellio.app.ui.application.NavigatorConfigurationService.RECORDS_MANAGEMENT;
import static com.constellio.app.ui.application.NavigatorConfigurationService.SEARCH_DISPLAY_FORM;
import static com.constellio.app.ui.application.NavigatorConfigurationService.TAXONOMY_ADD_EDIT;
import static com.constellio.app.ui.application.NavigatorConfigurationService.TAXONOMY_CONCEPT_ADD_EDIT;
import static com.constellio.app.ui.application.NavigatorConfigurationService.TAXONOMY_MANAGEMENT;
import static com.constellio.app.ui.application.NavigatorConfigurationService.UPDATE_MANAGER;
import static com.constellio.app.ui.application.NavigatorConfigurationService.USER_ADD_EDIT;
import static com.constellio.app.ui.application.NavigatorConfigurationService.USER_DISPLAY;
import static com.constellio.app.ui.application.NavigatorConfigurationService.USER_LIST;
import static com.constellio.model.entities.security.global.AuthorizationAddRequest.authorizationForUsers;
import static com.constellio.model.services.search.query.logical.LogicalSearchQueryOperators.from;
import static com.constellio.sdk.tests.TestUtils.asList;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.joda.time.LocalDate;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import com.constellio.app.modules.rm.DemoTestRecords;
import com.constellio.app.modules.rm.RMTestRecords;
import com.constellio.app.modules.rm.constants.RMPermissionsTo;
import com.constellio.app.modules.rm.constants.RMRoles;
import com.constellio.app.modules.rm.navigation.RMNavigationConfiguration;
import com.constellio.app.modules.rm.services.ValueListServices;
import com.constellio.app.modules.rm.ui.pages.decommissioning.DecommissioningMainPresenter;
import com.constellio.app.modules.rm.wrappers.AdministrativeUnit;
import com.constellio.app.modules.rm.wrappers.Category;
import com.constellio.app.modules.rm.wrappers.ContainerRecord;
import com.constellio.app.modules.rm.wrappers.DecommissioningList;
import com.constellio.app.modules.rm.wrappers.Document;
import com.constellio.app.modules.rm.wrappers.Folder;
import com.constellio.app.modules.rm.wrappers.RetentionRule;
import com.constellio.app.modules.rm.wrappers.StorageSpace;
import com.constellio.app.modules.rm.wrappers.UniformSubdivision;
import com.constellio.app.modules.rm.wrappers.type.DocumentType;
import com.constellio.app.modules.tasks.model.wrappers.Task;
import com.constellio.app.modules.tasks.model.wrappers.structures.TaskFollower;
import com.constellio.app.modules.tasks.navigation.TasksNavigationConfiguration;
import com.constellio.app.modules.tasks.services.TasksSchemasRecordsServices;
import com.constellio.app.services.migrations.CoreNavigationConfiguration;
import com.constellio.app.ui.application.NavigatorConfigurationService;
import com.constellio.model.entities.CorePermissions;
import com.constellio.model.entities.records.Record;
import com.constellio.model.entities.records.wrappers.Collection;
import com.constellio.model.entities.records.wrappers.Event;
import com.constellio.model.entities.records.wrappers.Group;
import com.constellio.model.entities.records.wrappers.User;
import com.constellio.model.entities.security.Authorization;
import com.constellio.model.entities.security.global.AuthorizationDetails;
import com.constellio.model.entities.security.Role;
import com.constellio.model.entities.security.global.AuthorizationAddRequest;
import com.constellio.model.services.records.RecordServices;
import com.constellio.model.services.records.RecordServicesException;
import com.constellio.model.services.records.SchemasRecordsServices;
import com.constellio.model.services.search.query.logical.LogicalSearchQuery;
import com.constellio.model.services.security.roles.RolesManager;
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 UserSecurityAcceptanceTest extends ConstellioTest {
// TODO: All of these constants are duplicated from somewhere else and must be removed
public static final String SYSTEM_USAGE = "OPEN_SESSION";
public static final String USERS_AND_GROUPS_ADD_OR_REMOVE = "USERS_AND_GROUPS_ADD_OR_REMOVE";
public static final String FOLDERS_AND_DOCUMENTS_CREATION = "FOLDERS_AND_DOCUMENTS_CREATION";
public static final String FOLDERS_AND_DOCUMENTS_MODIFICATION = "FOLDERS_AND_DOCUMENTS_MODIFICATION";
public static final String FOLDERS_AND_DOCUMENTS_DELETION = "FOLDERS_AND_DOCUMENTS_DELETION";
public static final String CURRENTLY_BORROWED_DOCUMENTS = "CURRENTLY_BORROWED_DOCUMENTS";
public static final String DOCUMENTS_BORROW_OR_RETURN = "DOCUMENTS_BORROW_OR_RETURN";
public static final String EVENTS_BY_ADMINISTRATIVE_UNIT = "EVENTS_BY_ADMINISTRATIVE_UNIT";
public static final String EVENTS_BY_FOLDER = "EVENTS_BY_FOLDER";
public static final String EVENTS_BY_USER = "EVENTS_BY_USER";
public static final String DECOMMISSIONING_EVENTS = "DECOMMISSIONING_EVENTS";
public static final String RECORDS_MANAGEMENT_LINK = "recordsManagement";
public static final String USER_DOCUMENTS_LINK = "userDocuments";
public static final String ARCHIVES_MANAGEMENT_LINK = "archivesManagemen";
public static final String LOGS_LINK = "logs";
public static final String ADMIN_MODULE_LINK = "adminModule";
public static final String SYSTEM_USAGE_LINK = "systemUsageLinkButton";
public static final String USERS_AND_GROUPS_LINK = "usersAndGroupsLinkButton";
public static final String RECORDS_CREATION_LINK = "recordsCreationLinkButton";
public static final String RECORDS_MODIFICATION_LINK = "recordsModificationLinkButton";
public static final String RECORDS_DELETION_LINK = "recordsDeletionLinkButton";
public static final String CURRENTLY_BORROWED_DOCUMENTS_LINK = "currentlyBorrowedDocumentsLinkButton";
public static final String BORROWED_DOCUMENTS_LINK = "borrowedDocumentsLinkButton";
public static final String FILING_SPACE_EVENTS_LINK = "filingSpaceEventsLinkButton";
public static final String BY_FOLDER_EVENTS_LINK = "byFolderEventsLinkButton";
public static final String BY_USER_EVENTS_LINK = "byUserEventsLinkButton";
public static final String DECOMMISSIONING_EVENTS_LINK = "decommissioningEventsLinkButton";
public static final String DECOMMISSIONING_CAPTION = "decommissioning-caption";
public static final String REPORTS_CAPTION = "reports-caption";
public static final String FACETS_CAPTION = "facets-caption";
public static final String CONTAINERS_CAPTION = "containers-caption";
public static final String ROBOTS_CAPTION = "robots-caption";
String taskIdThatEdouardCanModifyAndDakotaCanView;
RolesManager rolesManager;
RecordServices recordServices;
ConstellioWebDriver driver;
RMTestRecords records = new RMTestRecords(zeCollection);
String documentInA13;
String documentInC04;
String semiactiveFolderA49;
String inactiveFolderA81;
String documentInA49;
String documentInA81;
String edouardIdInZeCollection, dakotaInZeCollection, sasquatchInZeCollection;
String legendsInZeCollection;
String customTaxonomyCode;
UserServices userServices;
DemoTestRecords records2 = new DemoTestRecords("LaCollectionDeRida");
@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();
semiactiveFolderA49 = records.folder_A49;
inactiveFolderA81 = records.folder_A81;
documentInA13 = recordIdWithTitleInCollection("Cerf - Typologie", zeCollection);
documentInC04 = recordIdWithTitleInCollection("Céleri - Typologie", zeCollection);
documentInA49 = recordIdWithTitleInCollection("Grenouille - Livre de recettes", zeCollection);
documentInA81 = recordIdWithTitleInCollection("Moineau - Livre de recettes", zeCollection);
rolesManager = getModelLayerFactory().getRolesManager();
customTaxonomyCode = new ValueListServices(getAppLayerFactory(), zeCollection).createTaxonomy("Ze taxo!").getCode();
rolesManager.addRole(new Role(zeCollection, "roleDeAlice", "Role de Alice", new ArrayList<String>()));
userServices = getModelLayerFactory().newUserServices();
edouardIdInZeCollection = userServices.getUserInCollection(edouard, zeCollection).getId();
dakotaInZeCollection = userServices.getUserInCollection(dakota, zeCollection).getId();
sasquatchInZeCollection = userServices.getUserInCollection(sasquatch, zeCollection).getId();
legendsInZeCollection = userServices.getGroupInCollection("legends", zeCollection).getId();
TasksSchemasRecordsServices schemas = new TasksSchemasRecordsServices(zeCollection, getAppLayerFactory());
Task zeTask = schemas.newTask();
zeTask.setTitle("ze task");
zeTask.setCreatedBy(edouardIdInZeCollection);
zeTask.setAssignee(edouardIdInZeCollection);
zeTask.setAssignationDate(new LocalDate());
zeTask.setAssigner(edouardIdInZeCollection);
zeTask.setTaskFollowers(asList(
new TaskFollower().setFollowerId(dakotaInZeCollection)
));
recordServices.add(zeTask);
taskIdThatEdouardCanModifyAndDakotaCanView = zeTask.getId();
}
@Test
public void givenAdminInZeCollectionThenCanOnlyNavigateToPagesAccordingToHimPermissions() {
logAsIn(admin, zeCollection);
assertThat(navigationToCreateFolderPossible()).isTrue();
assertThat(navigationToAddDocumentPossible()).isTrue();
//DOC
assertThat(navigationToFolderPossible(records.folder_A13)).isTrue();
assertThat(navigationToCreateSubFolderPossible(records.folder_A13)).isTrue();
assertThat(navigationToCreateDocumentPossible(records.folder_A13)).isTrue();
assertThat(navigationToEditFolderPossible(records.folder_A13)).isTrue();
assertThat(navigationToRecordAuthorizationsPossible(records.folder_A13)).isTrue();
assertThat(navigationToShareContentPossible(records.folder_A13)).isTrue();
assertThat(navigationToDocumentPossible(documentInA13)).isTrue();
assertThat(navigationToEditDocumentPossible(documentInA13)).isTrue();
assertThat(navigationToRecordAuthorizationsPossible(documentInA13)).isTrue();
assertThat(navigationToDocumentPossible(documentInA13)).isTrue();
assertThat(navigationToEditDocumentPossible(documentInA13)).isTrue();
assertThat(navigationToRecordAuthorizationsPossible(documentInA13)).isTrue();
assertThat(navigationToShareContentPossible(documentInA13)).isTrue();
assertThatCanNavigateToAllArchivesPages();
assertThatCanNavigateToAllEventPages();
assertThatCanNavigateToAllAdminModulePages();
}
@Test
public void givenDakotaInZeCollectionThenCanOnlyNavigateToPagesAccordingToHerPermissions() {
logAsIn(dakota, zeCollection);
assertThat(navigationToCreateFolderPossible()).isTrue();
assertThat(navigationToAddDocumentPossible()).isTrue();
//Active
assertThatCanNavigateToAllActiveRMPages();
//DOC NOT OK
assertThat(navigationToFolderPossible(records.folder_C04)).isFalse();
assertThat(navigationToCreateSubFolderPossible(records.folder_C04)).isFalse();
assertThat(navigationToCreateDocumentPossible(records.folder_C04)).isFalse();
assertThat(navigationToEditFolderPossible(records.folder_C04)).isFalse();
assertThat(navigationToRecordAuthorizationsPossible(records.folder_C04)).isFalse();
assertThat(navigationToShareContentPossible(records.folder_C04)).isFalse();
assertThat(navigationToDocumentPossible(documentInC04)).isFalse();
assertThat(navigationToEditDocumentPossible(documentInC04)).isFalse();
assertThat(navigationToRecordAuthorizationsPossible(documentInC04)).isFalse();
assertThat(navigationToShareContentPossible(documentInC04)).isFalse();
}
@Test
public void givenAliceHasWriteAccessAndUserRoleInZeCollectionThenCanOnlyNavigateToPagesAccordingToHerPermissions()
throws RecordServicesException {
UserServices userServices = getModelLayerFactory().newUserServices();
User alice = userServices.getUserInCollection(aliceWonderland, zeCollection);
recordServices.update(alice.setCollectionWriteAccess(true).setUserRoles(asList(RMRoles.USER)));
logAsIn(aliceWonderland, zeCollection);
assertThat(navigationToCreateFolderPossible()).isTrue();
assertThat(navigationToAddDocumentPossible()).isTrue();
//Active
assertThat(navigationToFolderPossible(records.folder_A13)).isTrue();
assertThat(navigationToCreateSubFolderPossible(records.folder_A13)).isTrue();
assertThat(navigationToCreateDocumentPossible(records.folder_A13)).isTrue();
assertThat(navigationToEditFolderPossible(records.folder_A13)).isTrue();
assertThat(navigationToRecordAuthorizationsPossible(records.folder_A13)).isFalse();
assertThat(navigationToShareContentPossible(records.folder_A13)).isTrue();
assertThat(navigationToDocumentPossible(documentInA13)).isTrue();
assertThat(navigationToEditDocumentPossible(documentInA13)).isTrue();
assertThat(navigationToRecordAuthorizationsPossible(documentInA13)).isFalse();
assertThat(navigationToShareContentPossible(documentInA13)).isTrue();
//Semiactive
assertThat(navigationToFolderPossible(semiactiveFolderA49)).isTrue();
assertThat(navigationToCreateSubFolderPossible(semiactiveFolderA49)).isFalse();
assertThat(navigationToCreateDocumentPossible(semiactiveFolderA49)).isFalse();
assertThat(navigationToEditFolderPossible(semiactiveFolderA49)).isFalse();
assertThat(navigationToRecordAuthorizationsPossible(semiactiveFolderA49)).isFalse();
assertThat(navigationToShareContentPossible(semiactiveFolderA49)).isTrue();
assertThat(navigationToDocumentPossible(documentInA49)).isTrue();
assertThat(navigationToEditDocumentPossible(documentInA49)).isFalse();
assertThat(navigationToRecordAuthorizationsPossible(documentInA49)).isFalse();
assertThat(navigationToShareContentPossible(documentInA49)).isTrue();
//Inactive
assertThat(navigationToFolderPossible(inactiveFolderA81)).isTrue();
assertThat(navigationToCreateSubFolderPossible(inactiveFolderA81)).isFalse();
assertThat(navigationToCreateDocumentPossible(inactiveFolderA81)).isFalse();
assertThat(navigationToEditFolderPossible(inactiveFolderA81)).isFalse();
assertThat(navigationToRecordAuthorizationsPossible(inactiveFolderA81)).isFalse();
assertThat(navigationToShareContentPossible(inactiveFolderA81)).isTrue();
assertThat(navigationToDocumentPossible(documentInA81)).isTrue();
assertThat(navigationToEditDocumentPossible(documentInA81)).isFalse();
assertThat(navigationToRecordAuthorizationsPossible(documentInA81)).isFalse();
assertThat(navigationToShareContentPossible(documentInA81)).isTrue();
}
@Test
public void givenAliceHasWriteAccessAndManagerRoleInZeCollectionThenCanOnlyNavigateToPagesAccordingToHerPermissions()
throws RecordServicesException {
UserServices userServices = getModelLayerFactory().newUserServices();
User alice = userServices.getUserInCollection(aliceWonderland, zeCollection);
recordServices.update(alice.setCollectionWriteAccess(true).setUserRoles(asList(RMRoles.MANAGER)));
logAsIn(aliceWonderland, zeCollection);
assertThat(navigationToCreateFolderPossible()).isTrue();
assertThat(navigationToAddDocumentPossible()).isTrue();
//Active
assertThatCanNavigateToAllActiveRMPages();
//Semiactive
assertThat(navigationToFolderPossible(semiactiveFolderA49)).isTrue();
assertThat(navigationToCreateSubFolderPossible(semiactiveFolderA49)).isFalse();
assertThat(navigationToCreateDocumentPossible(semiactiveFolderA49)).isFalse();
assertThat(navigationToEditFolderPossible(semiactiveFolderA49)).isFalse();
assertThat(navigationToRecordAuthorizationsPossible(semiactiveFolderA49)).isTrue();
assertThat(navigationToShareContentPossible(semiactiveFolderA49)).isTrue();
assertThat(navigationToDocumentPossible(documentInA49)).isTrue();
assertThat(navigationToEditDocumentPossible(documentInA49)).isFalse();
assertThat(navigationToRecordAuthorizationsPossible(documentInA49)).isTrue();
assertThat(navigationToShareContentPossible(documentInA49)).isTrue();
//Inactive
assertThat(navigationToFolderPossible(inactiveFolderA81)).isTrue();
assertThat(navigationToCreateSubFolderPossible(inactiveFolderA81)).isFalse();
assertThat(navigationToCreateDocumentPossible(inactiveFolderA81)).isFalse();
assertThat(navigationToEditFolderPossible(inactiveFolderA81)).isFalse();
assertThat(navigationToRecordAuthorizationsPossible(inactiveFolderA81)).isTrue();
assertThat(navigationToShareContentPossible(inactiveFolderA81)).isTrue();
assertThat(navigationToDocumentPossible(documentInA81)).isTrue();
assertThat(navigationToEditDocumentPossible(documentInA81)).isFalse();
assertThat(navigationToRecordAuthorizationsPossible(documentInA81)).isTrue();
assertThat(navigationToShareContentPossible(documentInA81)).isTrue();
}
@Test
public void givenAliceHasWriteAccessAndRGDRoleInZeCollectionThenCanOnlyNavigateToPagesAccordingToHerPermissions()
throws RecordServicesException {
UserServices userServices = getModelLayerFactory().newUserServices();
User alice = userServices.getUserInCollection(aliceWonderland, zeCollection);
recordServices.update(alice.setCollectionWriteAccess(true).setUserRoles(asList(RMRoles.RGD)));
logAsIn(aliceWonderland, zeCollection);
assertThat(navigationToCreateFolderPossible()).isTrue();
assertThat(navigationToAddDocumentPossible()).isTrue();
//Active
assertThatCanNavigateToAllActiveRMPages();
//Semiactive
assertThat(navigationToFolderPossible(semiactiveFolderA49)).isTrue();
assertThat(navigationToCreateSubFolderPossible(semiactiveFolderA49)).isTrue();
assertThat(navigationToCreateDocumentPossible(semiactiveFolderA49)).isTrue();
assertThat(navigationToEditFolderPossible(semiactiveFolderA49)).isTrue();
assertThat(navigationToRecordAuthorizationsPossible(semiactiveFolderA49)).isTrue();
assertThat(navigationToShareContentPossible(semiactiveFolderA49)).isTrue();
assertThat(navigationToDocumentPossible(documentInA49)).isTrue();
assertThat(navigationToEditDocumentPossible(documentInA49)).isTrue();
assertThat(navigationToRecordAuthorizationsPossible(documentInA49)).isTrue();
assertThat(navigationToShareContentPossible(documentInA49)).isTrue();
//Inactive
assertThat(navigationToFolderPossible(inactiveFolderA81)).isTrue();
assertThat(navigationToCreateSubFolderPossible(inactiveFolderA81)).isTrue();
assertThat(navigationToCreateDocumentPossible(inactiveFolderA81)).isTrue();
assertThat(navigationToEditFolderPossible(inactiveFolderA81)).isTrue();
assertThat(navigationToRecordAuthorizationsPossible(inactiveFolderA81)).isTrue();
assertThat(navigationToShareContentPossible(inactiveFolderA81)).isTrue();
assertThat(navigationToDocumentPossible(documentInA81)).isTrue();
assertThat(navigationToEditDocumentPossible(documentInA81)).isTrue();
assertThat(navigationToRecordAuthorizationsPossible(documentInA81)).isTrue();
assertThat(navigationToShareContentPossible(documentInA81)).isTrue();
}
@Test
public void givenAliceInZeCollectionThenCanOnlyNavigateToPagesAccordingToHerPermissions() {
logAsIn(aliceWonderland, zeCollection);
//Keep or not to keep?
// assertThat(navigationToCreateFolderPossible()).isFalse();
// assertThat(navigationToAddDocumentPossible()).isFalse();
//DOC
assertThat(navigationToFolderPossible(records.folder_A13)).isTrue();
assertThat(navigationToCreateSubFolderPossible(records.folder_A13)).isFalse();
assertThat(navigationToCreateDocumentPossible(records.folder_A13)).isFalse();
assertThat(navigationToEditFolderPossible(records.folder_A13)).isFalse();
assertThat(navigationToRecordAuthorizationsPossible(records.folder_A13)).isFalse();
assertThat(navigationToShareContentPossible(records.folder_A13)).isTrue();
assertThat(navigationToDocumentPossible(documentInA13)).isTrue();
assertThat(navigationToEditDocumentPossible(documentInA13)).isFalse();
assertThat(navigationToRecordAuthorizationsPossible(documentInA13)).isFalse();
assertThat(navigationToShareContentPossible(documentInA13)).isTrue();
assertThatCannotNavigateToAllArchivesPages();
assertThatCannotNavigateToAllEventPages();
assertThatCannotNavigateToAllAdminModulePages();
}
@Test
public void whenUsingSchemaPageThenCanOnlyModifyAllowedSchemaTypes()
throws Exception {
logAsIn(admin, zeCollection);
assertThat(navigateToSchemaRecordList(DocumentType.DEFAULT_SCHEMA)).isTrue();
assertThat(navigateToSchemaRecordDisplay(records.documentTypeId_3)).isTrue();
assertThat(navigateToSchemaRecordAdd(DocumentType.DEFAULT_SCHEMA)).isTrue();
assertThat(navigateToSchemaRecordEdit(DocumentType.DEFAULT_SCHEMA, records.documentTypeId_3)).isTrue();
assertThat(navigateToSchemaRecordList(StorageSpace.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordDisplay(records.storageSpaceId_S01)).isFalse();
assertThat(navigateToSchemaRecordAdd(StorageSpace.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordEdit(StorageSpace.DEFAULT_SCHEMA, records.storageSpaceId_S01)).isFalse();
assertThat(navigateToSchemaRecordList(Category.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordDisplay(records.categoryId_X120)).isFalse();
assertThat(navigateToSchemaRecordAdd(Category.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordEdit(Category.DEFAULT_SCHEMA, records.categoryId_X120)).isFalse();
assertThat(navigateToSchemaRecordList(AdministrativeUnit.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordDisplay(records.unitId_11)).isFalse();
assertThat(navigateToSchemaRecordAdd(AdministrativeUnit.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordEdit(AdministrativeUnit.DEFAULT_SCHEMA, records.unitId_11)).isFalse();
assertThat(navigateToSchemaRecordList(RetentionRule.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordDisplay(records.ruleId_2)).isFalse();
assertThat(navigateToSchemaRecordAdd(RetentionRule.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordEdit(RetentionRule.DEFAULT_SCHEMA, records.ruleId_2)).isFalse();
assertThat(navigateToSchemaRecordList(Folder.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordDisplay(records.folder_A10)).isFalse();
assertThat(navigateToSchemaRecordAdd(Folder.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordEdit(Folder.DEFAULT_SCHEMA, records.folder_A10)).isFalse();
assertThat(navigateToSchemaRecordList(User.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordDisplay(records.getBob_userInAC().getId())).isFalse();
assertThat(navigateToSchemaRecordAdd(User.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordEdit(User.DEFAULT_SCHEMA, records.getBob_userInAC().getId())).isFalse();
assertThat(navigateToSchemaRecordList(Group.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordDisplay(records.getLegends().getId())).isFalse();
assertThat(navigateToSchemaRecordAdd(Group.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordEdit(Group.DEFAULT_SCHEMA, records.getLegends().getId())).isFalse();
assertThat(navigateToSchemaRecordList(Event.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordAdd(Event.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordList(Collection.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordDisplay(zeCollection)).isFalse();
assertThat(navigateToSchemaRecordAdd(Collection.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordEdit(Collection.DEFAULT_SCHEMA, zeCollection)).isFalse();
assertThat(navigateToSchemaRecordList(UniformSubdivision.DEFAULT_SCHEMA)).isTrue();
assertThat(navigateToSchemaRecordDisplay(records.subdivId_2)).isTrue();
assertThat(navigateToSchemaRecordAdd(UniformSubdivision.DEFAULT_SCHEMA)).isTrue();
assertThat(navigateToSchemaRecordEdit(UniformSubdivision.DEFAULT_SCHEMA, records.subdivId_2)).isTrue();
assertThat(navigateToSchemaRecordList(DecommissioningList.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordDisplay(records.list_02)).isFalse();
assertThat(navigateToSchemaRecordAdd(DecommissioningList.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordEdit(DecommissioningList.DEFAULT_SCHEMA, records.list_02)).isFalse();
assertThat(navigateToSchemaRecordList(ContainerRecord.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordDisplay(records.containerId_bac07)).isFalse();
assertThat(navigateToSchemaRecordAdd(ContainerRecord.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordEdit(ContainerRecord.DEFAULT_SCHEMA, records.containerId_bac07)).isFalse();
assertThat(navigateToSchemaRecordList(Document.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordDisplay(documentInA13)).isFalse();
assertThat(navigateToSchemaRecordAdd(Document.DEFAULT_SCHEMA)).isFalse();
assertThat(navigateToSchemaRecordEdit(Document.DEFAULT_SCHEMA, documentInA13)).isFalse();
}
@Test
public void givenAliceInZeCollectionThenCanDoEverythingGivenSheHaveRequiredPermissions()
throws Exception {
logAsIn(aliceWonderland, zeCollection);
UserServices userServices = getModelLayerFactory().newUserServices();
recordServices.update(userServices.getUserRecordInCollection(aliceWonderland, zeCollection)
.setUserRoles(asList("roleDeAlice")));
givenAliceHasPermission(RMPermissionsTo.CREATE_FOLDERS);
assertThatUserInGlobalMenuHasOnlyAccessTo(RECORDS_MANAGEMENT_LINK, USER_DOCUMENTS_LINK);
assertThatWhenNavigatingToHomePageUserHasOnlyAccessTo(
RMNavigationConfiguration.ADD_FOLDER, RMNavigationConfiguration.ADD_DOCUMENT);
assertThat(navigationToCreateFolderPossible()).isTrue();
givenAliceHasPermission(RMPermissionsTo.CREATE_DOCUMENTS);
assertThat(navigationToAddDocumentPossible()).isTrue();
givenAliceHasPermission(RMPermissionsTo.PROCESS_DECOMMISSIONING_LIST);
assertThatUserHasOnlyAccessToRMArchivesPages(DECOMMISSIONING_CAPTION);
assertThatUserHasAccessToAdminPages();
assertThatUserHasAccessTORMEventsPages();
assertThatCanNavigateToAllDecommissioningPages();
givenAliceHasPermission(RMPermissionsTo.MANAGE_CONTAINERS);
assertThatUserHasOnlyAccessToRMArchivesPages(CONTAINERS_CAPTION);
assertThatUserHasAccessToAdminPages();
assertThatUserHasAccessTORMEventsPages();
assertThatCanNavigateToAllContainersPages();
givenAliceHasPermission(RMPermissionsTo.MANAGE_REPORTS);
assertThatUserHasOnlyAccessToRMArchivesPages(REPORTS_CAPTION);
assertThatUserHasAccessToAdminPages();
assertThatUserHasAccessTORMEventsPages();
assertThat(navigateToReportsPossible()).isTrue();
givenAliceHasPermission(CorePermissions.VIEW_EVENTS);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages();
assertThatUserHasAccessTORMEventsPages(SYSTEM_USAGE_LINK, USERS_AND_GROUPS_LINK, RECORDS_CREATION_LINK,
RECORDS_MODIFICATION_LINK, RECORDS_DELETION_LINK, CURRENTLY_BORROWED_DOCUMENTS_LINK, BORROWED_DOCUMENTS_LINK,
FILING_SPACE_EVENTS_LINK, BY_FOLDER_EVENTS_LINK, BY_USER_EVENTS_LINK, DECOMMISSIONING_EVENTS_LINK);
assertThatCanNavigateToAllEventPages();
givenAliceHasPermission(CorePermissions.MANAGE_TAXONOMIES);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages(CoreNavigationConfiguration.TAXONOMIES);
assertThatCanNavigateToTaxonomiesPages();
assertThatCannotNavigateToAllClassificationPlanPages();
givenAliceHasPermission(CorePermissions.MANAGE_FACETS);
assertThatUserHasAccessToAdminPages(FACETS_CAPTION);
assertThat(navigateToAddFacetPossible()).isTrue();
assertThat(navigateToEditFacetPossible()).isTrue();
assertThat(navigateToDisplayFacetPossible()).isTrue();
assertThat(navigateToListFacetPossible()).isTrue();
assertThat(navigateToOrderFacetPossible()).isTrue();
givenAliceHasPermission(RMPermissionsTo.MANAGE_CLASSIFICATION_PLAN);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages(CoreNavigationConfiguration.TAXONOMIES);
assertThatUserHasAccessTORMEventsPages();
assertThatCanNavigateToAllClassificationPlanPages();
givenAliceHasPermission(CorePermissions.MANAGE_SECURITY);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages(CoreNavigationConfiguration.SECURITY, CoreNavigationConfiguration.TAXONOMIES,
CoreNavigationConfiguration.ROLES);
assertThatUserHasAccessTORMEventsPages();
assertThatCanNavigateToAllSecurityPages();
givenAliceHasPermission(RMPermissionsTo.MANAGE_UNIFORMSUBDIVISIONS);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages(RMNavigationConfiguration.UNIFORM_SUBDIVISIONS);
assertThatUserHasAccessTORMEventsPages();
assertThatCanNavigateToAllUniformSubdivisionsPages();
givenAliceHasPermission(CorePermissions.MANAGE_VALUELIST);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages(CoreNavigationConfiguration.VALUE_DOMAINS);
assertThatUserHasAccessTORMEventsPages();
assertThatCanNavigateToAllValueDomainPages();
givenAliceHasPermission(CorePermissions.MANAGE_METADATASCHEMAS);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages(CoreNavigationConfiguration.METADATA_SCHEMAS);
assertThatUserHasAccessTORMEventsPages();
assertThatCanNavigateToAllMetadataSchemaPages();
givenAliceHasPermission(RMPermissionsTo.MANAGE_RETENTIONRULE);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages(RMNavigationConfiguration.RETENTION_CALENDAR);
assertThatUserHasAccessTORMEventsPages();
assertThatCanNavigateToAllRetentionRulesPages();
givenAliceHasPermission(CorePermissions.MANAGE_SYSTEM_CONFIGURATION);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages(CoreNavigationConfiguration.CONFIG);
assertThatUserHasAccessTORMEventsPages();
assertThat(navigateToConfigurationPossible()).isTrue();
givenAliceHasPermission(CorePermissions.MANAGE_LDAP);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages(CoreNavigationConfiguration.LDAP_CONFIG);
assertThatUserHasAccessTORMEventsPages();
assertThat(navigateToLdapPossible()).isTrue();
givenAliceHasPermission(CorePermissions.MANAGE_SYSTEM_GROUPS);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages(CoreNavigationConfiguration.GROUPS);
assertThatUserHasAccessTORMEventsPages();
assertThatCanNavigateToAllSystemGroupPages();
givenAliceHasPermission(CorePermissions.MANAGE_SYSTEM_USERS);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages(CoreNavigationConfiguration.USERS);
assertThatUserHasAccessTORMEventsPages();
assertThatCanNavigateToAllSystemUsersPages();
givenAliceHasPermission(CorePermissions.MANAGE_SYSTEM_COLLECTIONS);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages(CoreNavigationConfiguration.COLLECTIONS);
assertThatUserHasAccessTORMEventsPages();
assertThatCanNavigateToAllSystemCollectionsPages();
givenAliceHasPermission(CorePermissions.MANAGE_SYSTEM_UPDATES);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages(CoreNavigationConfiguration.UPDATE_CENTER);
assertThatUserHasAccessTORMEventsPages();
assertThat(navigateToUpdateCenterPossible()).isTrue();
givenAliceHasPermission(CorePermissions.MANAGE_SYSTEM_DATA_IMPORTS);
assertThatUserHasOnlyAccessToRMArchivesPages();
assertThatUserHasAccessToAdminPages(CoreNavigationConfiguration.IMPORT_RECORDS);
assertThatUserHasAccessTORMEventsPages();
assertThat(navigateToImportRecordsPossible()).isTrue();
assertThat(navigateToImportSchemaTypesPossible()).isTrue();
assertThat(navigateToImportUsersPossible()).isTrue();
assertThat(navigateToExportPossible()).isTrue();
}
@Test
public void givenSasquatchCanReadEverythingInACollectionAndOnlySomeFoldersInAnOtherThenSecure()
throws Exception {
rolesManager.addRole(new Role(zeCollection, "roleDeSasquatch", "Role de Alice",
asList(RMPermissionsTo.MANAGE_CLASSIFICATION_PLAN)));
rolesManager.addRole(new Role("LaCollectionDeRida", "roleDeSasquatch", "Role de Alice",
asList(RMPermissionsTo.MANAGE_RETENTIONRULE)));
User sasquatchInZeCollection = userServices.getUserInCollection(sasquatch, zeCollection);
User sasquatchInOtherCollection = userServices.getUserInCollection(sasquatch, "LaCollectionDeRida");
recordServices.update(sasquatchInZeCollection.setCollectionReadAccess(true).setUserRoles(asList("roleDeSasquatch")));
recordServices.update(sasquatchInOtherCollection.setUserRoles(asList("roleDeSasquatch")));
giveAReadAccessToAFolderToSasquatch(sasquatchInOtherCollection, records2.folder_A01);
waitForBatchProcess();
//Starts on LaCollectionDeRida
logAsIn(sasquatch, "LaCollectionDeRida");
assertThat(navigationToFolderPossible(records2.folder_A01)).isTrue();
assertThat(navigateToCategoriesPlanPossible()).isFalse();
assertThat(navigateToListRetentionRulesPossible()).isTrue();
//Switching to zeCollection
assertThat(navigationToFolderPossible(records.folder_C01)).isTrue();
assertThat(navigateToCategoriesPlanPossible()).isTrue();
assertThat(navigateToListRetentionRulesPossible()).isFalse();
//Has no access to that record in LaCollectionDeRida, still in zeCollection
assertThat(navigationToFolderPossible(records2.folder_A03)).isFalse();
assertThat(navigateToCategoriesPlanPossible()).isTrue();
assertThat(navigateToListRetentionRulesPossible()).isFalse();
//Has access to that record in LaCollectionDeRida, switching...
assertThat(navigationToFolderPossible(records2.folder_A01)).isTrue();
assertThat(navigateToCategoriesPlanPossible()).isFalse();
assertThat(navigateToListRetentionRulesPossible()).isTrue();
//Removing user from zeCollection
userServices.removeUserFromCollection(userServices.getUser(sasquatch), "zeCollection");
assertThat(navigateToCategoriesPlanPossible()).isFalse();
assertThat(navigateToListRetentionRulesPossible()).isTrue();
//Switching to zeCollection failed, still in LaCollectionDeRida
assertThat(navigationToFolderPossible(records.folder_C01)).isFalse();
assertThat(navigateToCategoriesPlanPossible()).isFalse();
//waitUntilICloseTheBrowsers();
assertThat(navigationToFolderPossible(records2.folder_A01)).isTrue();
//waitUntilICloseTheBrowsers();
assertThat(navigateToListRetentionRulesPossible()).isTrue();
}
private void giveAReadAccessToAFolderToSasquatch(User user, String recordId) {
getModelLayerFactory().newAuthorizationsServices().add(authorizationForUsers(user).on(recordId).givingReadAccess());
}
@Test
public void givenGandalfInZeCollectionThenCanOnlyNavigateToPagesAccordingToHimPermissions() {
logAsIn(gandalf, zeCollection);
assertThat(navigationToCreateFolderPossible()).isTrue();
assertThat(navigationToAddDocumentPossible()).isTrue();
//DOC
assertThat(navigationToFolderPossible(records.folder_A13)).isTrue();
assertThat(navigationToCreateSubFolderPossible(records.folder_A13)).isTrue();
assertThat(navigationToCreateDocumentPossible(records.folder_A13)).isTrue();
assertThat(navigationToEditFolderPossible(records.folder_A13)).isTrue();
assertThat(navigationToRecordAuthorizationsPossible(records.folder_A13)).isTrue();
assertThat(navigationToDocumentPossible(documentInA13)).isTrue();
assertThat(navigationToEditDocumentPossible(documentInA13)).isTrue();
assertThat(navigationToRecordAuthorizationsPossible(documentInA13)).isTrue();
//assertThatCanNavigateToAllDecommissioningPages();
assertThatCanNavigateToAllContainersPages();
assertThat(navigateToReportsPossible()).isFalse();
assertThatCannotNavigateToAllEventPages();
assertThatCannotNavigateToAllAdminModulePages();
}
@Test
public void givenDakotaCannotNavigateToManageSecurityPages() {
logAsIn(dakota, zeCollection);
assertThatCannotNavigateToAllAdminModulePages();
}
@Test
public void givenAliceWithCollectionReadAccessThenCanHasValidTaskAccess() {
logAsIn(aliceWonderland, zeCollection);
assertThat(navigationToTaskPossible(taskIdThatEdouardCanModifyAndDakotaCanView)).isTrue();
assertThat(navigationToEditTaskPossible(taskIdThatEdouardCanModifyAndDakotaCanView)).isFalse();
}
@Test
public void givenSasquatchThenCanHasValidTaskAccess() {
logAsIn(sasquatch, zeCollection);
assertThat(navigationToTaskPossible(taskIdThatEdouardCanModifyAndDakotaCanView)).isFalse();
assertThat(navigationToEditTaskPossible(taskIdThatEdouardCanModifyAndDakotaCanView)).isFalse();
}
@Test
public void givenDakotaThenCanHasValidTaskAccess() {
logAsIn(dakota, zeCollection);
assertThat(navigationToTaskPossible(taskIdThatEdouardCanModifyAndDakotaCanView)).isTrue();
assertThat(navigationToEditTaskPossible(taskIdThatEdouardCanModifyAndDakotaCanView)).isFalse();
}
@Test
public void givenEdouardThenCanHasValidTaskAccess() {
logAsIn(edouard, zeCollection);
assertThat(navigationToTaskPossible(taskIdThatEdouardCanModifyAndDakotaCanView)).isTrue();
assertThat(navigationToEditTaskPossible(taskIdThatEdouardCanModifyAndDakotaCanView)).isTrue();
}
// ----------------------------------------------------------------------------------
@Test
@InDevelopmentTest
public void givenDecommissionningListWithValidationRequestByDakotaThenDakotaCanAccessPageAndTab() {
logAsIn(dakota, zeCollection);
assertThat(navigateToDecommissioningListPossible(records.list_24)).isTrue();
List<String> allTabs = Arrays.asList(DecommissioningMainPresenter.CREATE, DecommissioningMainPresenter.GENERATED,
DecommissioningMainPresenter.PROCESSED, DecommissioningMainPresenter.PENDING_VALIDATION,
DecommissioningMainPresenter.TO_VALIDATE);
checkExpectedTabs(allTabs, DecommissioningMainPresenter.CREATE, DecommissioningMainPresenter.GENERATED,
DecommissioningMainPresenter.PROCESSED, DecommissioningMainPresenter.PENDING_VALIDATION,
DecommissioningMainPresenter.TO_VALIDATE);
}
@Test
public void givenDecommissionningListWithValidationRequestByDakotaAndBobInValidationThenBobCanAccessPageAndTab() {
logAsIn(bobGratton, zeCollection);
assertThat(navigateToDecommissioningListPossible(records.list_24)).isTrue();
List<String> allTabs = Arrays.asList(DecommissioningMainPresenter.CREATE, DecommissioningMainPresenter.GENERATED,
DecommissioningMainPresenter.PROCESSED, DecommissioningMainPresenter.PENDING_VALIDATION,
DecommissioningMainPresenter.TO_VALIDATE);
checkExpectedTabs(allTabs, DecommissioningMainPresenter.TO_VALIDATE);
}
@Test
public void givenDecommissionningListWithValidationRequestByDakotaThenGandalfCanAccessPageAndNotTab() {
logAsIn(bobGratton, zeCollection);
assertThat(navigateToDecommissioningListPossible(records.list_24)).isTrue();
List<String> allTabs = Arrays.asList(DecommissioningMainPresenter.CREATE, DecommissioningMainPresenter.GENERATED,
DecommissioningMainPresenter.PROCESSED, DecommissioningMainPresenter.PENDING_VALIDATION,
DecommissioningMainPresenter.TO_VALIDATE);
checkExpectedTabs(allTabs, DecommissioningMainPresenter.TO_VALIDATE);
}
@Test
public void givenDecommissionningListWithValidationRequestByDakotaThenAliceCannotAccessPage() {
logAsIn(aliceWonderland, zeCollection);
assertThat(navigateToDecommissioningListPossible(records.list_24)).isFalse();
}
private void checkExpectedTabs(List<String> allTabs, String... tabExpected) {
for (String aTab : allTabs) {
if (tabIsExpected(aTab, tabExpected)) {
assertThat(tabByClassIsVisible(aTab)).describedAs("Tab " + aTab + " visibility").isTrue();
} else {
assertThat(tabByClassIsVisible(aTab)).describedAs("Tab " + aTab + " visibility").isFalse();
}
}
}
private boolean tabIsExpected(String aTab, String... tabExpected) {
for (String aTabExpected : tabExpected) {
if (aTabExpected.equals(aTab)) {
return true;
}
}
return false;
}
private Boolean tabByClassIsVisible(String aTabClass) {
//TODO find a way to find the tabs after the first
try {
driver.findElement(By.id(aTabClass));
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
// -----------------------------------------------------------------------------------
private void assertThatWhenNavigatingToHomePageUserHasOnlyAccessTo(String... buttonsExpected) {
driver.navigateTo().url(RECORDS_MANAGEMENT);
List<String> allButtons = Arrays.asList(RMNavigationConfiguration.ADD_FOLDER, RMNavigationConfiguration.ADD_DOCUMENT);
checkExpectedButtons(allButtons, buttonsExpected);
}
private void assertThatUserHasNoAccessToRMArchivesModule() {
assertThat(navigateToArchivesManagementPossible()).isFalse();
}
private void assertThatUserHasOnlyAccessToRMArchivesPages(String... buttonsExpected) {
driver.logUserInCollection(aliceWonderland, zeCollection);
if (buttonsExpected.length == 0) {
assertThatUserHasNoAccessToRMArchivesModule();
return;
}
//TODO : link not visible
//assertThat(buttonByClassIsVisible("archivesManagementLink")).isTrue();
driver.navigateTo().url(ARCHIVES_MANAGEMENT);
List<String> allButtons = new ArrayList<String>();
allButtons.add(DECOMMISSIONING_CAPTION);
allButtons.add(CONTAINERS_CAPTION);
allButtons.add(ROBOTS_CAPTION);
allButtons.add(REPORTS_CAPTION);
checkExpectedButtons(allButtons, buttonsExpected);
}
private void assertThatUserHasNoAccessToRMAdminModule() {
//assertThat(buttonByClassIsVisible("adminModuleLink")).isFalse();
assertThat(navigateToAdminModulePossible()).isFalse();
}
private void assertThatUserHasAccessToAdminPages(String... buttonsExpected) {
driver.logUserInCollection(aliceWonderland, zeCollection);
if (buttonsExpected.length == 0) {
assertThatUserHasNoAccessToRMAdminModule();
return;
}
//TODO link not visible
//assertThat(buttonByClassIsVisible("adminModuleLink")).isTrue();
driver.navigateTo().url(ADMIN_MODULE);
List<String> allButtons = new ArrayList<>();
allButtons.add(CoreNavigationConfiguration.TAXONOMIES);
allButtons.add(CoreNavigationConfiguration.VALUE_DOMAINS);
allButtons.add(RMNavigationConfiguration.RETENTION_CALENDAR);
allButtons.add(CoreNavigationConfiguration.METADATA_SCHEMAS);
allButtons.add(RMNavigationConfiguration.UNIFORM_SUBDIVISIONS);
allButtons.add(CoreNavigationConfiguration.ROLES);
allButtons.add(CoreNavigationConfiguration.SECURITY);
allButtons.add(CoreNavigationConfiguration.UPDATE_CENTER);
allButtons.add(CoreNavigationConfiguration.COLLECTIONS);
allButtons.add(CoreNavigationConfiguration.USERS);
allButtons.add(CoreNavigationConfiguration.GROUPS);
allButtons.add(CoreNavigationConfiguration.IMPORT_RECORDS);
allButtons.add(CoreNavigationConfiguration.LDAP_CONFIG);
allButtons.add(CoreNavigationConfiguration.CONFIG);
checkExpectedButtons(allButtons, buttonsExpected);
}
private void assertThatUserHasAccessTORMEventsPages(String... buttonsExpected) {
//driver.logUserInCollection(aliceWonderland, zeCollection);
if (buttonsExpected.length == 0) {
assertThatUserHasNoAccessToRMEvents();
return;
}
//TODO : link not visible
//assertThat(buttonByClassIsVisible("logsLink")).isTrue();
driver.navigateTo().url(EVENTS_LIST);
List<String> allButtons = new ArrayList<String>();
allButtons.add(SYSTEM_USAGE_LINK);
allButtons.add(USERS_AND_GROUPS_LINK);
allButtons.add(RECORDS_CREATION_LINK);
allButtons.add(RECORDS_MODIFICATION_LINK);
allButtons.add(RECORDS_DELETION_LINK);
allButtons.add(CURRENTLY_BORROWED_DOCUMENTS_LINK);
allButtons.add(BORROWED_DOCUMENTS_LINK);
allButtons.add(FILING_SPACE_EVENTS_LINK);
allButtons.add(BY_FOLDER_EVENTS_LINK);
allButtons.add(BY_USER_EVENTS_LINK);
allButtons.add(DECOMMISSIONING_EVENTS_LINK);
checkExpectedButtons(allButtons, buttonsExpected);
}
private void assertThatUserHasNoAccessToRMEvents() {
//assertThat(buttonByClassIsVisible("logsLink")).isFalse();
assertThat(navigateToEventListPossible()).isFalse();
}
private void assertThatUserInGlobalMenuHasOnlyAccessTo(String... linkExpected) {
List<String> allLink = new ArrayList<String>();
allLink.add(RECORDS_MANAGEMENT_LINK);
allLink.add(ARCHIVES_MANAGEMENT_LINK);
allLink.add(LOGS_LINK);
allLink.add(ADMIN_MODULE_LINK);
allLink.add(USER_DOCUMENTS_LINK);
checkExpectedButtons(allLink, linkExpected);
}
private void checkExpectedButtons(List<String> allButtons, String... buttonsExpected) {
for (String aButton : allButtons) {
if (buttonIsExpected(aButton, buttonsExpected)) {
assertThat(buttonByClassIsVisible(aButton)).describedAs("Button " + aButton + " visibility").isTrue();
} else {
assertThat(buttonByClassIsVisible(aButton)).describedAs("Button " + aButton + " visibility").isFalse();
}
}
}
private boolean buttonIsExpected(String aButton, String... buttonsExpected) {
for (String aButtonExpected : buttonsExpected) {
if (aButtonExpected == aButton) {
return true;
}
}
return false;
}
private Boolean buttonByClassIsVisible(String buttonClassName) {
try {
driver.findElement(By.className(buttonClassName));
return true;
} catch (Exception e) {
return false;
}
}
private void givenAliceHasPermission(String... permissions) {
Role role = rolesManager.getRole(zeCollection, "roleDeAlice");
role = role.withPermissions(asList(permissions));
rolesManager.updateRole(role);
}
private boolean navigateToAdminModulePossible() {
try {
driver.navigateTo().url(ADMIN_MODULE);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToArchivesManagementPossible() {
try {
driver.navigateTo().url(ARCHIVES_MANAGEMENT);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigationToCreateFolderPossible() {
try {
driver.navigateTo().url(RMNavigationConfiguration.ADD_FOLDER);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigationToAddDocumentPossible() {
try {
driver.navigateTo().url(RMNavigationConfiguration.ADD_DOCUMENT);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
//DOC
private boolean navigationToFolderPossible(String folderId) {
try {
driver.navigateTo().url(DISPLAY_FOLDER + "/" + folderId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigationToCreateSubFolderPossible(String folderId) {
try {
driver.navigateTo().url(RMNavigationConfiguration.ADD_FOLDER + "/parentId%253D" + folderId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigationToCreateDocumentPossible(String folderId) {
try {
driver.navigateTo().url(RMNavigationConfiguration.ADD_DOCUMENT + "/parentId%253D" + folderId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigationToEditFolderPossible(String folderId) {
try {
driver.navigateTo().url(EDIT_FOLDER + "/id%253D" + folderId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigationToTaskPossible(String taskId) {
try {
driver.navigateTo().url(TasksNavigationConfiguration.DISPLAY_TASK + "/" + taskId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigationToEditTaskPossible(String taskId) {
try {
driver.navigateTo().url(TasksNavigationConfiguration.EDIT_TASK + "/id%253D" + taskId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigationToDocumentPossible(String documentId) {
try {
driver.navigateTo().url(DISPLAY_DOCUMENT + "/" + documentId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigationToEditDocumentPossible(String documentId) {
try {
driver.navigateTo().url(EDIT_DOCUMENT + "/id%253D" + documentId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigationToRecordAuthorizationsPossible(String recordId) {
try {
driver.navigateTo().url(LIST_OBJECT_ACCESS_AUTHORIZATIONS + "/" + recordId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigationToShareContentPossible(String recordId) {
try {
driver.navigateTo().url(NavigatorConfigurationService.SHARE_CONTENT + "/" + recordId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
//ARCHIVES
private boolean navigateToSearchContainerForDecommissioningListPossible(String listId) {
try {
driver.navigateTo().url(DECOMMISSIONING_LIST_ADD_EXISTING_CONTAINER + "/" + listId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToCreateContainerForDecommissioningListPossible(String listId) {
try {
driver.navigateTo().url(DECOMMISSIONING_LIST_ADD_NEW_CONTAINER + "/" + listId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToDecommissioningListPossible(String decommissioningList) {
try {
driver.navigateTo().url(DECOMMISSIONING + "/" + decommissioningList);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToEditDecommissioningListPossible(String decommissioningList) {
try {
driver.navigateTo().url(DECOMMISSIONING_LIST_EDIT + "/" + decommissioningList);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToBuildDecommissioningListPossible(String buildType) {
try {
driver.navigateTo().url(DECOMMISSIONING_LIST_BUILDER + "/" + buildType);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToTransferNoStorageSpaceContainerPossible(String unitId) {
try {
driver.navigateTo()
.url(DISPLAY_ADMIN_UNIT_WITH_CONTAINERS + "/transferNoStorageSpace/" + unitId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToTransferWithStorageSpaceContainerPossible(String unitId) {
try {
driver.navigateTo()
.url(DISPLAY_ADMIN_UNIT_WITH_CONTAINERS + "/transferWithStorageSpace/" + unitId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToDepositWithStorageSpaceContainerPossible(String unitId) {
try {
driver.navigateTo()
.url(DISPLAY_ADMIN_UNIT_WITH_CONTAINERS + "/depositWithStorageSpace/" + unitId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToDepositNoStorageSpaceContainerPossible(String unitId) {
try {
driver.navigateTo()
.url(DISPLAY_ADMIN_UNIT_WITH_CONTAINERS + "/depositNoStorageSpace/" + unitId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToTransferNoStorageSpaceFilingSpacePossible(String unitId, String filingId) {
try {
driver.navigateTo()
.url(DISPLAY_FILING_SPACE_WITH_CONTAINERS + "/transferNoStorageSpace/" + unitId + "/" + filingId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToDepositNoStorageSpaceFilingSpacePossible(String unitId, String filingId) {
try {
driver.navigateTo()
.url(DISPLAY_FILING_SPACE_WITH_CONTAINERS + "/despositNoStorageSpace/" + unitId
+ "/" + filingId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToTransferWithStorageSpaceFilingSpacePossible(String unitId, String filingId) {
try {
driver.navigateTo()
.url(DISPLAY_FILING_SPACE_WITH_CONTAINERS + "/transferWithStorageSpace/"
+ unitId + "/" + filingId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToDepositWithStorageSpaceFilingSpacePossible(String unitId, String filingId) {
try {
driver.navigateTo()
.url(DISPLAY_FILING_SPACE_WITH_CONTAINERS + "/despositWithStorageSpace/"
+ unitId + "/" + filingId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToDisplayContainerPossible(String containerId) {
try {
driver.navigateTo()
.url(DISPLAY_CONTAINER + "/" + containerId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddFacetPossible() {
try {
driver.navigateTo().url(NavigatorConfigurationService.ADD_FACET_CONFIGURATION);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToDisplayFacetPossible() {
SchemasRecordsServices schemas = new SchemasRecordsServices(zeCollection, getModelLayerFactory());
String facetId = getModelLayerFactory().newSearchServices().searchRecordIds(
new LogicalSearchQuery().setCondition(from(schemas.facetSchemaType()).returnAll())).get(0);
try {
driver.navigateTo().url(NavigatorConfigurationService.DISPLAY_FACET_CONFIGURATION + "/" + facetId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToEditFacetPossible() {
SchemasRecordsServices schemas = new SchemasRecordsServices(zeCollection, getModelLayerFactory());
String facetId = getModelLayerFactory().newSearchServices().searchRecordIds(
new LogicalSearchQuery().setCondition(from(schemas.facetSchemaType()).returnAll())).get(0);
try {
driver.navigateTo().url(NavigatorConfigurationService.EDIT_FACET_CONFIGURATION + "/" + facetId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToListFacetPossible() {
try {
driver.navigateTo().url(NavigatorConfigurationService.LIST_FACET_CONFIGURATION);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToOrderFacetPossible() {
try {
driver.navigateTo().url(NavigatorConfigurationService.ORDER_FACET_CONFIGURATION);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToReportsPossible() {
try {
driver.navigateTo()
.url(REPORTS);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
//AUDIT
private boolean navigateToEventListPossible() {
try {
driver.navigateTo().url(EVENTS_LIST);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToEventCategoryPossible(String category) {
try {
driver.navigateTo().url(EVENT_CATEGORY + "/" + category);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToADisplayEventPossible() {
try {
driver.navigateTo().url(EVENT_DISPLAY
+ "/id%253D%253BstartDate%253D2015-04-22T11%253A49%253A19.520%253BendDate%253D2015-04-29T11%253A49%253A19."
+ "520%253BeventType%253Dopen_session%253BeventCategory%253DSYSTEM_USAGE");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
//ADMIN MODULE
private boolean navigateToTaxonomiesPossible() {
try {
driver.navigateTo().url(LIST_TAXONOMY);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToEditTaxonomyPossible(String code) {
try {
driver.navigateTo().url(TAXONOMY_ADD_EDIT + "/taxonomyCode%253D" + code);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddTaxonomyPossible() {
try {
driver.navigateTo().url(TAXONOMY_ADD_EDIT);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToACategoryPlanDisplayPossible(String categoryId) {
try {
driver.navigateTo()
.url(TAXONOMY_MANAGEMENT + "/taxonomyCode%253Dplan%253BconceptId%253D"
+ categoryId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToCategoryPlanDisplayWithParentPossible(String categoryId_children, String categoryId_parent) {
try {
driver.navigateTo()
.url(TAXONOMY_MANAGEMENT + "/taxonomyCode%253Dplan%253BconceptId%253D"
+ categoryId_children + "%253BparentConceptId%253D" + categoryId_parent);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddTaxonomyConceptPlanPossible() {
try {
driver.navigateTo()
.url(TAXONOMY_CONCEPT_ADD_EDIT + "/ADD/plan/category_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddTaxonomyConceptPlanWithParentPossible(String categoryId_parent) {
try {
driver.navigateTo()
.url(TAXONOMY_CONCEPT_ADD_EDIT + "/ADD/plan/category_default/"
+ categoryId_parent);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToEditTaxonomyConceptPlanPossible(String categoryId) {
try {
driver.navigateTo()
.url(TAXONOMY_CONCEPT_ADD_EDIT + "/EDIT/plan/category_default/" + categoryId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToCategoriesPlanPossible() {
try {
driver.navigateTo().url(TAXONOMY_MANAGEMENT + "/taxonomyCode%253Dplan");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToCategoriesAdministrativeUnitPossible() {
try {
driver.navigateTo().url(TAXONOMY_MANAGEMENT + "/taxonomyCode%253DadmUnits");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToACategoryAdministrativeUnitDisplayPossible(String unitId) {
try {
driver.navigateTo()
.url(TAXONOMY_MANAGEMENT + "/taxonomyCode%253DadmUnits%253BconceptId%253D"
+ unitId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToCategoryAdministrativeUnitDisplayWithParentPossible(String unitId_children, String unitId_parent) {
try {
driver.navigateTo()
.url(TAXONOMY_MANAGEMENT + "/taxonomyCode%253DadmUnits%253BconceptId%253D"
+ unitId_children + "%253BparentConceptId%253D" + unitId_parent);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddTaxonomyConceptAdministrativeUnitPossible() {
try {
driver.navigateTo()
.url(TAXONOMY_CONCEPT_ADD_EDIT + "/ADD/admUnits/administrativeUnit_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddTaxonomyConceptAdministrativeUnitWithParentPossible(String unitId) {
try {
driver.navigateTo()
.url(TAXONOMY_CONCEPT_ADD_EDIT + "/ADD/admUnits/administrativeUnit_default/"
+ unitId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToEditTaxonomyConceptAdministrativeUnitPossible(String unitId) {
try {
driver.navigateTo()
.url(TAXONOMY_CONCEPT_ADD_EDIT + "/EDIT/admUnits/administrativeUnit_default/"
+ unitId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAdministrativeUnitAuthorizationsPossible(String unitId) {
try {
driver.navigateTo()
.url(LIST_OBJECT_ACCESS_AUTHORIZATIONS + "/" + unitId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToUniformSubdivisionPossible(String subdivId) {
try {
driver.navigateTo().url(DISPLAY_SCHEMA_RECORD + "/" + subdivId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToUniformSubdivisionListPossible() {
try {
driver.navigateTo().url(LIST_SCHEMA_RECORDS + "/uniformSubdivision_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddUniformSubdivisionPossible() {
try {
driver.navigateTo().url(ADD_EDIT_SCHEMA_RECORD + "/uniformSubdivision_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToEditUniformSubdivisionPossible(String subdivId) {
try {
driver.navigateTo()
.url(ADD_EDIT_SCHEMA_RECORD + "/uniformSubdivision_default/" + subdivId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToListRetentionRulesPossible() {
try {
driver.navigateTo().url(LIST_RETENTION_RULES);
return !isOnHomePage();
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
private boolean navigateToRetentionRuleDisplayPossible(String ruleId) {
try {
driver.navigateTo().url(DISPLAY_RETENTION_RULE + "/" + ruleId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddRetentionRulePossible() {
try {
driver.navigateTo().url(ADD_RETENTION_RULE);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToEditRetentionRulePossible(String ruleId) {
try {
driver.navigateTo().url(EDIT_RETENTION_RULE + "/" + ruleId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToValueDomainsPossible() {
try {
driver.navigateTo().url(LIST_VALUE_DOMAINS);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToContainerTypeListPossible() {
try {
driver.navigateTo().url(LIST_SCHEMA_RECORDS + "/ddvContainerRecordType_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToContainerTypePossible(String containerTypeId) {
try {
driver.navigateTo().url(DISPLAY_SCHEMA_RECORD + "/" + containerTypeId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToEditContainerTypePossible(String containerTypeId) {
try {
driver.navigateTo().url(ADD_EDIT_SCHEMA_RECORD + "/ddvContainerRecordType_default/"
+ containerTypeId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddContainerTypePossible() {
try {
driver.navigateTo().url(ADD_EDIT_SCHEMA_RECORD + "/ddvContainerRecordType_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToDocumentTypeListPossible() {
try {
driver.navigateTo().url(LIST_SCHEMA_RECORDS + "/ddvDocumentType_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToDocumentTypePossible(String documentTypeId) {
try {
driver.navigateTo().url(DISPLAY_SCHEMA_RECORD + "/" + documentTypeId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToEditDocumentTypePossible(String documentTypeId) {
try {
driver.navigateTo()
.url(ADD_EDIT_SCHEMA_RECORD + "/ddvDocumentType_default/" + documentTypeId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToCollectionSecurityPossible() {
try {
driver.navigateTo()
.url(COLLECTION_MANAGEMENT);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToSchemaRecordList(String schemaCode) {
try {
driver.navigateTo()
.url(LIST_SCHEMA_RECORDS + "/" + schemaCode);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToSchemaRecordDisplay(String id) {
try {
driver.navigateTo()
.url(DISPLAY_SCHEMA_RECORD + "/" + id);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToCollectionUserList() {
try {
driver.navigateTo().url(COLLECTION_USER_LIST);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToCollectionUser(String userId) {
try {
driver.navigateTo().url(COLLECTION_USER + "/" + userId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToCollectionUserRoles(String userId) {
try {
driver.navigateTo().url(COLLECTION_USER_ROLES + "/" + userId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToCollectionGroup(String groupId) {
try {
driver.navigateTo().url(COLLECTION_GROUP + "/" + groupId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToCollectionGroupRoles(String groupId) {
try {
driver.navigateTo().url(COLLECTION_GROUP_ROLES + "/" + groupId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToSchemaRecordEdit(String schemaCode, String id) {
try {
driver.navigateTo()
.url(ADD_EDIT_SCHEMA_RECORD + "/" + schemaCode + "/" + id);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToSchemaRecordAdd(String schemaCode) {
try {
driver.navigateTo()
.url(ADD_EDIT_SCHEMA_RECORD + "/" + schemaCode);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddDocumentTypePossible() {
try {
driver.navigateTo().url(ADD_EDIT_SCHEMA_RECORD + "/ddvDocumentType_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToFolderTypeListPossible() {
try {
driver.navigateTo().url(LIST_SCHEMA_RECORDS + "/ddvFolderType_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddFolderTypePossible() {
try {
driver.navigateTo().url(ADD_EDIT_SCHEMA_RECORD + "/ddvFolderType_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToMediumTypeListPossible() {
try {
driver.navigateTo().url(LIST_SCHEMA_RECORDS + "/ddvMediumType_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToMediumTypePossible(String mediumType) {
try {
driver.navigateTo().url(DISPLAY_SCHEMA_RECORD + "/" + mediumType);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToEditMediumTypePossible(String mediumType) {
try {
driver.navigateTo()
.url(ADD_EDIT_SCHEMA_RECORD + "/ddvMediumType_default/" + mediumType);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddMediumTypePossible() {
try {
driver.navigateTo().url(ADD_EDIT_SCHEMA_RECORD + "/ddvMediumType_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToStorageSpaceTypeListPossible() {
try {
driver.navigateTo().url(LIST_SCHEMA_RECORDS + "/ddvStorageSpaceType_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddStorageSpaceTypePossible() {
try {
driver.navigateTo().url(ADD_EDIT_SCHEMA_RECORD + "/ddvMediumType_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToDisplaySchemaTypePossible() {
try {
driver.navigateTo().url(DISPLAY_SCHEMA_TYPE);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToListMetadatasPossible() {
try {
driver.navigateTo().url(ADD_EDIT_SCHEMA_METADATA + "/" + ADD_EDIT_SCHEMA_METADATA
+ "/schemaTypeCode%253DcontainerRecord%253BschemaCode%253DcontainerRecord_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToEditSchemaTypePossible() {
try {
driver.navigateTo().url(ADD_EDIT_SCHEMA + "/" + ADD_EDIT_SCHEMA
+ "/schemaTypeCode%253DcontainerRecord%253BschemaCode%253DcontainerRecord_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddSchemaTypePossible() {
try {
driver.navigateTo().url(ADD_EDIT_SCHEMA + "/" + ADD_EDIT_SCHEMA
+ "/schemaTypeCode%253DcontainerRecord%253BschemaCode%253D");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToEditMetadataPossible() {
try {
driver.navigateTo().url(ADD_EDIT_METADATA + "/" + ADD_EDIT_METADATA
+ "/schemaTypeCode%253DcontainerRecord%253BmetadataCode%253D%253BschemaCode%253DcontainerRecord_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToDisplayFormMetadatasPossible() {
try {
driver.navigateTo().url(FORM_DISPLAY_FORM + "/" + FORM_DISPLAY_FORM
+ "/schemaTypeCode%253DcontainerRecord%253BmetadataCode%253D%253BschemaCode%253DcontainerRecord_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToDisplayDetailsMetadatasPossible() {
try {
driver.navigateTo().url(EDIT_DISPLAY_FORM + "/" + EDIT_DISPLAY_FORM
+ "/schemaTypeCode%253DcontainerRecord%253BmetadataCode%253D%253BschemaCode%253DcontainerRecord_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToSearchDisplayFormMetadatasPossible() {
try {
driver.navigateTo().url(SEARCH_DISPLAY_FORM + "/" + SEARCH_DISPLAY_FORM
+ "/searchDisplayForm/schemaTypeCode%253DcontainerRecord%253BmetadataCode%253D%253BschemaCode%253DcontainerRecord_default");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToListOngletMetadatasPossible() {
try {
driver.navigateTo().url(LIST_ONGLET + "/" + LIST_ONGLET
+ "/schemaTypeCode%253Dcategory");
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToPermissionsManagementPossible() {
try {
driver.navigateTo().url(PERMISSION_MANAGEMENT);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToUserListPossible() {
try {
driver.navigateTo().url(USER_LIST);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToGroupDisplayPossible(String group) {
try {
driver.navigateTo().url(GROUP_DISPLAY + "/"
+ GROUP_LIST
+ "/globalGroupCode%253D" + group);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToAddSubGroupPossible(String parentGroupId) {
try {
driver.navigateTo().url(GROUP_ADD_EDIT + "/"
+ GROUP_LIST + "/"
+ GROUP_DISPLAY + "/parentGlobalGroupCode%253D" + parentGroupId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToGroupListPossible() {
try {
driver.navigateTo().url(GROUP_LIST);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToGroupAddPossible() {
try {
driver.navigateTo()
.url(GROUP_ADD_EDIT + "/" + GROUP_LIST);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToGroupEditPossible(String group) {
try {
driver.navigateTo().url(GROUP_ADD_EDIT + "/" + GROUP_LIST
+ "/globalGroupCode%253D" + group);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToLdapPossible() {
try {
driver.navigateTo().url(LDAP_CONFIG_MANAGEMENT);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToConfigurationPossible() {
try {
driver.navigateTo().url(CONFIG_MANAGEMENT);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToUserDisplayPossible(String user) {
try {
driver.navigateTo().url(USER_DISPLAY + "/" + USER_LIST
+ "/username%253D" + user);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToUserAddPossible() {
try {
driver.navigateTo().url(USER_ADD_EDIT + "/" + USER_LIST);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToUserEditPossible(String user) {
try {
driver.navigateTo().url(USER_ADD_EDIT + "/" + USER_LIST
+ "/username%253D" + user);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToListCollectionsPossible() {
try {
driver.navigateTo().url(COLLECTION_MANAGEMENT);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToListPrincipalAuthorizationsPossible(String userOrGroupId) {
try {
driver.navigateTo().url(LIST_PRINCIPAL_ACCESS_AUTHORIZATIONS + "/" + userOrGroupId);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToCollectionEditPossible(String collection) {
try {
driver.navigateTo().url(COLLECTION_ADD_EDIT + "/"
+ COLLECTION_MANAGEMENT + "/collectionCode253D" + collection);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToCollectionAddPossible() {
try {
driver.navigateTo().url(COLLECTION_ADD_EDIT + "/"
+ COLLECTION_MANAGEMENT);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToUpdateCenterPossible() {
try {
driver.navigateTo().url(UPDATE_MANAGER);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToExportPossible() {
try {
driver.navigateTo().url(EXPORTER);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToImportRecordsPossible() {
try {
driver.navigateTo().url(IMPORT_FILE);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToImportUsersPossible() {
try {
driver.navigateTo().url(IMPORT_USERS);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private boolean navigateToImportSchemaTypesPossible() {
try {
driver.navigateTo().url(IMPORT_SCHEMA_TYPES);
return !isOnHomePage();
} catch (Exception e) {
return false;
}
}
private void logAsIn(String user, String collection) {
driver = newWebDriver(loggedAsUserInCollection(user, collection));
}
private boolean isOnHomePage() {
return driver.getCurrentUrl().endsWith("/constellio/#!/lastViewedFolders");
}
//------------------------------------------------------------------------------------------------------
private void assertThatCanNavigateToAllArchivesPages() {
assertThatCanNavigateToAllDecommissioningPages();
assertThatCanNavigateToAllContainersPages();
assertThat(navigateToReportsPossible()).isTrue();
}
private void assertThatCannotNavigateToAllArchivesPages() {
assertThatCannotNavigateToAllDecommissioningPages();
assertThatCannotNavigateToAllContainersPages();
assertThat(navigateToReportsPossible()).isFalse();
}
private void assertThatCanNavigateToAllAdminModulePages() {
assertThatCanNavigateToTaxonomiesPages();
assertThatCanNavigateToAllClassificationPlanPages();
assertThatCanNavigateToAllSecurityPages();
assertThatCanNavigateToAllUniformSubdivisionsPages();
assertThatCanNavigateToAllRetentionRulesPages();
assertThatCanNavigateToAllValueDomainPages();
assertThatCanNavigateToAllMetadataSchemaPages();
assertThat(navigateToConfigurationPossible()).isTrue();
assertThat(navigateToLdapPossible()).isTrue();
assertThatCanNavigateToAllSystemGroupPages();
assertThatCanNavigateToAllSystemUsersPages();
assertThat(navigateToUpdateCenterPossible()).isTrue();
assertThat(navigateToImportRecordsPossible()).isTrue();
assertThat(navigateToImportSchemaTypesPossible()).isTrue();
assertThat(navigateToImportUsersPossible()).isTrue();
assertThat(navigateToExportPossible()).isTrue();
}
private void assertThatCannotNavigateToAllAdminModulePages() {
assertThatCannotNavigateToTaxonomiesPages();
assertThatCannotNavigateToAllClassificationPlanPages();
assertThatCannotNavigateToAllSecurityPages();
assertThatCannotNavigateToAllUniformSubdivisionsPages();
assertThatCannotNavigateToAllRetentionRulesPages();
assertThatCannotNavigateToAllValueDomainPages();
assertThatCannotNavigateToAllMetadataSchemaPages();
assertThat(navigateToConfigurationPossible()).isFalse();
assertThat(navigateToLdapPossible()).isFalse();
assertThatCannotNavigateToAllSystemGroupPages();
assertThatCannotNavigateToAllSystemUsersPages();
assertThatCannotNavigateToAllSystemCollectionsPages();
assertThat(navigateToUpdateCenterPossible()).isFalse();
assertThat(navigateToImportRecordsPossible()).isFalse();
assertThat(navigateToImportSchemaTypesPossible()).isFalse();
assertThat(navigateToImportUsersPossible()).isFalse();
assertThat(navigateToExportPossible()).isFalse();
assertThat(navigateToAddFacetPossible()).isFalse();
assertThat(navigateToEditFacetPossible()).isFalse();
assertThat(navigateToDisplayFacetPossible()).isFalse();
assertThat(navigateToListFacetPossible()).isFalse();
assertThat(navigateToOrderFacetPossible()).isFalse();
}
private void assertThatCanNavigateToTaxonomiesPages() {
assertThat(navigateToTaxonomiesPossible()).isTrue();
assertThat(navigateToEditTaxonomyPossible(customTaxonomyCode)).isTrue();
assertThat(navigateToAddTaxonomyPossible()).isTrue();
}
private void assertThatCannotNavigateToTaxonomiesPages() {
assertThat(navigateToTaxonomiesPossible()).isFalse();
assertThat(navigateToEditTaxonomyPossible(customTaxonomyCode)).isFalse();
assertThat(navigateToAddTaxonomyPossible()).isFalse();
}
private void assertThatCannotNavigateToAllDecommissioningPages() {
assertThat(navigateToDecommissioningListPossible(records.list_01)).isFalse();
assertThat(navigateToBuildDecommissioningListPossible("fixedPeriod")).isFalse();
assertThat(navigateToBuildDecommissioningListPossible("code888")).isFalse();
assertThat(navigateToBuildDecommissioningListPossible("code999")).isFalse();
assertThat(navigateToBuildDecommissioningListPossible("transfer")).isFalse();
assertThat(navigateToBuildDecommissioningListPossible("activeToDeposit")).isFalse();
assertThat(navigateToBuildDecommissioningListPossible("activeToDestroy")).isFalse();
assertThat(navigateToBuildDecommissioningListPossible("semiActiveToDeposit")).isFalse();
assertThat(navigateToBuildDecommissioningListPossible("semiActiveToDestroy")).isFalse();
assertThat(navigateToSearchContainerForDecommissioningListPossible(records.list_04)).isFalse();
assertThat(navigateToCreateContainerForDecommissioningListPossible(records.list_04)).isFalse();
}
private void assertThatCanNavigateToAllDecommissioningPages() {
assertThat(navigateToDecommissioningListPossible(records.list_01)).isTrue();
assertThat(navigateToBuildDecommissioningListPossible("fixedPeriod")).isTrue();
assertThat(navigateToBuildDecommissioningListPossible("code888")).isTrue();
assertThat(navigateToBuildDecommissioningListPossible("code999")).isTrue();
assertThat(navigateToBuildDecommissioningListPossible("transfer")).isTrue();
assertThat(navigateToBuildDecommissioningListPossible("activeToDeposit")).isTrue();
assertThat(navigateToBuildDecommissioningListPossible("activeToDestroy")).isTrue();
assertThat(navigateToBuildDecommissioningListPossible("semiActiveToDeposit")).isTrue();
assertThat(navigateToBuildDecommissioningListPossible("semiActiveToDestroy")).isTrue();
assertThat(navigateToSearchContainerForDecommissioningListPossible(records.list_04)).isTrue();
// assertThat(navigateToCreateContainerForDecommissioningListPossible(records.list_04)).isTrue();
}
private void assertThatCanNavigateToAllSystemCollectionsPages() {
assertThat(navigateToListCollectionsPossible()).isTrue();
assertThat(navigateToCollectionEditPossible(records.getCollection().toString())).isTrue();
assertThat(navigateToCollectionAddPossible()).isTrue();
assertThat(navigateToCollectionSecurityPossible()).isTrue();
}
private void assertThatCannotNavigateToAllSystemCollectionsPages() {
assertThat(navigateToListCollectionsPossible()).isFalse();
assertThat(navigateToCollectionEditPossible(records.getCollection().toString())).isFalse();
assertThat(navigateToCollectionAddPossible()).isFalse();
assertThat(navigateToCollectionSecurityPossible()).isFalse();
}
private void assertThatCanNavigateToAllSystemUsersPages() {
assertThat(navigateToUserListPossible()).isTrue();
assertThat(navigateToUserDisplayPossible(records.getAlice().getFirstName().toLowerCase())).isTrue();
assertThat(navigateToUserAddPossible()).isTrue();
assertThat(navigateToUserEditPossible(records.getAlice().getFirstName().toLowerCase())).isTrue();
}
private void assertThatCannotNavigateToAllSystemUsersPages() {
assertThat(navigateToUserListPossible()).isFalse();
assertThat(navigateToUserDisplayPossible(records.getAlice().getFirstName().toLowerCase())).isFalse();
assertThat(navigateToUserAddPossible()).isFalse();
assertThat(navigateToUserEditPossible(records.getAlice().getFirstName().toLowerCase())).isFalse();
}
private void assertThatCanNavigateToAllSystemGroupPages() {
assertThat(navigateToGroupListPossible()).isTrue();
assertThat(navigateToGroupDisplayPossible(records.getHeroes().getCode())).isTrue();
assertThat(navigateToAddSubGroupPossible(records.getHeroes().getCode())).isTrue();
assertThat(navigateToGroupAddPossible()).isTrue();
assertThat(navigateToGroupEditPossible(records.getHeroes().getCode())).isTrue();
}
private void assertThatCannotNavigateToAllSystemGroupPages() {
assertThat(navigateToGroupListPossible()).isFalse();
assertThat(navigateToGroupDisplayPossible(records.getHeroes().getCode())).isFalse();
assertThat(navigateToAddSubGroupPossible(records.getHeroes().getCode())).isFalse();
assertThat(navigateToGroupAddPossible()).isFalse();
assertThat(navigateToGroupEditPossible(records.getHeroes().getCode())).isFalse();
}
private void assertThatCanNavigateToAllRetentionRulesPages() {
assertThat(navigateToListRetentionRulesPossible()).isTrue();
assertThat(navigateToRetentionRuleDisplayPossible(records.ruleId_1)).isTrue();
assertThat(navigateToAddRetentionRulePossible()).isTrue();
assertThat(navigateToEditRetentionRulePossible(records.ruleId_1)).isTrue();
}
private void assertThatCannotNavigateToAllRetentionRulesPages() {
assertThat(navigateToListRetentionRulesPossible()).isFalse();
assertThat(navigateToRetentionRuleDisplayPossible(records.ruleId_1)).isFalse();
assertThat(navigateToAddRetentionRulePossible()).isFalse();
assertThat(navigateToEditRetentionRulePossible(records.ruleId_1)).isFalse();
}
private void assertThatCanNavigateToAllMetadataSchemaPages() {
assertThat(navigateToDisplaySchemaTypePossible()).isTrue();
assertThat(navigateToEditSchemaTypePossible()).isTrue();
assertThat(navigateToAddSchemaTypePossible()).isTrue();
assertThat(navigateToListMetadatasPossible()).isTrue();
assertThat(navigateToListOngletMetadatasPossible()).isTrue();
assertThat(navigateToSearchDisplayFormMetadatasPossible()).isTrue();
assertThat(navigateToDisplayDetailsMetadatasPossible()).isTrue();
assertThat(navigateToEditMetadataPossible()).isTrue();
assertThat(navigateToDisplayFormMetadatasPossible()).isTrue();
}
private void assertThatCannotNavigateToAllMetadataSchemaPages() {
assertThat(navigateToDisplaySchemaTypePossible()).isFalse();
assertThat(navigateToEditSchemaTypePossible()).isFalse();
assertThat(navigateToAddSchemaTypePossible()).isFalse();
assertThat(navigateToListMetadatasPossible()).isFalse();
assertThat(navigateToListOngletMetadatasPossible()).isFalse();
assertThat(navigateToSearchDisplayFormMetadatasPossible()).isFalse();
assertThat(navigateToDisplayDetailsMetadatasPossible()).isFalse();
assertThat(navigateToEditMetadataPossible()).isFalse();
assertThat(navigateToDisplayFormMetadatasPossible()).isFalse();
}
private void assertThatCanNavigateToAllValueDomainPages() {
assertThat(navigateToValueDomainsPossible()).isTrue();
assertThat(navigateToContainerTypeListPossible()).isTrue();
assertThat(navigateToContainerTypePossible(records.containerTypeId_boite22x22)).isTrue();
assertThat(navigateToEditContainerTypePossible(records.containerTypeId_boite22x22)).isTrue();
assertThat(navigateToAddContainerTypePossible()).isTrue();
assertThat(navigateToDocumentTypeListPossible()).isTrue();
assertThat(navigateToDocumentTypePossible(records.documentTypeId_1)).isTrue();
assertThat(navigateToEditDocumentTypePossible(records.documentTypeId_2)).isTrue();
assertThat(navigateToAddDocumentTypePossible()).isTrue();
assertThat(navigateToFolderTypeListPossible()).isTrue();
assertThat(navigateToAddFolderTypePossible()).isTrue();
assertThat(navigateToMediumTypeListPossible()).isTrue();
assertThat(navigateToMediumTypePossible(records.PA)).isTrue();
assertThat(navigateToEditMediumTypePossible(records.PA)).isTrue();
assertThat(navigateToAddMediumTypePossible()).isTrue();
assertThat(navigateToStorageSpaceTypeListPossible()).isTrue();
assertThat(navigateToAddStorageSpaceTypePossible()).isTrue();
}
private void assertThatCannotNavigateToAllValueDomainPages() {
assertThat(navigateToValueDomainsPossible()).isFalse();
assertThat(navigateToContainerTypeListPossible()).isFalse();
assertThat(navigateToContainerTypePossible(records.containerTypeId_boite22x22)).isFalse();
assertThat(navigateToEditContainerTypePossible(records.containerTypeId_boite22x22)).isFalse();
assertThat(navigateToAddContainerTypePossible()).isFalse();
assertThat(navigateToDocumentTypeListPossible()).isFalse();
assertThat(navigateToDocumentTypePossible(records.documentTypeId_1)).isFalse();
assertThat(navigateToEditDocumentTypePossible(records.documentTypeId_2)).isFalse();
assertThat(navigateToAddDocumentTypePossible()).isFalse();
assertThat(navigateToFolderTypeListPossible()).isFalse();
assertThat(navigateToAddFolderTypePossible()).isFalse();
assertThat(navigateToMediumTypeListPossible()).isFalse();
assertThat(navigateToMediumTypePossible(records.PA)).isFalse();
assertThat(navigateToEditMediumTypePossible(records.PA)).isFalse();
assertThat(navigateToAddMediumTypePossible()).isFalse();
assertThat(navigateToStorageSpaceTypeListPossible()).isFalse();
assertThat(navigateToAddStorageSpaceTypePossible()).isFalse();
}
private void assertThatCanNavigateToAllUniformSubdivisionsPages() {
assertThat(navigateToUniformSubdivisionPossible(records.subdivId_1)).isTrue();
assertThat(navigateToUniformSubdivisionListPossible()).isTrue();
assertThat(navigateToAddUniformSubdivisionPossible()).isTrue();
assertThat(navigateToEditUniformSubdivisionPossible(records.subdivId_1)).isTrue();
}
private void assertThatCannotNavigateToAllUniformSubdivisionsPages() {
assertThat(navigateToUniformSubdivisionPossible(records.subdivId_1)).isFalse();
assertThat(navigateToUniformSubdivisionListPossible()).isFalse();
assertThat(navigateToAddUniformSubdivisionPossible()).isFalse();
assertThat(navigateToEditUniformSubdivisionPossible(records.subdivId_1)).isFalse();
}
private void assertThatCanNavigateToAllClassificationPlanPages() {
assertThat(navigateToCategoriesPlanPossible()).isTrue();
assertThat(navigateToACategoryPlanDisplayPossible(records.categoryId_X)).isTrue();
assertThat(navigateToCategoryPlanDisplayWithParentPossible(records.categoryId_X100, records.categoryId_X)).isTrue();
assertThat(navigateToAddTaxonomyConceptPlanPossible()).isTrue();
assertThat(navigateToAddTaxonomyConceptPlanWithParentPossible(records.categoryId_X100)).isTrue();
assertThat(navigateToEditTaxonomyConceptPlanPossible(records.categoryId_X)).isTrue();
}
private void assertThatCannotNavigateToAllClassificationPlanPages() {
assertThat(navigateToCategoriesAdministrativeUnitPossible()).isFalse();
assertThat(navigateToACategoryAdministrativeUnitDisplayPossible(records.unitId_20)).isFalse();
assertThat(navigateToCategoryAdministrativeUnitDisplayWithParentPossible(records.unitId_12, records.unitId_10)).isFalse();
assertThat(navigateToAddTaxonomyConceptAdministrativeUnitPossible()).isFalse();
assertThat(navigateToAddTaxonomyConceptAdministrativeUnitWithParentPossible(records.unitId_12)).isFalse();
assertThat(navigateToEditTaxonomyConceptAdministrativeUnitPossible(records.unitId_30)).isFalse();
assertThat(navigateToAdministrativeUnitAuthorizationsPossible(records.unitId_30)).isFalse();
}
private void assertThatCanNavigateToAllSecurityPages() {
assertThat(navigateToCollectionUserList()).isTrue();
assertThat(navigateToCollectionUser(edouardIdInZeCollection)).isTrue();
assertThat(navigateToCollectionUserRoles(edouardIdInZeCollection)).isTrue();
assertThat(navigateToCollectionGroup(legendsInZeCollection)).isTrue();
assertThat(navigateToCollectionGroupRoles(legendsInZeCollection)).isTrue();
assertThat(navigateToListPrincipalAuthorizationsPossible(edouardIdInZeCollection)).isTrue();
assertThat(navigateToCategoriesAdministrativeUnitPossible()).isTrue();
assertThat(navigateToACategoryAdministrativeUnitDisplayPossible(records.unitId_20)).isTrue();
assertThat(navigateToCategoryAdministrativeUnitDisplayWithParentPossible(records.unitId_12, records.unitId_10)).isTrue();
assertThat(navigateToAddTaxonomyConceptAdministrativeUnitPossible()).isTrue();
assertThat(navigateToAddTaxonomyConceptAdministrativeUnitWithParentPossible(records.unitId_12)).isTrue();
assertThat(navigateToEditTaxonomyConceptAdministrativeUnitPossible(records.unitId_30)).isTrue();
assertThat(navigateToAdministrativeUnitAuthorizationsPossible(records.unitId_30)).isTrue();
assertThat(navigateToPermissionsManagementPossible()).isTrue();
}
private void assertThatCannotNavigateToAllSecurityPages() {
assertThat(navigateToCollectionUserList()).isFalse();
assertThat(navigateToCollectionUser(edouardIdInZeCollection)).isFalse();
assertThat(navigateToCollectionUserRoles(edouardIdInZeCollection)).isFalse();
assertThat(navigateToCollectionGroup(legendsInZeCollection)).isFalse();
assertThat(navigateToCollectionGroupRoles(legendsInZeCollection)).isFalse();
assertThat(navigateToListPrincipalAuthorizationsPossible(edouardIdInZeCollection)).isFalse();
assertThat(navigateToPermissionsManagementPossible()).isFalse();
}
private void assertThatCanNavigateToAllContainersPages() {
assertThat(navigateToTransferNoStorageSpaceContainerPossible(records.unitId_11)).isTrue();
assertThat(navigateToDepositNoStorageSpaceContainerPossible(records.unitId_10)).isTrue();
assertThat(navigateToTransferWithStorageSpaceContainerPossible(records.unitId_10)).isTrue();
assertThat(navigateToDepositWithStorageSpaceContainerPossible(records.unitId_10)).isTrue();
// assertThat(navigateToTransferNoStorageSpaceFilingSpacePossible(records.unitId_10, records.filingId_A)).isTrue();
// assertThat(navigateToDepositNoStorageSpaceFilingSpacePossible(records.unitId_10, records.filingId_A)).isTrue();
// assertThat(navigateToTransferWithStorageSpaceFilingSpacePossible(records.unitId_10, records.filingId_A)).isTrue();
// assertThat(navigateToDepositWithStorageSpaceFilingSpacePossible(records.unitId_10, records.filingId_A)).isTrue();
// assertThat(navigateToDisplayContainerPossible(records.containerId_bac15)).isTrue();
}
private void assertThatCannotNavigateToAllContainersPages() {
assertThat(navigateToTransferNoStorageSpaceContainerPossible(records.unitId_11)).isFalse();
assertThat(navigateToDepositNoStorageSpaceContainerPossible(records.unitId_10)).isFalse();
assertThat(navigateToTransferWithStorageSpaceContainerPossible(records.unitId_10)).isFalse();
assertThat(navigateToDepositWithStorageSpaceContainerPossible(records.unitId_10)).isFalse();
// assertThat(navigateToTransferNoStorageSpaceFilingSpacePossible(records.unitId_10, records.filingId_A)).isFalse();
// assertThat(navigateToDepositNoStorageSpaceFilingSpacePossible(records.unitId_10, records.filingId_A)).isFalse();
// assertThat(navigateToTransferWithStorageSpaceFilingSpacePossible(records.unitId_10, records.filingId_A)).isFalse();
// assertThat(navigateToDepositWithStorageSpaceFilingSpacePossible(records.unitId_10, records.filingId_A)).isFalse();
// assertThat(navigateToDisplayContainerPossible(records.containerId_bac15)).isFalse();
}
private void assertThatCanNavigateToAllEventPages() {
assertThat(navigateToEventListPossible()).isTrue();
assertThat(navigateToADisplayEventPossible()).isTrue();
assertThat(navigateToEventCategoryPossible(SYSTEM_USAGE)).isTrue();
assertThat(navigateToEventCategoryPossible(USERS_AND_GROUPS_ADD_OR_REMOVE)).isTrue();
assertThat(navigateToEventCategoryPossible(FOLDERS_AND_DOCUMENTS_CREATION)).isTrue();
assertThat(navigateToEventCategoryPossible(FOLDERS_AND_DOCUMENTS_MODIFICATION)).isTrue();
assertThat(navigateToEventCategoryPossible(FOLDERS_AND_DOCUMENTS_DELETION)).isTrue();
assertThat(navigateToEventCategoryPossible(CURRENTLY_BORROWED_DOCUMENTS)).isTrue();
assertThat(navigateToEventCategoryPossible(DOCUMENTS_BORROW_OR_RETURN)).isTrue();
assertThat(navigateToEventCategoryPossible(EVENTS_BY_ADMINISTRATIVE_UNIT)).isTrue();
assertThat(navigateToEventCategoryPossible(EVENTS_BY_FOLDER)).isTrue();
assertThat(navigateToEventCategoryPossible(EVENTS_BY_USER)).isTrue();
assertThat(navigateToEventCategoryPossible(DECOMMISSIONING_EVENTS)).isTrue();
}
private void assertThatCannotNavigateToAllEventPages() {
assertThat(navigateToEventListPossible()).isFalse();
assertThat(navigateToADisplayEventPossible()).isFalse();
assertThat(navigateToEventCategoryPossible(SYSTEM_USAGE)).isFalse();
assertThat(navigateToEventCategoryPossible(USERS_AND_GROUPS_ADD_OR_REMOVE)).isFalse();
assertThat(navigateToEventCategoryPossible(FOLDERS_AND_DOCUMENTS_CREATION)).isFalse();
assertThat(navigateToEventCategoryPossible(FOLDERS_AND_DOCUMENTS_MODIFICATION)).isFalse();
assertThat(navigateToEventCategoryPossible(FOLDERS_AND_DOCUMENTS_DELETION)).isFalse();
assertThat(navigateToEventCategoryPossible(CURRENTLY_BORROWED_DOCUMENTS)).isFalse();
assertThat(navigateToEventCategoryPossible(DOCUMENTS_BORROW_OR_RETURN)).isFalse();
assertThat(navigateToEventCategoryPossible(EVENTS_BY_ADMINISTRATIVE_UNIT)).isFalse();
assertThat(navigateToEventCategoryPossible(EVENTS_BY_FOLDER)).isFalse();
assertThat(navigateToEventCategoryPossible(EVENTS_BY_USER)).isFalse();
assertThat(navigateToEventCategoryPossible(DECOMMISSIONING_EVENTS)).isFalse();
}
private void assertThatCanNavigateToAllActiveRMPages() {
assertThat(navigationToFolderPossible(records.folder_A13)).isTrue();
assertThat(navigationToCreateSubFolderPossible(records.folder_A13)).isTrue();
assertThat(navigationToCreateDocumentPossible(records.folder_A13)).isTrue();
assertThat(navigationToEditFolderPossible(records.folder_A13)).isTrue();
assertThat(navigationToRecordAuthorizationsPossible(records.folder_A13)).isTrue();
assertThat(navigationToShareContentPossible(records.folder_A13)).isTrue();
assertThat(navigationToDocumentPossible(documentInA13)).isTrue();
assertThat(navigationToEditDocumentPossible(documentInA13)).isTrue();
assertThat(navigationToRecordAuthorizationsPossible(documentInA13)).isTrue();
assertThat(navigationToShareContentPossible(documentInA13)).isTrue();
}
}