X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FDeleteSonePageTest.kt;h=b51ebed571f6c824efc3c23b6c0123399e194982;hp=535aba309b92e2dcde34dd709a0658d1f7d23823;hb=9acbc5bdec4ccb752e0856a501568b0bb6161579;hpb=6d8f4480444ce0373ac29699b5ead1e4b0d82828 diff --git a/src/test/kotlin/net/pterodactylus/sone/web/DeleteSonePageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/DeleteSonePageTest.kt index 535aba3..b51ebed 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/DeleteSonePageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/DeleteSonePageTest.kt @@ -1,11 +1,16 @@ package net.pterodactylus.sone.web -import net.pterodactylus.sone.web.WebTestUtils.redirectsTo +import net.pterodactylus.sone.test.whenever 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.Test +import org.mockito.ArgumentMatchers +import org.mockito.ArgumentMatchers.any +import org.mockito.Mockito.any +import org.mockito.Mockito.never import org.mockito.Mockito.verify -import kotlin.test.fail /** * Unit test for [DeleteSonePage]. @@ -14,28 +19,43 @@ class DeleteSonePageTest : WebPageTest() { private val page = DeleteSonePage(template, webInterface) + override fun getPage() = page + + @Test + fun `page returns correct path`() { + assertThat(page.path, equalTo("deleteSone.html")) + } + + @Test + fun `page requires login`() { + assertThat(page.requiresLogin(), equalTo(true)) + } + + @Test + fun `page returns correct title`() { + whenever(l10n.getString("Page.DeleteSone.Title")).thenReturn("delete sone page") + assertThat(page.getPageTitle(freenetRequest), equalTo("delete sone page")) + } + @Test fun `get request does not redirect`() { request("", GET) - page.handleRequest(freenetRequest, templateContext) + page.processTemplate(freenetRequest, templateContext) } @Test fun `post request without delete confirmation redirects to index`() { request("", POST) - expectedException.expect(redirectsTo("index.html")) - page.handleRequest(freenetRequest, templateContext) + verifyRedirect("index.html") { + verify(core, never()).deleteSone(any()) + } } @Test fun `post request with delete confirmation deletes sone and redirects to index`() { request("", POST) addHttpRequestParameter("deleteSone", "true") - expectedException.expect(redirectsTo("index.html")) - try { - page.handleRequest(freenetRequest, templateContext) - fail() - } finally { + verifyRedirect("index.html") { verify(core).deleteSone(currentSone) } }