X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fmain%2FDebugLoadersTest.java;h=72f0bf7a8e2b7171b092455e46bdb900cc01996b;hp=81a85a5381523d251d5cd55d429879b4c58c55a6;hb=faf66247a34f64946990a985d2ea3003465969cb;hpb=2f21e4a2402f1c7a55175f223118521dbd2d27d8 diff --git a/src/test/java/net/pterodactylus/sone/main/DebugLoadersTest.java b/src/test/java/net/pterodactylus/sone/main/DebugLoadersTest.java index 81a85a5..72f0bf7 100644 --- a/src/test/java/net/pterodactylus/sone/main/DebugLoadersTest.java +++ b/src/test/java/net/pterodactylus/sone/main/DebugLoadersTest.java @@ -2,13 +2,28 @@ package net.pterodactylus.sone.main; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.startsWith; +import static org.mockito.Mockito.mock; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; +import java.io.OutputStream; import java.io.StringWriter; +import java.net.URI; +import java.net.URISyntaxException; +import net.pterodactylus.sone.web.page.FreenetRequest; import net.pterodactylus.util.template.Template; import net.pterodactylus.util.template.TemplateContext; +import net.pterodactylus.util.template.TemplateProvider; +import net.pterodactylus.util.web.Method; +import net.pterodactylus.util.web.Page; +import net.pterodactylus.util.web.Response; + +import freenet.clients.http.SessionManager; +import freenet.clients.http.ToadletContext; +import freenet.support.api.HTTPRequest; import com.google.common.base.Charsets; import com.google.common.io.Files; @@ -19,8 +34,6 @@ import org.junit.rules.TemporaryFolder; /** * Unit test for {@link DebugLoaders}. - * - * @author David ‘Bombe’ Roden */ public class DebugLoadersTest { @@ -29,22 +42,48 @@ public class DebugLoadersTest { private final StringWriter stringWriter = new StringWriter(); private final TemplateContext templateContext = new TemplateContext(); - private String templatePath; private Loaders loaders; @Before public void setupLoader() throws IOException { - templatePath = temporaryFolder.newFolder("temps").getPath(); + String templatePath = temporaryFolder.newFolder("temps").getPath(); loaders = new DebugLoaders(templatePath); + File templateFile = new File(templatePath, "template.txt"); + Files.write("<%if foo>foo<%else>bar<%/if>", templateFile, Charsets.UTF_8); + new File(templatePath, "templates").mkdir(); + File secondTemplateFile = new File(templatePath, "templates/template.txt"); + Files.write("<%if foo>foo<%else>bar<%/if>", secondTemplateFile, Charsets.UTF_8); } @Test public void debugLoaderCanLoadTemplatesFromFilesystem() throws IOException { - File templateFile = new File(templatePath, "template.txt"); - Files.write("<%if foo>foo<%else>bar<%/if>", templateFile, Charsets.UTF_8); Template template = loaders.loadTemplate("/template.txt"); template.render(templateContext, stringWriter); assertThat(stringWriter.toString(), is("bar")); } + @Test + public void staticPageIsServedFromFilesystem() throws URISyntaxException, IOException { + Page page = loaders.loadStaticPage("text/", "", "text/plain"); + URI uri = new URI("http://some.host/text/template.txt"); + Method method = Method.GET; + HTTPRequest httpRequest = mock(HTTPRequest.class); + ToadletContext toadletContext = mock(ToadletContext.class); + SessionManager sessionManager = mock(SessionManager.class); + FreenetRequest request = new FreenetRequest(uri, method, httpRequest, toadletContext, sessionManager); + OutputStream outputStream = new ByteArrayOutputStream(); + Response response = new Response(outputStream); + page.handleRequest(request, response); + assertThat(response.getContentType(), startsWith("text/plain")); + assertThat(response.getStatusCode(), is(200)); + } + + @Test + public void templateProviderLocatesTemplatesInFileSystem() { + TemplateProvider templateProvider = loaders.getTemplateProvider(); + Template template = templateProvider.getTemplate(templateContext, "template.txt"); + template.render(templateContext, stringWriter); + assertThat(stringWriter.toString(), is("bar")); + } + }