Replace reloading page with Kotlin version
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / pages / ReloadingPageTest.kt
1 package net.pterodactylus.sone.web.pages
2
3 import net.pterodactylus.sone.web.page.FreenetRequest
4 import org.hamcrest.MatcherAssert.assertThat
5 import org.hamcrest.Matchers.equalTo
6 import org.junit.Rule
7 import org.junit.Test
8 import org.junit.rules.TemporaryFolder
9 import java.nio.file.Files
10 import java.nio.file.Paths
11 import kotlin.text.Charsets.UTF_8
12
13 /**
14  * Unit test for [ReloadingPage].
15  */
16 class ReloadingPageTest : WebPageTest() {
17
18         @Rule @JvmField val tempFolder = TemporaryFolder()
19         private val folder by lazy { tempFolder.newFolder()!! }
20         private val page by lazy { ReloadingPage<FreenetRequest>("/prefix/", folder.path, "text/plain") }
21
22         @Test
23         fun `page returns correct path prefix`() {
24                 assertThat(page.path, equalTo("/prefix/"))
25         }
26
27         @Test
28         fun `page returns that it’s a prefix page`() {
29                 assertThat(page.isPrefixPage, equalTo(true))
30         }
31
32         @Test
33         fun `requesting invalid file results in 404`() {
34                 request("/prefix/path/file.txt")
35                 page.handleRequest(freenetRequest, response)
36                 assertThat(response.statusCode, equalTo(404))
37                 assertThat(response.statusText, equalTo("Not found"))
38         }
39
40         @Test
41         fun `requesting valid file results in 200 and delivers file`() {
42                 Files.write(Paths.get(folder.path, "file.txt"), listOf("Hello", "World"), UTF_8)
43                 request("/prefix/path/file.txt")
44                 page.handleRequest(freenetRequest, response)
45                 assertThat(response.statusCode, equalTo(200))
46                 assertThat(response.statusText, equalTo("OK"))
47                 assertThat(response.contentType, equalTo("text/plain"))
48                 assertThat(responseBytes, equalTo("Hello\nWorld\n".toByteArray()))
49         }
50
51 }