package com.constellio.app.ui.pages.management.schemas.type; import static com.constellio.app.ui.i18n.i18n.$; import static org.assertj.core.api.Assertions.assertThat; import java.util.List; import org.junit.Before; import org.junit.Test; import com.constellio.app.modules.rm.RMTestRecords; import com.constellio.app.modules.rm.services.RMSchemasRecordsServices; import com.constellio.app.modules.rm.wrappers.AdministrativeUnit; import com.constellio.app.ui.application.NavigatorConfigurationService; import com.constellio.app.ui.tools.CheckboxWebElement; import com.constellio.app.ui.tools.LookupWebElement; import com.constellio.app.ui.tools.components.basic.DateFieldWebElement; import com.constellio.app.ui.tools.components.basic.DateTimeFieldWebElement; import com.constellio.app.ui.tools.components.basic.TextFieldWebElement; import com.constellio.app.ui.tools.components.listAddRemove.ListAddRemoveTextFieldWebElement; import com.constellio.model.entities.Language; import com.constellio.model.entities.records.Record; import com.constellio.model.entities.schemas.Metadata; import com.constellio.model.entities.schemas.MetadataValueType; import com.constellio.model.entities.schemas.entries.DataEntryType; import com.constellio.model.services.schemas.MetadataSchemasManager; 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; import com.constellio.sdk.tests.selenium.conditions.ConditionWithTimeout; @UiTest @InDevelopmentTest public class SchemaPageAcceptTest extends ConstellioTest { /*------------------------------------------------------------- This test does not work with PhantomJS, so it is tagged as InDevelopment so the CI server ignores it. The test is functional when running it on Firefox. - Patrick --------------------------------------------------------------- */ ConstellioWebDriver driver; RMSchemasRecordsServices schemas; RMTestRecords errors = new RMTestRecords(zeCollection); MetadataSchemasManager metadataSchemasManager; DisplaySchemaPage displaySchemaPage; AddEditSchemaPage addEditSchemaPage; AddEditSchemaMetadataPage addEditSchemaMetadataPage; FormDisplaySearchPage formDisplaySearchPage; @Before public void setUp() throws Exception { prepareSystem( withZeCollection().withConstellioRMModule().withAllTestUsers() ); schemas = new RMSchemasRecordsServices(zeCollection, getAppLayerFactory()); metadataSchemasManager = getModelLayerFactory().getMetadataSchemasManager(); givenCollection("otherCollection"); errors.setup(getAppLayerFactory()).withFoldersAndContainersOfEveryStatus(); driver = newWebDriver(loggedAsUserInCollection("admin", zeCollection)); displaySchemaPage = new DisplaySchemaPage(driver); addEditSchemaPage = new AddEditSchemaPage(driver); addEditSchemaMetadataPage = new AddEditSchemaMetadataPage(driver); formDisplaySearchPage = new FormDisplaySearchPage(driver); } @Test public void allTests() throws Exception { givenAddSchemaPageWhenCancelButtonClickedThenNavigateToDisplaySchema(); givenAddSchemaPageWhenSaveButtonClickedThenSaveAndNavigateToDisplaySchemaWithNewSchemaInList(); givenEditSchemaPageWhenCancelButtonClickedThenNavigateToDisplaySchema(); givenEditSchemaPageWhenSaveButtonClickedThenUpdateAndNavigateToDisplaySchema(); givenAddSchemaMetadataPageWhenChangeTypeThenVerifyEnableOptions(); givenEditSchemaMetadataPageThenSomeFieldsAreDisable(); givenAddFolderSchemaMetadataPageWhenAddBooleanMetadataThenOk(); givenAddFolderSchemaMetadataPageWhenAddMultivalueTextMetadataThenOk(); givenAddFolderSchemaMetadataPageWhenAddTextMetadataThenOk(); givenAddFolderSchemaMetadataPageWhenAddRichTextBoxMetadataThenOk(); givenAddFolderSchemaMetadataPageWhenAddContentMetadataThenOk(); givenAddFolderSchemaMetadataPageWhenAddBorrowContentMetadataThenOk(); givenAddFolderSchemaMetadataPageWhenAddDateMetadataThenOk(); givenAddFolderSchemaMetadataPageWhenAddDateHourMetadataThenOk(); givenAddFolderSchemaMetadataPageWhenAddReferenceLookupMetadataThenOk(); givenAddFolderSchemaMetadataPageWhenAddReferenceDropDownMetadataThenOk(); givenAddFolderSchemaMetadataPageWhenAddReferenceRadioMetadataThenOk(); givenAddFolderSchemaMetadataPageWhenAddStringMetadataThenOk(); givenAddFolderSchemaMetadataPageWhenAddStringUrlMetadataThenOk(); givenAddFolderSchemaMetadataPageWhenAddNumeroMetadataThenOk(); //TODO Vincent - Les tests suivants ne passent pas sur phantonjs // givenFormDisplayFormPageWhenMoveElementsToOtherColumnThenOk(); // givenFormDisplayFormPageWhenMoveAndElementsToOtherColumnAndCancelThenOk(); // givenFormDisplayFormPageWhenMoveAndElementsToOtherColumnAndSaveThenOk(); // // givenDisplayFormPageWhenMoveElementsToOtherColumnThenOk(); // givenDisplayFormPageWhenMoveAndElementsToOtherColumnAndCancelThenOk(); // givenDisplayFormPageWhenMoveAndElementsToOtherColumnAndSaveThenOk(); // // givenSearchDisplayFormPageWhenMoveElementsToOtherColumnThenOk(); // givenSearchDisplayFormPageWhenMoveAndElementsToOtherColumnAndCancelThenOk(); // givenSearchDisplayFormPageWhenMoveAndElementsToOtherColumnAndSaveThenOk(); //----- } private void givenAddSchemaPageWhenCancelButtonClickedThenNavigateToDisplaySchema() throws Exception { navigateToAddSchemaPage(); addEditSchemaPage.getCodeElement().setValue("schema1"); addEditSchemaPage.getTitleElement().setValue("The schema 1"); addEditSchemaPage.getCancelButton().click(); addEditSchemaPage.waitForPageReload(); assertThat(displaySchemaPage.getTableRows()).hasSize(1); assertThat(displaySchemaPage.getTableRows().get(0).getText()).doesNotContain("The schema 1"); } private void givenAddSchemaPageWhenSaveButtonClickedThenSaveAndNavigateToDisplaySchemaWithNewSchemaInList() { navigateToAddSchemaPage(); addEditSchemaPage.getCodeElement().setValue("schema1"); addEditSchemaPage.getTitleElement().setValue("The schema 1"); addEditSchemaPage.getSaveButton().click(); addEditSchemaPage.waitForPageReload(); assertThat(displaySchemaPage.getTableRows()).hasSize(2); assertThat(displaySchemaPage.getTableRows().get(0).getText()).contains("The schema 1"); } private void givenEditSchemaPageWhenCancelButtonClickedThenNavigateToDisplaySchema() { navigateToEditSchemaPage(); addEditSchemaPage.getTitleElement().setValue("The schema 1 with modified title"); addEditSchemaPage.getCancelButton().click(); addEditSchemaPage.waitForPageReload(); assertThat(displaySchemaPage.getTableRows()).hasSize(2); assertThat(displaySchemaPage.getTableRows().get(0).getText()).doesNotContain("The schema 1 with modified title"); } private void givenEditSchemaPageWhenSaveButtonClickedThenUpdateAndNavigateToDisplaySchema() { navigateToEditSchemaPage(); addEditSchemaPage.getTitleElement().setValue("The schema 1 with modified title"); addEditSchemaPage.getSaveButton().click(); addEditSchemaPage.waitForPageReload(); assertThat(displaySchemaPage.getTableRows()).hasSize(2); assertThat(displaySchemaPage.getTableRows().get(0).getText()).contains("The schema 1 with modified title"); } private void givenAddSchemaMetadataPageWhenChangeTypeThenVerifyEnableOptions() throws Exception { navigateToAddMetadataPage(); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("MetadataValueType.boolean")); assertThat(addEditSchemaMetadataPage.getMultivalueElement().isEnabled()).isFalse(); assertThat(addEditSchemaMetadataPage.getAutocompleteElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getHighlightElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getFacetElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getAdvancedSearchElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getSortableElement().isEnabled()).isFalse(); assertThat(addEditSchemaMetadataPage.getSearchableElement().isEnabled()).isFalse(); assertThat(addEditSchemaMetadataPage.getEnableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEnableElement().isChecked()).isTrue(); assertThat(addEditSchemaMetadataPage.getRequiredElement().isEnabled()).isTrue(); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.text")); assertThat(addEditSchemaMetadataPage.getMultivalueElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getAutocompleteElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getHighlightElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getFacetElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getAdvancedSearchElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getSortableElement().isEnabled()).isFalse(); assertThat(addEditSchemaMetadataPage.getSearchableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEnableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEnableElement().isChecked()).isTrue(); assertThat(addEditSchemaMetadataPage.getRequiredElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEntryElement().getListValues()) .containsOnly($("MetadataInputType.textarea"), $("MetadataInputType.richtxt")); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.content")); assertThat(addEditSchemaMetadataPage.getMultivalueElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getAutocompleteElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getHighlightElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getFacetElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getAdvancedSearchElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getSortableElement().isEnabled()).isFalse(); assertThat(addEditSchemaMetadataPage.getSearchableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEnableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEnableElement().isChecked()).isTrue(); assertThat(addEditSchemaMetadataPage.getRequiredElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEntryElement().getListValues()) .containsOnly($("MetadataInputType.textarea"), $("MetadataInputType.richtxt")); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.date")); assertThat(addEditSchemaMetadataPage.getMultivalueElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getAutocompleteElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getHighlightElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getFacetElement().isEnabled()).isFalse(); assertThat(addEditSchemaMetadataPage.getAdvancedSearchElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getSortableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getSearchableElement().isEnabled()).isFalse(); assertThat(addEditSchemaMetadataPage.getEnableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEnableElement().isChecked()).isTrue(); assertThat(addEditSchemaMetadataPage.getRequiredElement().isEnabled()).isTrue(); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.datetime")); assertThat(addEditSchemaMetadataPage.getMultivalueElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getAutocompleteElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getHighlightElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getFacetElement().isEnabled()).isFalse(); assertThat(addEditSchemaMetadataPage.getAdvancedSearchElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getSortableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getSearchableElement().isEnabled()).isFalse(); assertThat(addEditSchemaMetadataPage.getEnableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEnableElement().isChecked()).isTrue(); assertThat(addEditSchemaMetadataPage.getRequiredElement().isEnabled()).isTrue(); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.reference")); assertThat(addEditSchemaMetadataPage.getMultivalueElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getMultivalueElement().isChecked()) .isFalse(); assertThat(addEditSchemaMetadataPage.getEntryElement().getListValues()) .containsOnly($("MetadataInputType.lookup"), $("MetadataInputType.dropdown"), $("MetadataInputType.radio")); assertThat(addEditSchemaMetadataPage.getAutocompleteElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getHighlightElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getFacetElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getAdvancedSearchElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getSortableElement().isEnabled()).isFalse(); assertThat(addEditSchemaMetadataPage.getSearchableElement().isEnabled()).isFalse(); assertThat(addEditSchemaMetadataPage.getEnableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEnableElement().isChecked()).isTrue(); assertThat(addEditSchemaMetadataPage.getRequiredElement().isEnabled()).isTrue(); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.reference")); addEditSchemaMetadataPage.getMultivalueElement().toggle(); assertThat(addEditSchemaMetadataPage.getMultivalueElement().isChecked()) .isTrue(); assertThat(addEditSchemaMetadataPage.getEntryElement().getListValues()) .containsOnly($("MetadataInputType.lookup"), $("MetadataInputType.dropdown"), $("MetadataInputType.checkboxe")); assertThat(addEditSchemaMetadataPage.getAutocompleteElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getHighlightElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getFacetElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getAdvancedSearchElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getSortableElement().isEnabled()).isFalse(); assertThat(addEditSchemaMetadataPage.getSearchableElement().isEnabled()).isFalse(); assertThat(addEditSchemaMetadataPage.getEnableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEnableElement().isChecked()).isTrue(); assertThat(addEditSchemaMetadataPage.getRequiredElement().isEnabled()).isTrue(); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.string")); // assertThat(addEditSchemaMetadataPage.getEntryElement().getListValues()) // .containsOnly($("MetadataInputType.field"), $("MetadataInputType.url")); // TODO need a fix assertThat(addEditSchemaMetadataPage.getMultivalueElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getAutocompleteElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getHighlightElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getFacetElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getAdvancedSearchElement().isEnabled()).isTrue(); // TODO Investigate why searchable and sortable fields are disabled // assertThat(addEditSchemaMetadataPage.getSortableElement().getEnabled()).isTrue(); // assertThat(addEditSchemaMetadataPage.getSearchableElement().getEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEnableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEnableElement().isChecked()).isTrue(); assertThat(addEditSchemaMetadataPage.getRequiredElement().isEnabled()).isTrue(); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.number")); assertThat(addEditSchemaMetadataPage.getMultivalueElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getAutocompleteElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getHighlightElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getFacetElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getAdvancedSearchElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getSortableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getSearchableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEnableElement().isEnabled()).isTrue(); assertThat(addEditSchemaMetadataPage.getEnableElement().isChecked()).isTrue(); assertThat(addEditSchemaMetadataPage.getRequiredElement().isEnabled()).isTrue(); } private void givenEditSchemaMetadataPageThenSomeFieldsAreDisable() throws Exception { navigateToEditFolderMetadataPage(); assertThat(addEditSchemaMetadataPage.getCodeElement().isEnabled()).isFalse(); assertThat(addEditSchemaMetadataPage.getValueTypeElement().isEnable()).isFalse(); assertThat(addEditSchemaMetadataPage.getMultivalueElement().isEnabled()).isFalse(); } private void givenAddFolderSchemaMetadataPageWhenAddBooleanMetadataThenOk() { navigateToAddFolderMetadataPage(); addEditSchemaMetadataPage.getCodeElement().setValue("booleanMetadata"); addEditSchemaMetadataPage.getTitleElement().setValue("Ze boolean Metadata"); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("MetadataValueType.boolean")); addEditSchemaMetadataPage.getMetadataGroupElement().toggle("Default"); addEditSchemaMetadataPage.getHighlightElement().toggle(); new CheckboxWebElement(addEditSchemaMetadataPage.getDefaultValueElement()).toggle(); addEditSchemaMetadataPage.getSaveButton().click(); addEditSchemaMetadataPage.waitForPageReload(); Metadata metadata = metadataSchemasManager.getSchemaTypes(zeCollection) .getMetadata("folder_default_USRbooleanMetadata"); assertThat(metadata.getLabel(Language.French)).isEqualTo("Ze boolean Metadata"); assertThat(metadata.getDataEntry().getType()).isEqualTo(DataEntryType.MANUAL); assertThat(metadata.getAllowedReferences()).isNull(); assertThat(metadata.getDataStoreCode()).isEqualTo("USRbooleanMetadata_s"); assertThat(metadata.getType()).isEqualTo(MetadataValueType.BOOLEAN); assertThat(metadata.isDefaultRequirement()).isFalse(); assertThat(metadata.isEnabled()).isTrue(); assertThat(metadata.isSystemReserved()).isFalse(); assertThat(metadata.isMultivalue()).isFalse(); assertThat(metadata.isSchemaAutocomplete()).isFalse(); assertThat(metadata.isSearchable()).isFalse(); assertThat(metadata.isSortable()).isFalse(); assertThat(metadata.isTaxonomyRelationship()).isFalse(); assertThat(metadata.isUndeletable()).isFalse(); assertThat(metadata.isUniqueValue()).isFalse(); assertThat(metadata.isUnmodifiable()).isFalse(); assertThat(metadata.inheritDefaultSchema()).isFalse(); assertThat(metadata.getDefaultValue()).isEqualTo(true); } private void givenAddFolderSchemaMetadataPageWhenAddMultivalueTextMetadataThenOk() { navigateToAddFolderMetadataPage(); addEditSchemaMetadataPage.getCodeElement().setValue("multipleTextMetadata"); addEditSchemaMetadataPage.getTitleElement().setValue("Ze multiple text Metadata"); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.text")); addEditSchemaMetadataPage.getMultivalueElement().toggle(); addEditSchemaMetadataPage.getEntryElement().typeAndSelectFirst($("MetadataInputType.textarea")); addEditSchemaMetadataPage.getMetadataGroupElement().toggle("Default"); addEditSchemaMetadataPage.getHighlightElement().toggle(); addEditSchemaMetadataPage.getSaveButton().click(); addEditSchemaMetadataPage.waitForPageReload(); Metadata metadata = metadataSchemasManager.getSchemaTypes(zeCollection) .getMetadata("folder_default_USRmultipleTextMetadata"); assertThat(metadata.getLabel(Language.French)).isEqualTo("Ze multiple text Metadata"); assertThat(metadata.getDataEntry().getType()).isEqualTo(DataEntryType.MANUAL); assertThat(metadata.getAllowedReferences()).isNull(); assertThat(metadata.getDataStoreCode()).isEqualTo("USRmultipleTextMetadata_txt"); assertThat(metadata.getType()).isEqualTo(MetadataValueType.TEXT); assertThat(metadata.isDefaultRequirement()).isFalse(); assertThat(metadata.isEnabled()).isTrue(); assertThat(metadata.isSystemReserved()).isFalse(); assertThat(metadata.isMultivalue()).isTrue(); assertThat(metadata.isSchemaAutocomplete()).isFalse(); assertThat(metadata.isSearchable()).isFalse(); assertThat(metadata.isSortable()).isFalse(); assertThat(metadata.isTaxonomyRelationship()).isFalse(); assertThat(metadata.isUndeletable()).isFalse(); assertThat(metadata.isUniqueValue()).isFalse(); assertThat(metadata.isUnmodifiable()).isFalse(); assertThat(metadata.inheritDefaultSchema()).isFalse(); } private void givenAddFolderSchemaMetadataPageWhenAddTextMetadataThenOk() { navigateToAddFolderMetadataPage(); addEditSchemaMetadataPage.getCodeElement().setValue("textMetadata"); addEditSchemaMetadataPage.getTitleElement().setValue("Ze text Metadata"); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.text")); addEditSchemaMetadataPage.getEntryElement().typeAndSelectFirst($("MetadataInputType.textarea")); addEditSchemaMetadataPage.getMetadataGroupElement().toggle("Default"); addEditSchemaMetadataPage.getRequiredElement().toggle(); addEditSchemaMetadataPage.getFacetElement().toggle(); addEditSchemaMetadataPage.getSearchableElement().toggle(); addEditSchemaMetadataPage.getSaveButton().click(); addEditSchemaMetadataPage.waitForPageReload(); Metadata metadata = metadataSchemasManager.getSchemaTypes(zeCollection) .getMetadata("folder_default_USRtextMetadata"); assertThat(metadata.getLabel(Language.French)).isEqualTo("Ze text Metadata"); assertThat(metadata.getDataEntry().getType()).isEqualTo(DataEntryType.MANUAL); assertThat(metadata.getAllowedReferences()).isNull(); assertThat(metadata.getDataStoreCode()).isEqualTo("USRtextMetadata_t"); assertThat(metadata.getType()).isEqualTo(MetadataValueType.TEXT); assertThat(metadata.isDefaultRequirement()).isTrue(); assertThat(metadata.isEnabled()).isTrue(); assertThat(metadata.isSystemReserved()).isFalse(); assertThat(metadata.isMultivalue()).isFalse(); assertThat(metadata.isSchemaAutocomplete()).isFalse(); assertThat(metadata.isSearchable()).isTrue(); assertThat(metadata.isSortable()).isFalse(); assertThat(metadata.isTaxonomyRelationship()).isFalse(); } private void givenAddFolderSchemaMetadataPageWhenAddRichTextBoxMetadataThenOk() { navigateToAddFolderMetadataPage(); addEditSchemaMetadataPage.getCodeElement().setValue("richTextMetadata"); addEditSchemaMetadataPage.getTitleElement().setValue("Ze rich text box Metadata"); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.text")); addEditSchemaMetadataPage.getMultivalueElement().toggle(); addEditSchemaMetadataPage.getEntryElement().typeAndSelectFirst($("MetadataInputType.richtxt")); addEditSchemaMetadataPage.getMetadataGroupElement().toggle("Default"); addEditSchemaMetadataPage.getRequiredElement().toggle(); addEditSchemaMetadataPage.getFacetElement().toggle(); addEditSchemaMetadataPage.getSearchableElement().toggle(); addEditSchemaMetadataPage.getSaveButton().click(); addEditSchemaMetadataPage.waitForPageReload(); Metadata metadata = metadataSchemasManager.getSchemaTypes(zeCollection) .getMetadata("folder_default_USRrichTextMetadata"); assertThat(metadata.getLabel(Language.French)).isEqualTo("Ze rich text box Metadata"); assertThat(metadata.getDataEntry().getType()).isEqualTo(DataEntryType.MANUAL); assertThat(metadata.getAllowedReferences()).isNull(); assertThat(metadata.getDataStoreCode()).isEqualTo("USRrichTextMetadata_txt"); assertThat(metadata.getType()).isEqualTo(MetadataValueType.TEXT); assertThat(metadata.isDefaultRequirement()).isTrue(); assertThat(metadata.isEnabled()).isTrue(); assertThat(metadata.isSystemReserved()).isFalse(); assertThat(metadata.isMultivalue()).isTrue(); assertThat(metadata.isSchemaAutocomplete()).isFalse(); assertThat(metadata.isSearchable()).isTrue(); assertThat(metadata.isSortable()).isFalse(); assertThat(metadata.isTaxonomyRelationship()).isFalse(); } private void givenAddFolderSchemaMetadataPageWhenAddContentMetadataThenOk() { navigateToAddFolderMetadataPage(); addEditSchemaMetadataPage.getCodeElement().setValue("contentMetadata"); addEditSchemaMetadataPage.getTitleElement().setValue("Ze content Metadata"); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.content")); addEditSchemaMetadataPage.getMultivalueElement().toggle(); addEditSchemaMetadataPage.getEntryElement().typeAndSelectFirst($("MetadataValueType.content")); addEditSchemaMetadataPage.getMetadataGroupElement().toggle("Default"); addEditSchemaMetadataPage.getRequiredElement().toggle(); addEditSchemaMetadataPage.getFacetElement().toggle(); addEditSchemaMetadataPage.getSearchableElement().toggle(); addEditSchemaMetadataPage.getSaveButton().click(); addEditSchemaMetadataPage.waitForPageReload(); Metadata metadata = metadataSchemasManager.getSchemaTypes(zeCollection) .getMetadata("folder_default_USRcontentMetadata"); assertThat(metadata.getLabel(Language.French)).isEqualTo("Ze content Metadata"); assertThat(metadata.getDataEntry().getType()).isEqualTo(DataEntryType.MANUAL); assertThat(metadata.getAllowedReferences()).isNull(); assertThat(metadata.getDataStoreCode()).isEqualTo("USRcontentMetadata_ss"); assertThat(metadata.getType()).isEqualTo(MetadataValueType.CONTENT); assertThat(metadata.isDefaultRequirement()).isTrue(); assertThat(metadata.isEnabled()).isTrue(); assertThat(metadata.isSystemReserved()).isFalse(); assertThat(metadata.isMultivalue()).isTrue(); assertThat(metadata.isSchemaAutocomplete()).isFalse(); assertThat(metadata.isSearchable()).isTrue(); assertThat(metadata.isSortable()).isFalse(); assertThat(metadata.isTaxonomyRelationship()).isFalse(); } private void givenAddFolderSchemaMetadataPageWhenAddBorrowContentMetadataThenOk() { navigateToAddFolderMetadataPage(); addEditSchemaMetadataPage.getCodeElement().setValue("borrowContentMetadata"); addEditSchemaMetadataPage.getTitleElement().setValue("Ze content to borrow Metadata"); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.content")); addEditSchemaMetadataPage.getMultivalueElement().toggle(); addEditSchemaMetadataPage.getEntryElement().typeAndSelectFirst($("MetadataInputType.contentcheck")); addEditSchemaMetadataPage.getMetadataGroupElement().toggle("Default"); addEditSchemaMetadataPage.getRequiredElement().toggle(); addEditSchemaMetadataPage.getFacetElement().toggle(); addEditSchemaMetadataPage.getSearchableElement().toggle(); addEditSchemaMetadataPage.getSaveButton().click(); addEditSchemaMetadataPage.waitForPageReload(); Metadata metadata = metadataSchemasManager.getSchemaTypes(zeCollection) .getMetadata("folder_default_USRborrowContentMetadata"); assertThat(metadata.getLabel(Language.French)).isEqualTo("Ze content to borrow Metadata"); assertThat(metadata.getDataEntry().getType()).isEqualTo(DataEntryType.MANUAL); assertThat(metadata.getAllowedReferences()).isNull(); assertThat(metadata.getDataStoreCode()).isEqualTo("USRborrowContentMetadata_ss"); assertThat(metadata.getType()).isEqualTo(MetadataValueType.CONTENT); assertThat(metadata.isDefaultRequirement()).isTrue(); assertThat(metadata.isEnabled()).isTrue(); assertThat(metadata.isSystemReserved()).isFalse(); assertThat(metadata.isMultivalue()).isTrue(); assertThat(metadata.isSchemaAutocomplete()).isFalse(); assertThat(metadata.isSearchable()).isTrue(); assertThat(metadata.isSortable()).isFalse(); assertThat(metadata.isTaxonomyRelationship()).isFalse(); } private void givenAddFolderSchemaMetadataPageWhenAddDateMetadataThenOk() { navigateToAddFolderMetadataPage(); addEditSchemaMetadataPage.getCodeElement().setValue("dateMetadata"); addEditSchemaMetadataPage.getTitleElement().setValue("Ze date Metadata"); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.date")); addEditSchemaMetadataPage.getMetadataGroupElement().toggle("Default"); addEditSchemaMetadataPage.getRequiredElement().toggle(); addEditSchemaMetadataPage.getFacetElement().toggle(); new DateFieldWebElement(addEditSchemaMetadataPage.getDefaultValueElement()).setValue(dateTime(4, 10, 2014).toLocalDate()); addEditSchemaMetadataPage.getSaveButton().click(); addEditSchemaMetadataPage.waitForPageReload(); Metadata metadata = metadataSchemasManager.getSchemaTypes(zeCollection) .getMetadata("folder_default_USRdateMetadata"); assertThat(metadata.getLabel(Language.French)).isEqualTo("Ze date Metadata"); assertThat(metadata.getDataEntry().getType()).isEqualTo(DataEntryType.MANUAL); assertThat(metadata.getAllowedReferences()).isNull(); assertThat(metadata.getDataStoreCode()).isEqualTo("USRdateMetadata_da"); assertThat(metadata.getType()).isEqualTo(MetadataValueType.DATE); assertThat(metadata.isDefaultRequirement()).isTrue(); assertThat(metadata.isEnabled()).isTrue(); assertThat(metadata.isSystemReserved()).isFalse(); assertThat(metadata.isMultivalue()).isFalse(); assertThat(metadata.isSchemaAutocomplete()).isFalse(); assertThat(metadata.isSearchable()).isFalse(); assertThat(metadata.isSortable()).isFalse(); assertThat(metadata.isTaxonomyRelationship()).isFalse(); assertThat(metadata.getDefaultValue()).isEqualTo(dateTime(4, 10, 2014).toLocalDate()); } private void givenAddFolderSchemaMetadataPageWhenAddDateHourMetadataThenOk() { navigateToAddFolderMetadataPage(); addEditSchemaMetadataPage.getCodeElement().setValue("dateHourMetadata"); addEditSchemaMetadataPage.getTitleElement().setValue("Ze date hour Metadata"); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.datetime")); addEditSchemaMetadataPage.getMetadataGroupElement().toggle("Default"); addEditSchemaMetadataPage.getRequiredElement().toggle(); addEditSchemaMetadataPage.getFacetElement().toggle(); new DateTimeFieldWebElement(addEditSchemaMetadataPage.getDefaultValueElement()).setValue(dateTime(4, 10, 2014)); addEditSchemaMetadataPage.getSaveButton().click(); addEditSchemaMetadataPage.waitForPageReload(); Metadata metadata = metadataSchemasManager.getSchemaTypes(zeCollection) .getMetadata("folder_default_USRdateHourMetadata"); assertThat(metadata.getLabel(Language.French)).isEqualTo("Ze date hour Metadata"); assertThat(metadata.getDataEntry().getType()).isEqualTo(DataEntryType.MANUAL); assertThat(metadata.getAllowedReferences()).isNull(); assertThat(metadata.getDataStoreCode()).isEqualTo("USRdateHourMetadata_dt"); assertThat(metadata.getType()).isEqualTo(MetadataValueType.DATE_TIME); assertThat(metadata.isDefaultRequirement()).isTrue(); assertThat(metadata.isEnabled()).isTrue(); assertThat(metadata.isSystemReserved()).isFalse(); assertThat(metadata.isMultivalue()).isFalse(); assertThat(metadata.isSchemaAutocomplete()).isFalse(); assertThat(metadata.isSearchable()).isFalse(); assertThat(metadata.isSortable()).isFalse(); assertThat(metadata.isTaxonomyRelationship()).isFalse(); assertThat(metadata.getDefaultValue()).isEqualTo(dateTime(4, 10, 2014)); } private void givenAddFolderSchemaMetadataPageWhenAddReferenceLookupMetadataThenOk() throws Exception { navigateToAddFolderMetadataPage(); addEditSchemaMetadataPage.getCodeElement().setValue("referenceMetadata"); addEditSchemaMetadataPage.getTitleElement().setValue("Ze reference Metadata"); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst( $("AddEditMetadataView.type.reference")); addEditSchemaMetadataPage.getEntryElement().typeAndSelectFirst($("MetadataInputType.lookup")); addEditSchemaMetadataPage.getMetadataGroupElement().toggle("Default"); addEditSchemaMetadataPage.getReferenceElement().typeAndSelectFirst("Unité administrative"); addEditSchemaMetadataPage.getRequiredElement().toggle(); addEditSchemaMetadataPage.getFacetElement().toggle(); addEditSchemaMetadataPage.getAutocompleteElement().toggle(); new LookupWebElement(addEditSchemaMetadataPage.getDefaultValueElement()).listTypeAndSelectFirst("un"); addEditSchemaMetadataPage.getSaveButton().click(); addEditSchemaMetadataPage.waitForPageReload(); Metadata metadata = metadataSchemasManager.getSchemaTypes(zeCollection) .getMetadata("folder_default_USRreferenceMetadata"); assertThat(metadata.getLabel(Language.French)).isEqualTo("Ze reference Metadata"); assertThat(metadata.getDataEntry().getType()).isEqualTo(DataEntryType.MANUAL); assertThat(metadata.getAllowedReferences().getAllowedSchemaType()).isEqualTo("administrativeUnit"); assertThat(metadata.getDataStoreCode()).isEqualTo("USRreferenceMetadataId_s"); assertThat(metadata.getType()).isEqualTo(MetadataValueType.REFERENCE); assertThat(metadata.isDefaultRequirement()).isTrue(); assertThat(metadata.isEnabled()).isTrue(); assertThat(metadata.isSystemReserved()).isFalse(); assertThat(metadata.isMultivalue()).isFalse(); assertThat(metadata.isSchemaAutocomplete()).isTrue(); assertThat(metadata.isSearchable()).isFalse(); assertThat(metadata.isSortable()).isFalse(); assertThat(metadata.isTaxonomyRelationship()).isTrue(); assertThat(metadata.isChildOfRelationship()).isFalse(); Record record = record((String) metadata.getDefaultValue()); assertThat(record.getSchemaCode()).isEqualTo(AdministrativeUnit.DEFAULT_SCHEMA); } private void givenAddFolderSchemaMetadataPageWhenAddReferenceDropDownMetadataThenOk() { navigateToAddFolderMetadataPage(); addEditSchemaMetadataPage.getCodeElement().setValue("referenceDropDownMetadata"); addEditSchemaMetadataPage.getTitleElement().setValue("Ze reference DropDown Metadata"); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.reference")); addEditSchemaMetadataPage.getEntryElement().typeAndSelectFirst($("MetadataInputType.dropdown")); addEditSchemaMetadataPage.getMetadataGroupElement().toggle("Default"); addEditSchemaMetadataPage.getReferenceElement().listTypeAndSelectFirst("Unité administrative"); addEditSchemaMetadataPage.getRequiredElement().toggle(); addEditSchemaMetadataPage.getFacetElement().toggle(); new LookupWebElement(addEditSchemaMetadataPage.getDefaultValueElement()).typeAndSelectFirst("un"); addEditSchemaMetadataPage.getSaveButton().click(); addEditSchemaMetadataPage.waitForPageReload(); Metadata metadata = metadataSchemasManager.getSchemaTypes(zeCollection) .getMetadata("folder_default_USRreferenceDropDownMetadata"); assertThat(metadata.getLabel(Language.French)).isEqualTo("Ze reference DropDown Metadata"); assertThat(metadata.getDataEntry().getType()).isEqualTo(DataEntryType.MANUAL); assertThat(metadata.getAllowedReferences().getAllowedSchemaType()).isEqualTo("administrativeUnit"); assertThat(metadata.getDataStoreCode()).isEqualTo("USRreferenceDropDownMetadataId_s"); assertThat(metadata.getType()).isEqualTo(MetadataValueType.REFERENCE); assertThat(metadata.isDefaultRequirement()).isTrue(); assertThat(metadata.isEnabled()).isTrue(); assertThat(metadata.isSystemReserved()).isFalse(); assertThat(metadata.isMultivalue()).isFalse(); assertThat(metadata.isSchemaAutocomplete()).isFalse(); assertThat(metadata.isSearchable()).isFalse(); assertThat(metadata.isSortable()).isFalse(); assertThat(metadata.isTaxonomyRelationship()).isTrue(); assertThat(metadata.isChildOfRelationship()).isFalse(); Record record = record((String) metadata.getDefaultValue()); assertThat(record.getSchemaCode()).isEqualTo(AdministrativeUnit.DEFAULT_SCHEMA); } private void givenAddFolderSchemaMetadataPageWhenAddReferenceRadioMetadataThenOk() { navigateToAddFolderMetadataPage(); addEditSchemaMetadataPage.getCodeElement().setValue("referenceRadioMetadata"); addEditSchemaMetadataPage.getTitleElement().setValue("Ze reference Radio Metadata"); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.reference")); addEditSchemaMetadataPage.getEntryElement().typeAndSelectFirst($("MetadataInputType.radio")); addEditSchemaMetadataPage.getMetadataGroupElement().toggle("Default"); addEditSchemaMetadataPage.getReferenceElement().listTypeAndSelectFirst("Unité administrative"); addEditSchemaMetadataPage.getRequiredElement().toggle(); addEditSchemaMetadataPage.getFacetElement().toggle(); new LookupWebElement(addEditSchemaMetadataPage.getDefaultValueElement()).typeAndSelectFirst("un"); addEditSchemaMetadataPage.getSaveButton().click(); addEditSchemaMetadataPage.waitForPageReload(); Metadata metadata = metadataSchemasManager.getSchemaTypes(zeCollection) .getMetadata("folder_default_USRreferenceRadioMetadata"); assertThat(metadata.getLabel(Language.French)).isEqualTo("Ze reference Radio Metadata"); assertThat(metadata.getDataEntry().getType()).isEqualTo(DataEntryType.MANUAL); assertThat(metadata.getAllowedReferences().getAllowedSchemaType()).isEqualTo("administrativeUnit"); assertThat(metadata.getDataStoreCode()).isEqualTo("USRreferenceRadioMetadataId_s"); assertThat(metadata.getType()).isEqualTo(MetadataValueType.REFERENCE); assertThat(metadata.isDefaultRequirement()).isTrue(); assertThat(metadata.isEnabled()).isTrue(); assertThat(metadata.isSystemReserved()).isFalse(); assertThat(metadata.isMultivalue()).isFalse(); assertThat(metadata.isSchemaAutocomplete()).isFalse(); assertThat(metadata.isSearchable()).isFalse(); assertThat(metadata.isSortable()).isFalse(); assertThat(metadata.isTaxonomyRelationship()).isTrue(); assertThat(metadata.isChildOfRelationship()).isFalse(); Record record = record((String) metadata.getDefaultValue()); assertThat(record.getSchemaCode()).isEqualTo(AdministrativeUnit.DEFAULT_SCHEMA); } private void givenAddFolderSchemaMetadataPageWhenAddStringMetadataThenOk() { navigateToAddFolderMetadataPage(); addEditSchemaMetadataPage.getCodeElement().setValue("stringMetadata"); addEditSchemaMetadataPage.getTitleElement().setValue("Ze string Metadata"); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst($("AddEditMetadataView.type.string")); addEditSchemaMetadataPage.getMultivalueElement().toggle(); addEditSchemaMetadataPage.getEntryElement().typeAndSelectFirst($("MetadataInputType.field")); addEditSchemaMetadataPage.getMetadataGroupElement().toggle("Default"); addEditSchemaMetadataPage.getRequiredElement().toggle(); new ListAddRemoveTextFieldWebElement(addEditSchemaMetadataPage.getDefaultValueElement()).add("Default value1"); new ListAddRemoveTextFieldWebElement(addEditSchemaMetadataPage.getDefaultValueElement()).add("Default value2"); addEditSchemaMetadataPage.getSaveButton().click(); addEditSchemaMetadataPage.waitForPageReload(); Metadata metadata = metadataSchemasManager.getSchemaTypes(zeCollection) .getMetadata("folder_default_USRstringMetadata"); assertThat(metadata.getLabel(Language.French)).isEqualTo("Ze string Metadata"); assertThat(metadata.getDataEntry().getType()).isEqualTo(DataEntryType.MANUAL); assertThat(metadata.getAllowedReferences()).isNull(); assertThat(metadata.getDataStoreCode()).isEqualTo("USRstringMetadata_ss"); assertThat(metadata.getType()).isEqualTo(MetadataValueType.STRING); assertThat(metadata.isDefaultRequirement()).isTrue(); assertThat(metadata.isEnabled()).isTrue(); assertThat(metadata.isSystemReserved()).isFalse(); assertThat(metadata.isMultivalue()).isTrue(); assertThat(metadata.isSchemaAutocomplete()).isFalse(); assertThat(metadata.isSearchable()).isFalse(); assertThat(metadata.isSortable()).isFalse(); assertThat(metadata.isTaxonomyRelationship()).isFalse(); assertThat(metadata.isChildOfRelationship()).isFalse(); assertThat((List) metadata.getDefaultValue()).containsOnly("Default value1", "Default value2"); } private void givenAddFolderSchemaMetadataPageWhenAddStringUrlMetadataThenOk() { navigateToAddFolderMetadataPage(); addEditSchemaMetadataPage.getCodeElement().setValue("stringURLMetadata"); addEditSchemaMetadataPage.getTitleElement().setValue("Ze string URL Metadata"); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst("Chaîne de caractères"); addEditSchemaMetadataPage.getMultivalueElement().toggle(); addEditSchemaMetadataPage.getEntryElement().typeAndSelectFirst("URL"); addEditSchemaMetadataPage.getMetadataGroupElement().toggle("Default"); addEditSchemaMetadataPage.getRequiredElement().toggle(); new ListAddRemoveTextFieldWebElement(addEditSchemaMetadataPage.getDefaultValueElement()).add("Default value1"); new ListAddRemoveTextFieldWebElement(addEditSchemaMetadataPage.getDefaultValueElement()).add("Default value2"); addEditSchemaMetadataPage.getSaveButton().click(); addEditSchemaMetadataPage.waitForPageReload(); Metadata metadata = metadataSchemasManager.getSchemaTypes(zeCollection) .getMetadata("folder_default_USRstringURLMetadata"); assertThat(metadata.getLabel(Language.French)).isEqualTo("Ze string URL Metadata"); assertThat(metadata.getDataEntry().getType()).isEqualTo(DataEntryType.MANUAL); assertThat(metadata.getAllowedReferences()).isNull(); assertThat(metadata.getDataStoreCode()).isEqualTo("USRstringURLMetadata_ss"); assertThat(metadata.getType()).isEqualTo(MetadataValueType.STRING); assertThat(metadata.isDefaultRequirement()).isTrue(); assertThat(metadata.isEnabled()).isTrue(); assertThat(metadata.isSystemReserved()).isFalse(); assertThat(metadata.isMultivalue()).isTrue(); assertThat(metadata.isSchemaAutocomplete()).isFalse(); assertThat(metadata.isSearchable()).isFalse(); assertThat(metadata.isSortable()).isFalse(); assertThat(metadata.isTaxonomyRelationship()).isFalse(); assertThat(metadata.isChildOfRelationship()).isFalse(); assertThat((List) metadata.getDefaultValue()).containsOnly("Default value1", "Default value2"); } private void givenAddFolderSchemaMetadataPageWhenAddNumeroMetadataThenOk() { navigateToAddFolderMetadataPage(); addEditSchemaMetadataPage.getCodeElement().setValue("numeroMetadata"); addEditSchemaMetadataPage.getTitleElement().setValue("Ze numéro Metadata"); addEditSchemaMetadataPage.getValueTypeElement().typeAndSelectFirst("Numéro"); addEditSchemaMetadataPage.getMetadataGroupElement().toggle("Default"); addEditSchemaMetadataPage.getRequiredElement().toggle(); new TextFieldWebElement(addEditSchemaMetadataPage.getDefaultValueElement()).setValue("3"); addEditSchemaMetadataPage.getSaveButton().click(); addEditSchemaMetadataPage.waitForPageReload(); Metadata metadata = metadataSchemasManager.getSchemaTypes(zeCollection) .getMetadata("folder_default_USRnumeroMetadata"); assertThat(metadata.getLabel(Language.French)).isEqualTo("Ze numéro Metadata"); assertThat(metadata.getDataEntry().getType()).isEqualTo(DataEntryType.MANUAL); assertThat(metadata.getAllowedReferences()).isNull(); assertThat(metadata.getDataStoreCode()).isEqualTo("USRnumeroMetadata_d"); assertThat(metadata.getType()).isEqualTo(MetadataValueType.NUMBER); assertThat(metadata.isDefaultRequirement()).isTrue(); assertThat(metadata.isEnabled()).isTrue(); assertThat(metadata.isSystemReserved()).isFalse(); assertThat(metadata.isMultivalue()).isFalse(); assertThat(metadata.isSchemaAutocomplete()).isFalse(); assertThat(metadata.isSearchable()).isFalse(); assertThat(metadata.isSortable()).isFalse(); assertThat(metadata.isTaxonomyRelationship()).isFalse(); assertThat(metadata.isChildOfRelationship()).isFalse(); assertThat(metadata.getDefaultValue()).isEqualTo(3.0); } private void givenFormDisplayFormPageWhenMoveElementsToOtherColumnThenOk() throws Exception { navigateToPage(NavigatorConfigurationService.FORM_DISPLAY_FORM); assertThatMoveElementsIsOk(); } private void givenFormDisplayFormPageWhenMoveAndElementsToOtherColumnAndCancelThenOk() throws Exception { navigateToPage(NavigatorConfigurationService.FORM_DISPLAY_FORM); assertThatWhenCancelButtonClickedIsOk(); } private void givenFormDisplayFormPageWhenMoveAndElementsToOtherColumnAndSaveThenOk() throws Exception { navigateToPage(NavigatorConfigurationService.FORM_DISPLAY_FORM); assertThatWhenSaveThenOkInPage(NavigatorConfigurationService.FORM_DISPLAY_FORM); } private void givenDisplayFormPageWhenMoveElementsToOtherColumnThenOk() throws Exception { navigateToPage(NavigatorConfigurationService.EDIT_DISPLAY_FORM); assertThatMoveElementsIsOk(); } private void givenDisplayFormPageWhenMoveAndElementsToOtherColumnAndCancelThenOk() throws Exception { navigateToPage(NavigatorConfigurationService.EDIT_DISPLAY_FORM); assertThatWhenCancelButtonClickedIsOk(); } private void givenDisplayFormPageWhenMoveAndElementsToOtherColumnAndSaveThenOk() throws Exception { navigateToPage(NavigatorConfigurationService.EDIT_DISPLAY_FORM); assertThatWhenSaveThenOkInPage(NavigatorConfigurationService.EDIT_DISPLAY_FORM); } private void givenSearchDisplayFormPageWhenMoveElementsToOtherColumnThenOk() throws Exception { navigateToPage(NavigatorConfigurationService.SEARCH_DISPLAY_FORM); assertThatMoveElementsIsOk(); } private void givenSearchDisplayFormPageWhenMoveAndElementsToOtherColumnAndCancelThenOk() throws Exception { navigateToPage(NavigatorConfigurationService.SEARCH_DISPLAY_FORM); assertThatWhenCancelButtonClickedIsOk(); } private void givenSearchDisplayFormPageWhenMoveAndElementsToOtherColumnAndSaveThenOk() throws Exception { navigateToPage(NavigatorConfigurationService.SEARCH_DISPLAY_FORM); assertThatWhenSaveThenOkInPage(NavigatorConfigurationService.SEARCH_DISPLAY_FORM); } //----------Utils------------- private void assertThatWhenSaveThenOkInPage(String page) { String text1 = formDisplaySearchPage.getOptionsElement().getOptions().get(0).getText(); formDisplaySearchPage.getOptionsElement().selectByIndex(0); formDisplaySearchPage.getAddButtonElement().click(); formDisplaySearchPage.getSaveButton().click(); navigateToPage(page); int lastIndex = formDisplaySearchPage.getSelectionsElement().getOptions().size() - 1; assertThat(formDisplaySearchPage.getSelectionsElement().getOptions().get(lastIndex).getText()) .isEqualTo(text1); } private void assertThatWhenCancelButtonClickedIsOk() { formDisplaySearchPage.getOptionsElement().selectByIndex(0); formDisplaySearchPage.getAddButtonElement().click(); formDisplaySearchPage.getCancelButton().click(); //TODO fix cancel back page // assertThat(driver.getCurrentPage()).isEqualTo( // NavigatorConfigurationService.FORM_DISPLAY_FORM + "/schemaTypeCode%253Dfolder%253BschemaCode%253Dfolder_default"); } private void assertThatMoveElementsIsOk() { String text1 = formDisplaySearchPage.getOptionsElement().getOptions().get(0).getText(); String text2 = formDisplaySearchPage.getOptionsElement().getOptions().get(2).getText(); formDisplaySearchPage.getOptionsElement().selectByIndex(0); formDisplaySearchPage.getOptionsElement().selectByIndex(2); driver.waitForCondition(new ConditionWithTimeout() { @Override protected boolean evaluate() { System.out.println(formDisplaySearchPage.getAddButtonElement().isEnabled()); return formDisplaySearchPage.getAddButtonElement().isEnabled(); } }, 2000); formDisplaySearchPage.getAddButtonElement().click(); int lastIndex = formDisplaySearchPage.getSelectionsElement().getOptions().size() - 1; System.out.println(formDisplaySearchPage.getOptionsElement().getOptions().size()); System.out.println(formDisplaySearchPage.getSelectionsElement().getOptions().size()); assertThat(formDisplaySearchPage.getSelectionsElement().getOptions().get(lastIndex - 1).getText()) .isEqualTo(text1); assertThat(formDisplaySearchPage.getSelectionsElement().getOptions().get(lastIndex).getText()) .isEqualTo(text2); formDisplaySearchPage.getSelectionsElement().selectByIndex(lastIndex - 1); formDisplaySearchPage.getSelectionsElement().selectByIndex(lastIndex); formDisplaySearchPage.getUpButtonElement().click(); formDisplaySearchPage.getDownButtonElement().click(); formDisplaySearchPage.getUpButtonElement().click(); assertThat(formDisplaySearchPage.getSelectionsElement().getOptions().get(lastIndex - 2).getText()) .isEqualTo(text1); assertThat(formDisplaySearchPage.getSelectionsElement().getOptions().get(lastIndex - 1).getText()) .isEqualTo(text2); formDisplaySearchPage.getSelectionsElement().selectByIndex(lastIndex - 1); formDisplaySearchPage.getSelectionsElement().selectByIndex(lastIndex - 2); formDisplaySearchPage.getRemoveButtonElement().click(); assertThat(formDisplaySearchPage.getOptionsElement().getOptions().get(0).getText()) .isEqualTo(text1); assertThat(formDisplaySearchPage.getOptionsElement().getOptions().get(2).getText()) .isEqualTo(text2); } private void navigateToAddSchemaPage() { displaySchemaPage.navigateToDisplaySchemaFolderPage(); displaySchemaPage.getAddButton().click(); displaySchemaPage.waitForPageReload(); } private void navigateToEditSchemaPage() { displaySchemaPage.navigateToDisplaySchemaFolderPage(); displaySchemaPage.getEditButtonOnIndex(0).click(); displaySchemaPage.waitForPageReload(); } private void navigateToAddMetadataPage() { navigateToEditFolderSchemaMetadataPage(1); clickAddMetadataButton(); } private void navigateToEditFolderMetadataPage() { navigateToEditFolderSchemaMetadataPage(6); addEditSchemaMetadataPage.getEditButtonOnIndex(0).click(); addEditSchemaMetadataPage.waitForPageReload(); } private void navigateToAddFolderMetadataPage() { navigateToEditFolderSchemaMetadataPage(6); clickAddMetadataButton(); } private void navigateToPage(String page) { if (page.equals(NavigatorConfigurationService.FORM_DISPLAY_FORM)) { navigateToEditFolderSchemaMetadataPage(7); } else if (page.equals(NavigatorConfigurationService.EDIT_DISPLAY_FORM)) { navigateToEditFolderSchemaMetadataPage(8); } else if (page.equals(NavigatorConfigurationService.SEARCH_DISPLAY_FORM)) { navigateToEditFolderSchemaMetadataPage(9); } else { throw new UnsupportedOperationException("Invalid page"); } } private void clickAddMetadataButton() { addEditSchemaMetadataPage.getAddButton().clickAndWaitForPageReload(); // addEditSchemaMetadataPage.waitForPageReload(); } private void navigateToEditFolderSchemaMetadataPage(int index) { displaySchemaPage.navigateToDisplaySchemaFolderPage(); displaySchemaPage.getEditButtonOnIndex(index).clickAndWaitForPageReload(); // displaySchemaPage.waitForPageReload(); } }