Deliver static files from filesystem
[Sone.git] / src / test / java / net / pterodactylus / sone / main / DebugLoadersTest.java
index 81a85a5..e9dfb71 100644 (file)
@@ -2,13 +2,26 @@ 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.web.Method;
+import net.pterodactylus.util.web.Page;
+import net.pterodactylus.util.web.Response;
+
+import freenet.clients.http.ToadletContext;
+import freenet.support.api.HTTPRequest;
 
 import com.google.common.base.Charsets;
 import com.google.common.io.Files;
@@ -29,22 +42,36 @@ 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);
        }
 
        @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<FreenetRequest> 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);
+               FreenetRequest request = new FreenetRequest(uri, method, httpRequest, toadletContext);
+               OutputStream outputStream = new ByteArrayOutputStream();
+               Response response = new Response(outputStream);
+               page.handleRequest(request, response);
+               assertThat(response.getContentType(), startsWith("text/plain"));
+               assertThat(response.getStatusCode(), is(200));
+       }
+
 }