✨ Annotate KnownSonesPage with MenuName
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / pages / ReloadingPageTest.kt
index 2d44010..007e481 100644 (file)
@@ -1,10 +1,11 @@
 package net.pterodactylus.sone.web.pages
 
-import net.pterodactylus.sone.web.pages.ReloadingPage
+import net.pterodactylus.sone.test.getInstance
+import net.pterodactylus.sone.web.baseInjector
 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.hamcrest.Matchers.notNullValue
 import org.junit.Rule
 import org.junit.Test
 import org.junit.rules.TemporaryFolder
@@ -15,11 +16,15 @@ import kotlin.text.Charsets.UTF_8
 /**
  * Unit test for [ReloadingPage].
  */
-class ReloadingPageTest : WebPageTest() {
+class ReloadingPageTest {
 
        @Rule @JvmField val tempFolder = TemporaryFolder()
-       private val folder by lazy { tempFolder.newFolder() }
+       private val folder by lazy { tempFolder.newFolder()!! }
        private val page by lazy { ReloadingPage<FreenetRequest>("/prefix/", folder.path, "text/plain") }
+       private val webPageTest = WebPageTest()
+       private val freenetRequest = webPageTest.freenetRequest
+       private val responseBytes = webPageTest.responseContent
+       private val response = webPageTest.response
 
        @Test
        fun `page returns correct path prefix`() {
@@ -33,19 +38,26 @@ class ReloadingPageTest : WebPageTest() {
 
        @Test
        fun `requesting invalid file results in 404`() {
-               request("/prefix/path/file.txt", GET)
+               webPageTest.request("/prefix/path/file.txt")
                page.handleRequest(freenetRequest, response)
                assertThat(response.statusCode, equalTo(404))
+               assertThat(response.statusText, equalTo("Not found"))
        }
 
        @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)
+               webPageTest.request("/prefix/path/file.txt")
                page.handleRequest(freenetRequest, response)
                assertThat(response.statusCode, equalTo(200))
+               assertThat(response.statusText, equalTo("OK"))
                assertThat(response.contentType, equalTo("text/plain"))
-               assertThat(responseBytes, equalTo("Hello\nWorld\n".toByteArray()))
+               assertThat(responseBytes.toByteArray(), equalTo("Hello\nWorld\n".toByteArray()))
+       }
+
+       @Test
+       fun `page can be created by dependency injection`() {
+           assertThat(baseInjector.getInstance<ReloadingPage<*>>(), notNullValue())
        }
 
 }