use of com.enonic.xp.form.Form in project xp by enonic.
the class FormDefaultValuesProcessorImplTest method defaultValue_checkbox.
@Test
public void defaultValue_checkbox() {
Input input = Input.create().name("testInput").label("testInput").inputType(InputTypeName.CHECK_BOX).defaultValue(InputTypeDefault.create().property(InputTypeProperty.create("default", "checked").build()).build()).build();
final Form form = Form.create().addFormItem(input).build();
final FormDefaultValuesProcessor defaultValuesProcessor = new FormDefaultValuesProcessorImpl();
final PropertyTree data = new PropertyTree();
defaultValuesProcessor.setDefaultValues(form, data);
assertTrue(data.getString("testInput").equals("true"));
}
use of com.enonic.xp.form.Form in project xp by enonic.
the class FormDefaultValuesProcessorImplTest method testItemSetWithMinOccurrencesGreaterMoreZero.
@Test
public void testItemSetWithMinOccurrencesGreaterMoreZero() {
FormItemSet.Builder itemSet = FormItemSet.create().name("rootItemSet").occurrences(Occurrences.create(1, 3));
itemSet.addFormItem(FormItemSet.create().name("childItemSet-1").occurrences(Occurrences.create(1, 3)).addFormItem(FormItemSet.create().name("childItemSet-2").occurrences(Occurrences.create(0, 1)).addFormItem(Input.create().name("testInput").label("testInput").inputType(InputTypeName.TEXT_LINE).build()).build()).addFormItem(Input.create().name("testInput").label("testInput").inputType(InputTypeName.TEXT_LINE).defaultValue(InputTypeDefault.create().property(InputTypeProperty.create("default", "Default Value").build()).build()).build()).build());
final Form form = Form.create().addFormItem(itemSet.build()).build();
final FormDefaultValuesProcessor defaultValuesProcessor = new FormDefaultValuesProcessorImpl();
final PropertyTree data = new PropertyTree();
defaultValuesProcessor.setDefaultValues(form, data);
assertEquals(3, data.getTotalSize());
assertNotNull(data.getProperty("rootItemSet"));
assertNotNull(data.getProperty("rootItemSet.childItemSet-1"));
assertNotNull(data.getProperty("rootItemSet.childItemSet-1.testInput"));
}
use of com.enonic.xp.form.Form in project xp by enonic.
the class FormDefaultValuesProcessorImplTest method testItemSetWithMinOccurrencesMoreEqualZero.
@Test
public void testItemSetWithMinOccurrencesMoreEqualZero() {
FormItemSet.Builder checkItemSet = FormItemSet.create().name("checkItemSet").occurrences(Occurrences.create(0, 3));
Input input = Input.create().name("testInput").label("testInput").inputType(InputTypeName.TEXT_LINE).defaultValue(InputTypeDefault.create().property(InputTypeProperty.create("default", "Default Value").build()).build()).occurrences(Occurrences.create(3, 3)).build();
checkItemSet.addFormItem(input);
final Form form = Form.create().addFormItem(checkItemSet.build()).build();
final FormDefaultValuesProcessor defaultValuesProcessor = new FormDefaultValuesProcessorImpl();
final PropertyTree data = new PropertyTree();
defaultValuesProcessor.setDefaultValues(form, data);
assertEquals(0, data.getTotalSize());
}
use of com.enonic.xp.form.Form in project xp by enonic.
the class MixinServiceImplTest method testInlineMixinsWithCycles.
@Test
public void testInlineMixinsWithCycles() {
initializeApps();
final Form form = Form.create().addFormItem(Input.create().name("my_input").label("Input").inputType(InputTypeName.TEXT_LINE).build()).addFormItem(InlineMixin.create().mixin("myapp2:inline1").build()).build();
try {
service.inlineFormItems(form);
fail("Expected exception due to cycle in mixins");
} catch (IllegalArgumentException e) {
assertEquals("Cycle detected in mixin [myapp2:inline1]. It contains an inline mixin that references itself.", e.getMessage());
}
}
use of com.enonic.xp.form.Form in project xp by enonic.
the class AbstractContentServiceTest method setUpAbstractContentServiceTest.
@BeforeEach
public void setUpAbstractContentServiceTest() {
executorService = Executors.newSingleThreadExecutor();
deleteAllIndices();
ContextAccessor.INSTANCE.set(ctxDefault());
final MemoryBlobStore blobStore = new MemoryBlobStore();
binaryService = new BinaryServiceImpl();
binaryService.setBlobStore(blobStore);
final StorageDaoImpl storageDao = new StorageDaoImpl();
storageDao.setClient(client);
final EventPublisherImpl eventPublisher = new EventPublisherImpl(executorService);
SearchDaoImpl searchDao = new SearchDaoImpl();
searchDao.setClient(client);
BranchServiceImpl branchService = new BranchServiceImpl();
branchService.setStorageDao(storageDao);
branchService.setSearchDao(searchDao);
VersionServiceImpl versionService = new VersionServiceImpl();
versionService.setStorageDao(storageDao);
CommitServiceImpl commitService = new CommitServiceImpl();
commitService.setStorageDao(storageDao);
IndexServiceInternalImpl indexServiceInternal = new IndexServiceInternalImpl();
indexServiceInternal.setClient(client);
indexService = new IndexServiceImpl();
indexService.setIndexServiceInternal(indexServiceInternal);
NodeVersionServiceImpl nodeDao = new NodeVersionServiceImpl();
nodeDao.setBlobStore(blobStore);
IndexDataServiceImpl indexedDataService = new IndexDataServiceImpl();
indexedDataService.setStorageDao(storageDao);
NodeStorageServiceImpl storageService = new NodeStorageServiceImpl();
storageService.setBranchService(branchService);
storageService.setVersionService(versionService);
storageService.setCommitService(commitService);
storageService.setNodeVersionService(nodeDao);
storageService.setIndexDataService(indexedDataService);
NodeSearchServiceImpl searchService = new NodeSearchServiceImpl();
searchService.setSearchDao(searchDao);
final NodeRepositoryServiceImpl nodeRepositoryService = new NodeRepositoryServiceImpl();
nodeRepositoryService.setIndexServiceInternal(indexServiceInternal);
final IndexServiceInternalImpl elasticsearchIndexService = new IndexServiceInternalImpl();
elasticsearchIndexService.setClient(client);
final RepositoryEntryServiceImpl repositoryEntryService = new RepositoryEntryServiceImpl();
repositoryEntryService.setIndexServiceInternal(elasticsearchIndexService);
repositoryEntryService.setNodeStorageService(storageService);
repositoryEntryService.setNodeSearchService(searchService);
repositoryEntryService.setEventPublisher(eventPublisher);
repositoryEntryService.setBinaryService(binaryService);
repositoryService = new RepositoryServiceImpl(repositoryEntryService, elasticsearchIndexService, nodeRepositoryService, storageService, searchService);
repositoryService.initialize();
nodeService = new NodeServiceImpl();
nodeService.setIndexServiceInternal(indexServiceInternal);
nodeService.setNodeStorageService(storageService);
nodeService.setNodeSearchService(searchService);
nodeService.setEventPublisher(eventPublisher);
nodeService.setBinaryService(binaryService);
nodeService.setRepositoryService(repositoryService);
nodeService.initialize();
mixinService = Mockito.mock(MixinService.class);
Mockito.when(mixinService.inlineFormItems(Mockito.isA(Form.class))).then(AdditionalAnswers.returnsFirstArg());
xDataService = Mockito.mock(XDataService.class);
Map<String, List<String>> metadata = new HashMap<>();
metadata.put(HttpHeaders.CONTENT_TYPE, List.of("image/jpg"));
final ExtractedData extractedData = ExtractedData.create().metadata(metadata).build();
final BinaryExtractor extractor = Mockito.mock(BinaryExtractor.class);
Mockito.when(extractor.extract(Mockito.isA(ByteSource.class))).thenReturn(extractedData);
mediaInfoService = new MediaInfoServiceImpl();
mediaInfoService.setBinaryExtractor(extractor);
final ResourceService resourceService = Mockito.mock(ResourceService.class);
final SiteServiceImpl siteService = new SiteServiceImpl();
siteService.setResourceService(resourceService);
siteService.setMixinService(mixinService);
contentTypeService = new ContentTypeServiceImpl(null, null, mixinService);
PageDescriptorService pageDescriptorService = Mockito.mock(PageDescriptorService.class);
PartDescriptorService partDescriptorService = Mockito.mock(PartDescriptorService.class);
LayoutDescriptorService layoutDescriptorService = Mockito.mock(LayoutDescriptorService.class);
auditLogService = Mockito.mock(AuditLogService.class);
final ContentConfig contentConfig = Mockito.mock(ContentConfig.class);
Mockito.when(contentConfig.auditlog_enabled()).thenReturn(Boolean.TRUE);
final ContentAuditLogSupportImpl contentAuditLogSupport = new ContentAuditLogSupportImpl(contentConfig, new ContentAuditLogExecutorImpl(), auditLogService);
final SecurityServiceImpl securityService = new SecurityServiceImpl(nodeService, indexService);
securityService.initialize();
final ProjectPermissionsContextManagerImpl projectAccessContextManager = new ProjectPermissionsContextManagerImpl();
final ProjectServiceImpl projectService = new ProjectServiceImpl(repositoryService, indexService, nodeService, securityService, projectAccessContextManager, eventPublisher);
projectService.initialize();
contentService = new ContentServiceImpl(nodeService, pageDescriptorService, partDescriptorService, layoutDescriptorService);
contentService.setEventPublisher(eventPublisher);
contentService.setMediaInfoService(mediaInfoService);
contentService.setSiteService(siteService);
contentService.setContentTypeService(contentTypeService);
contentService.setxDataService(xDataService);
contentService.setFormDefaultValuesProcessor((form, data) -> {
});
contentService.setContentAuditLogSupport(contentAuditLogSupport);
contentService.addContentValidator(new ContentNameValidator());
contentService.addContentValidator(new SiteConfigsValidator(siteService));
contentService.addContentValidator(new OccurrenceValidator());
contentService.addContentValidator(new ExtraDataValidator(xDataService));
contentService.initialize(mock(ContentConfig.class, invocation -> invocation.getMethod().getDefaultValue()));
}
Aggregations