Search in sources :

Example 11 with Site

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);
}
Also used : Site(com.enonic.xp.site.Site) Content(com.enonic.xp.content.Content) Page(com.enonic.xp.page.Page) Test(org.junit.jupiter.api.Test)

Example 12 with Site

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());
}
Also used : Site(com.enonic.xp.site.Site) PageTemplate(com.enonic.xp.page.PageTemplate) Content(com.enonic.xp.content.Content) Page(com.enonic.xp.page.Page) Test(org.junit.jupiter.api.Test)

Example 13 with Site

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);
}
Also used : Site(com.enonic.xp.site.Site) Content(com.enonic.xp.content.Content) Page(com.enonic.xp.page.Page) Test(org.junit.jupiter.api.Test)

Example 14 with Site

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);
}
Also used : Site(com.enonic.xp.site.Site) WebException(com.enonic.xp.web.WebException) Content(com.enonic.xp.content.Content) Page(com.enonic.xp.page.Page) Test(org.junit.jupiter.api.Test)

Example 15 with Site

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());
}
Also used : Site(com.enonic.xp.site.Site) PageTemplate(com.enonic.xp.page.PageTemplate) Content(com.enonic.xp.content.Content) Page(com.enonic.xp.page.Page) Test(org.junit.jupiter.api.Test)

Aggregations

Site (com.enonic.xp.site.Site)78 Test (org.junit.jupiter.api.Test)51 Content (com.enonic.xp.content.Content)41 PortalRequest (com.enonic.xp.portal.PortalRequest)17 PropertyTree (com.enonic.xp.data.PropertyTree)14 Page (com.enonic.xp.page.Page)12 ContentId (com.enonic.xp.content.ContentId)10 ContentPath (com.enonic.xp.content.ContentPath)10 SiteConfig (com.enonic.xp.site.SiteConfig)10 WebException (com.enonic.xp.web.WebException)10 ApplicationKey (com.enonic.xp.app.ApplicationKey)9 PageTemplate (com.enonic.xp.page.PageTemplate)8 PortalResponse (com.enonic.xp.portal.PortalResponse)7 ControllerMappingDescriptor (com.enonic.xp.site.mapping.ControllerMappingDescriptor)7 SiteDescriptor (com.enonic.xp.site.SiteDescriptor)6 BeforeEach (org.junit.jupiter.api.BeforeEach)6 DescriptorKey (com.enonic.xp.page.DescriptorKey)5 SiteConfigs (com.enonic.xp.site.SiteConfigs)5 Branch (com.enonic.xp.branch.Branch)4 ContentService (com.enonic.xp.content.ContentService)4