X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FReloadingPageTest.kt;fp=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FReloadingPageTest.kt;h=2d44010658ee4cdf14f44569d70c5a35ca7a9397;hb=de7568a82eb4150bf6d2b0553841b7b69f84c968;hp=0000000000000000000000000000000000000000;hpb=9acbc5bdec4ccb752e0856a501568b0bb6161579;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/web/pages/ReloadingPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/pages/ReloadingPageTest.kt new file mode 100644 index 0000000..2d44010 --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/ReloadingPageTest.kt @@ -0,0 +1,51 @@ +package net.pterodactylus.sone.web.pages + +import net.pterodactylus.sone.web.pages.ReloadingPage +import net.pterodactylus.sone.web.page.FreenetRequest +import net.pterodactylus.util.web.Method.GET +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.equalTo +import org.junit.Rule +import org.junit.Test +import org.junit.rules.TemporaryFolder +import java.nio.file.Files +import java.nio.file.Paths +import kotlin.text.Charsets.UTF_8 + +/** + * Unit test for [ReloadingPage]. + */ +class ReloadingPageTest : WebPageTest() { + + @Rule @JvmField val tempFolder = TemporaryFolder() + private val folder by lazy { tempFolder.newFolder() } + private val page by lazy { ReloadingPage("/prefix/", folder.path, "text/plain") } + + @Test + fun `page returns correct path prefix`() { + assertThat(page.path, equalTo("/prefix/")) + } + + @Test + fun `page returns that it’s a prefix page`() { + assertThat(page.isPrefixPage, equalTo(true)) + } + + @Test + fun `requesting invalid file results in 404`() { + request("/prefix/path/file.txt", GET) + page.handleRequest(freenetRequest, response) + assertThat(response.statusCode, equalTo(404)) + } + + @Test + fun `requesting valid file results in 200 and delivers file`() { + Files.write(Paths.get(folder.path, "file.txt"), listOf("Hello", "World"), UTF_8) + request("/prefix/path/file.txt", GET) + page.handleRequest(freenetRequest, response) + assertThat(response.statusCode, equalTo(200)) + assertThat(response.contentType, equalTo("text/plain")) + assertThat(responseBytes, equalTo("Hello\nWorld\n".toByteArray())) + } + +}