@BeforeMethod public void setupFixture() { MockResponseBuilder.setCurrentTime(currentTime); underTest = context.getBean(AvailabilityEnforcerRequestProcessor.class); responseHolder = context.getBean(MockResponseHolder.class); request = mock(Request.class); when(request.getBaseUrl()).thenReturn("http://acme.com"); when(request.getOriginalRelativeUri()).thenReturn("/contextPath"); }
/******************************************************************************************************************* * * {@inheritDoc} * ******************************************************************************************************************/ @Override @Nonnull public Status process (final @Nonnull Request request) { try { final String parameterValue = request.getParameter(parameterName); parameterValueHolder.set(parameterValue); requestLocaleManager.setRequestLocale(new Locale(parameterValue)); } catch (NotFoundException e) { // ok, no override } return CONTINUE; }
/******************************************************************************************************************* * * {@inheritDoc} * ******************************************************************************************************************/ @Override @Nonnull public Status process (final @Nonnull Request request) { final Site site = siteProvider.get().getSite(); for (final Locale locale : request.getPreferredLocales()) { if (site.getConfiguredLocales().contains(locale)) { requestLocaleManager.setRequestLocale(locale); break; } } return CONTINUE; } }
/******************************************************************************************************************* * * {@inheritDoc} * ******************************************************************************************************************/ @Override @Nonnull public String createLink (final @Nonnull ResourcePath relativeUri) { final ResourcePath link = new ResourcePath(contextPath).appendedWith(relativeUri); String linkAsString = requestHolder.get().getBaseUrl() + link.asString(); for (final LinkPostProcessor linkPostProcessor : linkPostProcessors) { linkAsString = linkPostProcessor.postProcess(linkAsString); } return linkAsString; }
/******************************************************************************************************************* * * If relativeUri doesn't end with a trailing slash, send a redirect to the proper Uri. * FIXME: could be dropped and replaced with a configurable redirect? * ******************************************************************************************************************/ private void enforceTrailingSlash (final @Nonnull String relativeUri, final @Nonnull Site site) throws HttpStatusException { final String originalRelativeUri = requestHolder.get().getOriginalRelativeUri(); if (!relativeUri.contains(".") && !originalRelativeUri.endsWith("/")) { throw HttpStatusException.temporaryRedirect(site, relativeUri); // TODO: temporary or permanent? } } }
final String relativeUri = request.getRelativeUri();
throws IOException, NotFoundException, HttpStatusException final String pathParams = requestHolder.get().getPathParams(siteNode).replaceFirst("^/", ""); final boolean index = siteNodeProperties.getBooleanProperty(PROPERTY_INDEX, false); final List<Content> allPosts = findAllPosts(siteNodeProperties);
/******************************************************************************************************************* * ******************************************************************************************************************/ @BeforeMethod public void setupFixture() throws Exception { MockResponseBuilder.setCurrentTime(currentTime); resourceFile = mock(ResourceFile.class); when(resourceFile.asBytes()).thenReturn("FILE CONTENT".getBytes()); when(resourceFile.getMimeType()).thenReturn("text/plain"); when(resourceFile.getLatestModificationTime()).thenReturn(resourceLatestModifiedTime); headers = new HashMap<>(); request = mock(Request.class); when(request.getHeader(anyString())).thenAnswer(new Answer<String>() { @Override @Nonnull public String answer (final @Nonnull InvocationOnMock invocation) throws NotFoundException { final String name = (String)invocation.getArguments()[0]; return NotFoundException.throwWhenNull(headers.get(name), "Not found " + name); } }); underTest = new MockResponseHolder(); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @BeforeMethod public void setupFixture() throws Exception { context = new ClassPathXmlApplicationContext("DefaultSiteTestBeans.xml"); modelFactory = context.getBean(MockModelFactory.class); final Request request = mock(Request.class); when(request.getBaseUrl()).thenReturn("/baseUrl"); requestHolder = context.getBean(RequestHolder.class); when(requestHolder.get()).thenReturn(request); resourceFileSystemProvider = context.getBean(ResourceFileSystemProvider.class); resourceFileSystem = mock(ResourceFileSystem.class); when(resourceFileSystemProvider.getFileSystem()).thenReturn(resourceFileSystem); final Site.Builder.CallBack callback = mock(Site.Builder.CallBack.class); siteBuilder = new Site.Builder(modelFactory, callback) .withContextPath("/contextpath") // TODO: should also test "" .withDocumentPath("/content/document") .withMediaPath("/content/media") .withLibraryPath("/content/library") .withNodePath("/structure") .withLogConfigurationEnabled(true) .withConfiguredLocales(Arrays.asList(new Locale("en"), new Locale("it"), new Locale("fr"))) .withIgnoredFolders(Arrays.asList("ignored1", "ignored2")); }
/******************************************************************************************************************* * * {@inheritDoc} * ******************************************************************************************************************/ @Override @Nonnull public Status process (final @Nonnull Request request) throws NotFoundException, IOException, HttpStatusException { try { final String relativeUri = request.getRelativeUri(); final Site site = siteProvider.get().getSite(); final SiteNode node = site.find(SiteNode).withRelativeUri(relativeUri).result(); requestContext.setNode(node); siteView.renderSiteNode(node); // // Check *after* finding the SiteNode, since a "not found" must have been already handled here. // enforceTrailingSlash(relativeUri, site); return BREAK; } finally { requestContext.clearNode(); } }
HttpStatusException final String pathParams = requestHolder.get().getPathParams(siteNode); final int currentYear = getCurrentYear(pathParams);
+ "</div>\n" + "</body>\n" + "</html>", request.getBaseUrl(), request.getOriginalRelativeUri()); responseHolder.response().withContentType("text/html") .withStatus(503)
public Status process (final @Nonnull Request request) final String relativePath = request.getRelativeUri();
throws NotFoundException, IOException ResourcePath mediaUri = new ResourcePath(request.getRelativeUri());