use of com.enonic.xp.site.Site in project xp by enonic.
the class PageResolverTest method page_with_own_descriptor.
@Test
public void page_with_own_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().descriptor(DescriptorKey.from("myapp:my-descriptor")).config(configB).build();
Content content = Content.create().parentPath(site.getPath()).name("my-content").page(page).type(ContentTypeName.templateFolder()).build();
PageResolverResult result = pageResolver.resolve(RenderMode.LIVE, content, site);
final Page effectivePage = result.getEffectivePage();
assertSame(page, effectivePage);
assertEquals(DescriptorKey.from("myapp:my-descriptor"), result.getController());
verifyNoInteractions(pageTemplateService);
}
use of com.enonic.xp.site.Site 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.site.Site in project xp by enonic.
the class PageResolverTest method content_is_Fragment.
@Test
public void content_is_Fragment() {
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().fragment(FragmentComponent.create().build()).build();
Content content = Content.create().parentPath(site.getPath()).name("my-content").page(page).type(ContentTypeName.templateFolder()).build();
PageResolverResult result = pageResolver.resolve(RenderMode.LIVE, content, site);
final Page effectivePage = result.getEffectivePage();
assertSame(page, effectivePage);
assertNull(result.getController());
verifyNoInteractions(pageTemplateService);
}
use of com.enonic.xp.site.Site 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.site.Site in project xp by enonic.
the class PageResolverTest method content_without_Page_and_Template_withoutPage.
@Test
public void content_without_Page_and_Template_withoutPage() {
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").build();
Content content = Content.create().parentPath(site.getPath()).name("my-content").build();
when(pageTemplateService.getDefault(notNull())).thenReturn(template);
PageResolverResult result = pageResolver.resolve(RenderMode.EDIT, content, site);
final Page effectivePage = result.getEffectivePage();
assertNull(effectivePage.getDescriptor());
assertEquals(template.getKey(), effectivePage.getTemplate());
}
Aggregations