🔥 Remove templates from FreenetTemplatePages
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / pages / GetImagePageTest.kt
index 151f1ae..9de2c90 100644 (file)
@@ -1,17 +1,25 @@
 package net.pterodactylus.sone.web.pages
 
 import net.pterodactylus.sone.data.TemporaryImage
+import net.pterodactylus.sone.test.getInstance
+import net.pterodactylus.sone.web.baseInjector
 import org.hamcrest.MatcherAssert.assertThat
 import org.hamcrest.Matchers.contains
 import org.hamcrest.Matchers.equalTo
+import org.hamcrest.Matchers.notNullValue
 import org.junit.Test
+import java.net.*
 
 /**
  * Unit test for [GetImagePage].
  */
-class GetImagePageTest : WebPageTest() {
+class GetImagePageTest {
 
-       private val page = GetImagePage(webInterface)
+       private val scaffolding = WebPageTest()
+       private val page = GetImagePage(scaffolding.webInterface)
+       private val freenetRequest = scaffolding.freenetRequest
+       private val response = scaffolding.response
+       private val responseContent = scaffolding.responseContent
 
        @Test
        fun `page returns correct path`() {
@@ -25,7 +33,7 @@ class GetImagePageTest : WebPageTest() {
 
        @Test
        fun `page is not link-excepted`() {
-               assertThat(page.isLinkExcepted(null), equalTo(false))
+               assertThat(page.isLinkExcepted(URI("")), equalTo(false))
        }
 
        @Test
@@ -34,7 +42,7 @@ class GetImagePageTest : WebPageTest() {
                assertThat(response.statusCode, equalTo(404))
                assertThat(response.statusText, equalTo("Not found."))
                assertThat(response.contentType, equalTo("text/html; charset=utf-8"))
-               assertThat(responseBytes, equalTo(ByteArray(0)))
+               assertThat(responseContent.toByteArray(), equalTo(ByteArray(0)))
        }
 
        @Test
@@ -43,16 +51,21 @@ class GetImagePageTest : WebPageTest() {
                        mimeType = "image/test"
                        imageData = ByteArray(5, Int::toByte)
                }
-               addHttpRequestParameter("image", "temp-id")
-               addTemporaryImage("temp-id", image)
+               scaffolding.addHttpRequestParameter("image", "temp-id")
+               scaffolding.addTemporaryImage("temp-id", image)
                page.handleRequest(freenetRequest, response)
                assertThat(response.statusCode, equalTo(200))
                assertThat(response.contentType, equalTo("image/test"))
-               assertThat(responseBytes, equalTo(ByteArray(5, Int::toByte)))
+               assertThat(responseContent.toByteArray(), equalTo(ByteArray(5, Int::toByte)))
                println(response.headers.map { it.name to it.iterator().asSequence().toList() })
                assertThat(response.headers.map { it.name to it.iterator().asSequence().toList() }, contains(
                                "Content-Disposition" to listOf("attachment; filename=temp-id.test")
                ))
        }
 
+       @Test
+       fun `page can be created by dependency injection`() {
+           assertThat(baseInjector.getInstance<GetImagePage>(), notNullValue())
+       }
+
 }