♻️ Copy session-handling code to FreenetRequest
[Sone.git] / src / test / java / net / pterodactylus / sone / main / DebugLoadersTest.java
index e9dfb71..7a84978 100644 (file)
@@ -16,11 +16,14 @@ 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.l10n.BaseL10n;
 import freenet.support.api.HTTPRequest;
 
 import com.google.common.base.Charsets;
@@ -32,14 +35,13 @@ import org.junit.rules.TemporaryFolder;
 
 /**
  * Unit test for {@link DebugLoaders}.
- *
- * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
 public class DebugLoadersTest {
 
        @Rule
        public final TemporaryFolder temporaryFolder = new TemporaryFolder();
 
+       private final BaseL10n l10n = mock(BaseL10n.class);
        private final StringWriter stringWriter = new StringWriter();
        private final TemplateContext templateContext = new TemplateContext();
        private Loaders loaders;
@@ -50,6 +52,9 @@ public class DebugLoadersTest {
                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
@@ -66,7 +71,8 @@ public class DebugLoadersTest {
                Method method = Method.GET;
                HTTPRequest httpRequest = mock(HTTPRequest.class);
                ToadletContext toadletContext = mock(ToadletContext.class);
-               FreenetRequest request = new FreenetRequest(uri, method, httpRequest, toadletContext);
+               SessionManager sessionManager = mock(SessionManager.class);
+               FreenetRequest request = new FreenetRequest(uri, method, httpRequest, toadletContext, l10n, sessionManager);
                OutputStream outputStream = new ByteArrayOutputStream();
                Response response = new Response(outputStream);
                page.handleRequest(request, response);
@@ -74,4 +80,12 @@ public class DebugLoadersTest {
                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"));
+       }
+
 }