Search in sources :

Example 36 with Site

use of com.enonic.xp.site.Site in project xp by enonic.

the class ContentResolverTest method resolve_found_by_path_edit_mode.

@Test
void resolve_found_by_path_edit_mode() {
    final Content content = newContent();
    final Site site = newSite();
    final PortalRequest request = new PortalRequest();
    request.setMode(RenderMode.EDIT);
    request.setContentPath(ContentPath.from("/c8da0c10-0002-4b68-b407-87412f3e45c8"));
    when(this.contentService.getById(ContentId.from("c8da0c10-0002-4b68-b407-87412f3e45c8"))).thenThrow(new ContentNotFoundException(ContentId.from("c8da0c10-0002-4b68-b407-87412f3e45c8"), null));
    when(this.contentService.getByPath(ContentPath.from("/c8da0c10-0002-4b68-b407-87412f3e45c8"))).thenReturn(content);
    when(this.contentService.getNearestSite(ContentId.from("c8da0c10-0002-4b68-b407-87412f3e45c8"))).thenReturn(site);
    final ContentResolverResult result = new ContentResolver(contentService).resolve(request);
    assertSame(content, result.getContent());
    assertSame(site, result.getNearestSite());
    assertEquals("/landing-page", result.getSiteRelativePath());
}
Also used : Site(com.enonic.xp.site.Site) ContentNotFoundException(com.enonic.xp.content.ContentNotFoundException) Content(com.enonic.xp.content.Content) PortalRequest(com.enonic.xp.portal.PortalRequest) Test(org.junit.jupiter.api.Test)

Example 37 with Site

use of com.enonic.xp.site.Site in project xp by enonic.

the class ComponentHandlerWorker method execute.

@Override
public PortalResponse execute() throws Exception {
    final ContentResolverResult resolvedContent = contentResolver.resolve(this.request);
    final Content content = resolvedContent.getContentOrElseThrow();
    final Site site = resolvedContent.getNearestSiteOrElseThrow();
    Page page = content.getPage();
    final PageResolverResult resolvedPage = pageResolver.resolve(request.getMode(), content, site);
    Component component = null;
    if (content.getType().isFragment()) {
        // fragment content, try resolving component path in Layout fragment
        final Component fragmentComponent = page.getFragment();
        if (this.componentPath.isEmpty()) {
            component = fragmentComponent;
        } else if (fragmentComponent instanceof LayoutComponent) {
            component = ((LayoutComponent) fragmentComponent).getComponent(this.componentPath);
        }
    }
    final Page effectivePage;
    if (component == null) {
        effectivePage = inlineFragments(resolvedPage.getEffectivePage(), this.componentPath);
        component = effectivePage.getRegions().getComponent(this.componentPath);
    } else {
        effectivePage = resolvedPage.getEffectivePage();
    }
    if (component == null) {
        throw WebException.notFound(String.format("Page component for [%s] not found", this.componentPath));
    }
    final Content effectiveContent = Content.create(content).page(effectivePage).build();
    final DescriptorKey controller = resolvedPage.getController();
    this.request.setSite(site);
    this.request.setContent(effectiveContent);
    this.request.setComponent(component);
    this.request.setApplicationKey(controller != null ? controller.getApplicationKey() : null);
    final Trace trace = Tracer.current();
    if (trace != null) {
        trace.put("componentPath", component.getPath());
        trace.put("type", component.getType().toString());
    }
    final PortalResponse response = rendererDelegate.render(component, this.request);
    return this.postProcessor.processResponseInstructions(this.request, response);
}
Also used : ContentResolverResult(com.enonic.xp.portal.impl.ContentResolverResult) Site(com.enonic.xp.site.Site) Trace(com.enonic.xp.trace.Trace) PortalResponse(com.enonic.xp.portal.PortalResponse) Content(com.enonic.xp.content.Content) DescriptorKey(com.enonic.xp.page.DescriptorKey) Page(com.enonic.xp.page.Page) FragmentComponent(com.enonic.xp.region.FragmentComponent) Component(com.enonic.xp.region.Component) LayoutComponent(com.enonic.xp.region.LayoutComponent) LayoutComponent(com.enonic.xp.region.LayoutComponent)

Example 38 with Site

use of com.enonic.xp.site.Site in project xp by enonic.

the class LocalizeFunctionTest method setupTest.

@BeforeEach
public final void setupTest() {
    Site site = Site.create().description("This is my site").name("my-content").parentPath(ContentPath.ROOT).language(Locale.ENGLISH).build();
    this.portalRequest.setSite(site);
    PortalRequestAccessor.set(this.portalRequest);
}
Also used : Site(com.enonic.xp.site.Site) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 39 with Site

use of com.enonic.xp.site.Site in project xp by enonic.

the class ContentRelativePathResolverTest method site_wildcard.

@Test
public void site_wildcard() throws Exception {
    final Site parentSite = Site.create().parentPath(ContentPath.from("/mySitePath")).name("test").build();
    final String resolvedWildcardOption1 = ContentRelativePathResolver.resolveWithSite(ContentRelativePathResolver.SITE_WILDCARD, parentSite);
    final String resolvedWildcardOption2 = ContentRelativePathResolver.resolveWithSite(ContentRelativePathResolver.SITE_WILDCARD + "/somepath/", parentSite);
    assertEquals("/mySitePath/test*", resolvedWildcardOption1);
    assertEquals("/mySitePath/test/somepath/*", resolvedWildcardOption2);
}
Also used : Site(com.enonic.xp.site.Site) Test(org.junit.jupiter.api.Test)

Example 40 with Site

use of com.enonic.xp.site.Site in project xp by enonic.

the class PageHandlerWorker method execute.

@Override
public PortalResponse execute() throws Exception {
    final ContentResolverResult resolvedContent = contentResolver.resolve(this.request);
    final Content content = resolvedContent.getContentOrElseThrow();
    if (content.getType().isShortcut()) {
        return renderShortcut(content);
    }
    final Site site = resolvedContent.getNearestSiteOrElseThrow();
    final PageResolverResult resolvedPage = pageResolver.resolve(request.getMode(), content, site);
    final Content effectiveContent = Content.create(content).page(resolvedPage.getEffectivePage()).build();
    final DescriptorKey pageDescriptorKey = resolvedPage.getController();
    this.request.setSite(site);
    this.request.setContent(effectiveContent);
    this.request.setApplicationKey(pageDescriptorKey != null ? pageDescriptorKey.getApplicationKey() : null);
    this.request.setPageDescriptor(pageDescriptorKey != null ? this.pageDescriptorService.getByKey(pageDescriptorKey) : null);
    final Trace trace = Tracer.current();
    if (trace != null) {
        trace.put("contentPath", effectiveContent.getPath().toString());
        trace.put("type", "page");
    }
    return rendererDelegate.render(effectiveContent, this.request);
}
Also used : ContentResolverResult(com.enonic.xp.portal.impl.ContentResolverResult) Site(com.enonic.xp.site.Site) Trace(com.enonic.xp.trace.Trace) Content(com.enonic.xp.content.Content) DescriptorKey(com.enonic.xp.page.DescriptorKey)

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