use of com.enonic.xp.portal.impl.controller.PortalResponseSerializer in project xp by enonic.
the class PartRendererTest method htmlResponseComponentEditModeNoMethodToHandleReq.
@Test
public void htmlResponseComponentEditModeNoMethodToHandleReq() {
final PartDescriptor partDescriptor = PartDescriptor.create().displayName("My part component").config(Form.create().build()).key(DescriptorKey.from("module:myPartComponent")).build();
final ControllerScript controllerScript = new ControllerScript() {
@Override
public PortalResponse execute(final PortalRequest portalRequest) {
return new PortalResponseSerializer(null, HttpStatus.METHOD_NOT_ALLOWED).serialize();
}
@Override
public void onSocketEvent(final WebSocketEvent event) {
}
};
final PartDescriptorService partDescriptorService = Mockito.mock(PartDescriptorService.class);
final ControllerScriptFactory controllerScriptFactory = Mockito.mock(ControllerScriptFactory.class);
renderer = new PartRenderer();
renderer.setPartDescriptorService(partDescriptorService);
renderer.setControllerScriptFactory(controllerScriptFactory);
when(partDescriptorService.getByKey(any())).thenReturn(partDescriptor);
when(controllerScriptFactory.fromDir(any())).thenReturn(controllerScript);
portalRequest.setMode(RenderMode.EDIT);
partComponent = PartComponent.create().descriptor("myapp:myPartComponent").descriptor(partDescriptor.getKey()).build();
// exercise
portalResponse = renderer.render(partComponent, portalRequest);
// verify
String expected = "<div data-portal-component-type=\"part\" data-portal-placeholder=\"true\" data-portal-placeholder-error=\"true\"><span class=\"data-portal-placeholder-error\">No method provided to handle request</span></div>";
assertEquals(expected, portalResponse.getAsString());
}
use of com.enonic.xp.portal.impl.controller.PortalResponseSerializer in project xp by enonic.
the class ErrorHandlerScriptImpl method doExecute.
private PortalResponse doExecute(final PortalError portalError, final String handlerMethod) {
Tracer.withCurrent(this::addTraceInfo);
final PortalErrorMapper portalErrorMapper = new PortalErrorMapper(portalError);
final ScriptValue result = this.scriptExports.executeMethod(handlerMethod, portalErrorMapper);
if ((result == null) || !result.isObject()) {
return null;
} else {
return new PortalResponseSerializer(result, portalError.getStatus()).defaultPostProcess(false).applyFilters(false).serialize();
}
}
use of com.enonic.xp.portal.impl.controller.PortalResponseSerializer in project xp by enonic.
the class PartRendererTest method nullResponseComponentEditMode.
@Test
public void nullResponseComponentEditMode() {
final PartDescriptor partDescriptor = PartDescriptor.create().displayName("My part component").config(Form.create().build()).key(DescriptorKey.from("module:myPartComponent")).build();
final ControllerScript controllerScript = new ControllerScript() {
@Override
public PortalResponse execute(final PortalRequest portalRequest) {
return new PortalResponseSerializer(null).serialize();
}
@Override
public void onSocketEvent(final WebSocketEvent event) {
}
};
final PartDescriptorService partDescriptorService = Mockito.mock(PartDescriptorService.class);
final ControllerScriptFactory controllerScriptFactory = Mockito.mock(ControllerScriptFactory.class);
renderer = new PartRenderer();
renderer.setPartDescriptorService(partDescriptorService);
renderer.setControllerScriptFactory(controllerScriptFactory);
when(partDescriptorService.getByKey(any())).thenReturn(partDescriptor);
when(controllerScriptFactory.fromDir(any())).thenReturn(controllerScript);
portalRequest.setMode(RenderMode.EDIT);
partComponent = PartComponent.create().descriptor("myapp:myPartComponent").descriptor(partDescriptor.getKey()).build();
// exercise
portalResponse = renderer.render(partComponent, portalRequest);
// verify
String expected = "<div data-portal-component-type=\"part\"></div>";
assertEquals(expected, portalResponse.getAsString());
}
Aggregations