use of com.enonic.xp.page.Page in project xp by enonic.
the class PageResolverTest method given_Content_with_Page_without_config_then_effective_Page_gets_config_from_Template.
@Test
public void given_Content_with_Page_without_config_then_effective_Page_gets_config_from_Template() {
// setup
Site site = Site.create().id(ContentId.from("site-id")).path(ContentPath.from("/site")).displayName("My Site").type(ContentTypeName.from("portal:site")).build();
PageTemplate template = PageTemplate.newPageTemplate().key(PageTemplateKey.from("t-1")).parentPath(site.getPath()).name("my-template").page(Page.create().descriptor(DescriptorKey.from("myapp:my-descriptor")).config(configA).regions(regionsA).build()).canRender(ContentTypeNames.from(ContentTypeName.templateFolder())).build();
Content content = Content.create().parentPath(site.getPath()).name("my-content").page(Page.create().template(template.getKey()).regions(regionsB).build()).type(ContentTypeName.templateFolder()).build();
when(pageTemplateService.getByKey(template.getKey())).thenReturn(template);
// exercise
PageResolverResult result = pageResolver.resolve(RenderMode.LIVE, content, site);
final Page effectivePage = result.getEffectivePage();
// verify
assertEquals(configA, effectivePage.getConfig());
assertEquals(regionsB, effectivePage.getRegions());
assertEquals(template.getKey(), effectivePage.getTemplate());
assertNull(effectivePage.getDescriptor());
}
use of com.enonic.xp.page.Page in project xp by enonic.
the class PageResolverTest method content_with_Page_without_template_or_descriptor.
@Test
public void content_with_Page_without_template_or_descriptor() {
Site site = Site.create().id(ContentId.from("site-id")).path(ContentPath.from("/site")).displayName("My Site").type(ContentTypeName.from("portal:site")).build();
final Page page = Page.create().build();
Content content = Content.create().page(page).parentPath(site.getPath()).name("my-content").build();
final WebException webExceptionInLive = assertThrows(WebException.class, () -> pageResolver.resolve(RenderMode.LIVE, content, site));
assertEquals(HttpStatus.NOT_FOUND, webExceptionInLive.getStatus());
assertEquals(webExceptionInLive.getMessage(), "Content page has neither template nor descriptor");
final WebException webExceptionInInline = assertThrows(WebException.class, () -> pageResolver.resolve(RenderMode.INLINE, content, site));
assertEquals(HttpStatus.IM_A_TEAPOT, webExceptionInInline.getStatus());
final WebException webExceptionInPreview = assertThrows(WebException.class, () -> pageResolver.resolve(RenderMode.PREVIEW, content, site));
assertEquals(HttpStatus.NOT_FOUND, webExceptionInPreview.getStatus());
final PageResolverResult result = pageResolver.resolve(RenderMode.EDIT, content, site);
final Page effectivePage = result.getEffectivePage();
assertSame(page, effectivePage);
assertNull(result.getController());
verifyNoInteractions(pageTemplateService);
}
use of com.enonic.xp.page.Page in project xp by enonic.
the class ServiceHandlerTest method createSite.
private Site createSite(final String id, final String path, final String contentTypeName) {
PropertyTree rootDataSet = new PropertyTree();
rootDataSet.addString("property1", "value1");
Page page = Page.create().template(PageTemplateKey.from("my-page")).config(rootDataSet).build();
final SiteConfig siteConfig = SiteConfig.create().application(ApplicationKey.from("demo")).config(new PropertyTree()).build();
return Site.create().addSiteConfig(siteConfig).id(ContentId.from(id)).path(ContentPath.from(path)).owner(PrincipalKey.from("user:myStore:me")).displayName("My Content").modifier(PrincipalKey.from("user:system:admin")).type(ContentTypeName.from(contentTypeName)).page(page).build();
}
use of com.enonic.xp.page.Page in project xp by enonic.
the class HtmlAreaContentProcessorTest method component_config_data.
@Test
public void component_config_data() throws IOException {
final PropertyTree data = new PropertyTree();
data.addProperty("htmlData", ValueFactory.newString("<img data-src=\"image://image-id\"/>"));
final Form form = Form.create().addFormItem(Input.create().name("htmlData").label("htmlData").inputType(InputTypeName.HTML_AREA).build()).build();
final PartDescriptor partDescriptor = PartDescriptor.create().key(DescriptorKey.from("app:part")).config(form).build();
Mockito.when(partDescriptorService.getByKey(partDescriptor.getKey())).thenReturn(partDescriptor);
final PartComponent partComponent = PartComponent.create().descriptor("myapp:part").descriptor(partDescriptor.getKey()).config(data).build();
final PageDescriptor pageDescriptor = PageDescriptor.create().regions(RegionDescriptors.create().add(RegionDescriptor.create().name("region").build()).build()).key(DescriptorKey.from("app:page")).config(Form.create().build()).build();
Mockito.when(pageDescriptorService.getByKey(pageDescriptor.getKey())).thenReturn(pageDescriptor);
final Page page = Page.create().config(new PropertyTree()).descriptor(pageDescriptor.getKey()).regions(PageRegions.create().add(Region.create().name("region").add(partComponent).build()).build()).build();
final EditableContent editableContent = new EditableContent(Media.create().name("myContentName").type(contentTypeName).page(page).parentPath(ContentPath.ROOT).data(new PropertyTree()).build());
result.getEditor().edit(editableContent);
assertEquals(1, editableContent.processedReferences.build().getSize());
assertTrue(editableContent.processedReferences.build().contains(ContentId.from("image-id")));
}
use of com.enonic.xp.page.Page in project xp by enonic.
the class HtmlAreaContentProcessorTest method text_component_value.
@Test
public void text_component_value() throws IOException {
// final PropertyTree data = new PropertyTree();
// data.addProperty( "htmlData", ValueFactory.newString( "<img data-src=\"image://image-id\"/>" ) );
// final Form form = Form.create().addFormItem(
// Input.create().name( "htmlData" ).label( "htmlData" ).inputType( InputTypeName.HTML_AREA ).build() ).build();
// final PartDescriptor partDescriptor = PartDescriptor.create().key( DescriptorKey.from( "app:part" ) ).config( form ).build();
// Mockito.when( partDescriptorService.getByKey( partDescriptor.getKey() ) ).thenReturn( partDescriptor );
final TextComponent textComponent = TextComponent.create().text("<img data-src=\"image://image-id\"/>").build();
final PageDescriptor pageDescriptor = PageDescriptor.create().regions(RegionDescriptors.create().add(RegionDescriptor.create().name("region").build()).build()).key(DescriptorKey.from("app:page")).config(Form.create().build()).build();
Mockito.when(pageDescriptorService.getByKey(pageDescriptor.getKey())).thenReturn(pageDescriptor);
final Page page = Page.create().config(new PropertyTree()).descriptor(pageDescriptor.getKey()).regions(PageRegions.create().add(Region.create().name("region").add(textComponent).build()).build()).build();
final EditableContent editableContent = new EditableContent(Media.create().name("myContentName").type(contentTypeName).page(page).parentPath(ContentPath.ROOT).data(new PropertyTree()).build());
result.getEditor().edit(editableContent);
assertEquals(1, editableContent.processedReferences.build().getSize());
assertTrue(editableContent.processedReferences.build().contains(ContentId.from("image-id")));
}
Aggregations