X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FGetImagePageTest.kt;h=9de2c902385cc40d3cf102ca50bf3ba58e3d5ead;hp=fb96a4c0d34d5647c8eff62153ad62d479e36e3d;hb=110a933c2724aba6a604fc5eed6372ff1e1e6144;hpb=de7568a82eb4150bf6d2b0553841b7b69f84c968 diff --git a/src/test/kotlin/net/pterodactylus/sone/web/pages/GetImagePageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/pages/GetImagePageTest.kt index fb96a4c..9de2c90 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/pages/GetImagePageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/GetImagePageTest.kt @@ -1,18 +1,25 @@ package net.pterodactylus.sone.web.pages import net.pterodactylus.sone.data.TemporaryImage -import net.pterodactylus.sone.web.pages.GetImagePage -import net.pterodactylus.sone.web.pages.WebPageTest +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`() { @@ -26,14 +33,16 @@ class GetImagePageTest : WebPageTest() { @Test fun `page is not link-excepted`() { - assertThat(page.isLinkExcepted(null), equalTo(false)) + assertThat(page.isLinkExcepted(URI("")), equalTo(false)) } @Test fun `invalid image returns 404 response`() { page.handleRequest(freenetRequest, response) assertThat(response.statusCode, equalTo(404)) - assertThat(responseBytes, equalTo(ByteArray(0))) + assertThat(response.statusText, equalTo("Not found.")) + assertThat(response.contentType, equalTo("text/html; charset=utf-8")) + assertThat(responseContent.toByteArray(), equalTo(ByteArray(0))) } @Test @@ -42,12 +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(), notNullValue()) } }