import net.pterodactylus.sone.data.Sone
import net.pterodactylus.sone.test.mock
import net.pterodactylus.sone.test.whenever
-import net.pterodactylus.sone.web.WebTestUtils.redirectsTo
import net.pterodactylus.util.web.Method.GET
import net.pterodactylus.util.web.Method.POST
import org.hamcrest.MatcherAssert.assertThat
import org.junit.Before
import org.junit.Test
import org.mockito.Mockito.verify
-import kotlin.test.fail
/**
* Unit test for [DeleteImagePage].
*/
-class DeleteImagePageTest : WebPageTest() {
+class DeleteImagePageTest: WebPageTest() {
private val page = DeleteImagePage(template, webInterface)
private val image = mock<Image>()
private val sone = mock<Sone>()
+ override fun getPage() = page
+
@Before
fun setupImage() {
val album = mock<Album>()
}
@Test
+ fun `page returns correct path`() {
+ assertThat(page.path, equalTo("deleteImage.html"))
+ }
+
+ @Test
+ fun `page requires login`() {
+ assertThat(page.requiresLogin(), equalTo(true))
+ }
+
+ @Test
fun `get request with invalid image redirects to invalid page`() {
request("", GET)
- expectedException.expect(redirectsTo("invalid.html"))
- page.processTemplate(freenetRequest, templateContext)
+ verifyRedirect("invalid.html")
}
@Test
whenever(sone.isLocal).thenReturn(false)
addImage("image-id", image)
addHttpRequestParameter("image", "image-id")
- expectedException.expect(redirectsTo("noPermission.html"))
- page.processTemplate(freenetRequest, templateContext)
+ verifyRedirect("noPermission.html")
}
@Test
addImage("image-id", image)
addHttpRequestParameter("image", "image-id")
addHttpRequestParameter("abortDelete", "true")
- expectedException.expect(redirectsTo("imageBrowser.html?image=image-id"))
- page.processTemplate(freenetRequest, templateContext)
+ verifyRedirect("imageBrowser.html?image=image-id")
}
@Test
request("", POST)
addImage("image-id", image)
addHttpRequestParameter("image", "image-id")
- expectedException.expect(redirectsTo("imageBrowser.html?album=album-id"))
- try {
- page.processTemplate(freenetRequest, templateContext)
- fail()
- } catch (e: Exception) {
+ verifyRedirect("imageBrowser.html?album=album-id") {
verify(webInterface.core).deleteImage(image)
- throw e
}
}