1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.sone.data.TemporaryImage
4 import net.pterodactylus.sone.web.pages.GetImagePage
5 import net.pterodactylus.sone.web.pages.WebPageTest
6 import org.hamcrest.MatcherAssert.assertThat
7 import org.hamcrest.Matchers.equalTo
11 * Unit test for [GetImagePage].
13 class GetImagePageTest : WebPageTest() {
15 private val page = GetImagePage(webInterface)
18 fun `page returns correct path`() {
19 assertThat(page.path, equalTo("getImage.html"))
23 fun `page is not a prefix page`() {
24 assertThat(page.isPrefixPage, equalTo(false))
28 fun `page is not link-excepted`() {
29 assertThat(page.isLinkExcepted(null), equalTo(false))
33 fun `invalid image returns 404 response`() {
34 page.handleRequest(freenetRequest, response)
35 assertThat(response.statusCode, equalTo(404))
36 assertThat(responseBytes, equalTo(ByteArray(0)))
40 fun `valid image returns response with correct data`() {
41 val image = TemporaryImage("temp-id").apply {
42 mimeType = "image/test"
43 imageData = ByteArray(5, Int::toByte)
45 addHttpRequestParameter("image", "temp-id")
46 addTemporaryImage("temp-id", image)
47 page.handleRequest(freenetRequest, response)
48 assertThat(response.statusCode, equalTo(200))
49 assertThat(response.contentType, equalTo("image/test"))
50 assertThat(responseBytes, equalTo(ByteArray(5, Int::toByte)))