X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FDeleteImagePageTest.kt;h=eccf9491d3687f866a0cdc5e26e6c492b3ac053e;hp=78000a161decae6577d8094eb7c7264e0d7f39f4;hb=2ab560633c24940fa49bdaf569635dd673ad7b19;hpb=de7568a82eb4150bf6d2b0553841b7b69f84c968 diff --git a/src/test/kotlin/net/pterodactylus/sone/web/pages/DeleteImagePageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/pages/DeleteImagePageTest.kt index 78000a1..eccf949 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/pages/DeleteImagePageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/DeleteImagePageTest.kt @@ -1,38 +1,27 @@ package net.pterodactylus.sone.web.pages -import net.pterodactylus.sone.data.Album -import net.pterodactylus.sone.data.Image -import net.pterodactylus.sone.data.Sone -import net.pterodactylus.sone.test.mock -import net.pterodactylus.sone.test.whenever -import net.pterodactylus.sone.web.pages.WebPageTest -import net.pterodactylus.sone.web.pages.DeleteImagePage -import net.pterodactylus.util.web.Method.GET -import net.pterodactylus.util.web.Method.POST -import org.hamcrest.MatcherAssert.assertThat -import org.hamcrest.Matchers.equalTo -import org.junit.Before -import org.junit.Test -import org.mockito.Mockito.verify +import net.pterodactylus.sone.data.* +import net.pterodactylus.sone.data.impl.* +import net.pterodactylus.sone.test.* +import net.pterodactylus.sone.web.* +import net.pterodactylus.sone.web.page.* +import net.pterodactylus.util.web.Method.* +import org.hamcrest.MatcherAssert.* +import org.hamcrest.Matchers.* +import org.junit.* +import org.mockito.Mockito.* /** * Unit test for [DeleteImagePage]. */ -class DeleteImagePageTest: WebPageTest() { +class DeleteImagePageTest : WebPageTest(::DeleteImagePage) { - private val page = DeleteImagePage(template, webInterface) - private val image = mock() private val sone = mock() - - override fun getPage() = page + private val image = ImageImpl("image-id").modify().setSone(sone).update()!! @Before fun setupImage() { - val album = mock() - whenever(album.id).thenReturn("album-id") - whenever(image.id).thenReturn("image-id") - whenever(image.sone).thenReturn(sone) - whenever(image.album).thenReturn(album) + AlbumImpl(sone, "album-id").also { it.addImage(image) } whenever(sone.isLocal).thenReturn(true) } @@ -48,13 +37,11 @@ class DeleteImagePageTest: WebPageTest() { @Test fun `get request with invalid image redirects to invalid page`() { - request("", GET) verifyRedirect("invalid.html") } @Test fun `get request with image from non-local sone redirects to no permissions page`() { - request("", GET) whenever(sone.isLocal).thenReturn(false) addImage("image-id", image) addHttpRequestParameter("image", "image-id") @@ -63,7 +50,6 @@ class DeleteImagePageTest: WebPageTest() { @Test fun `get request with image from local sone sets image in template context`() { - request("", GET) addImage("image-id", image) addHttpRequestParameter("image", "image-id") page.processTemplate(freenetRequest, templateContext) @@ -72,21 +58,31 @@ class DeleteImagePageTest: WebPageTest() { @Test fun `post request with abort delete flag set redirects to image browser`() { - request("", POST) + setMethod(POST) addImage("image-id", image) - addHttpRequestParameter("image", "image-id") - addHttpRequestParameter("abortDelete", "true") + addHttpRequestPart("image", "image-id") + addHttpRequestPart("abortDelete", "true") verifyRedirect("imageBrowser.html?image=image-id") } @Test fun `post request deletes image and redirects to image browser`() { - request("", POST) + setMethod(POST) addImage("image-id", image) - addHttpRequestParameter("image", "image-id") + addHttpRequestPart("image", "image-id") verifyRedirect("imageBrowser.html?album=album-id") { verify(webInterface.core).deleteImage(image) } } + @Test + fun `page can be created by dependency injection`() { + assertThat(baseInjector.getInstance(), notNullValue()) + } + + @Test + fun `page is annotated with correct template path`() { + assertThat(page.templatePath, equalTo("/templates/deleteImage.html")) + } + }