X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FDeleteProfileFieldPageTest.kt;h=4c5a07a57cf527c8621dec3ce194f00eac263a93;hp=a52ac480af0689c95cd23a3d664b6c4cd3bc9dac;hb=9acbc5bdec4ccb752e0856a501568b0bb6161579;hpb=53bc43f92329d259cc2d6f4c3a3131270578e85d diff --git a/src/test/kotlin/net/pterodactylus/sone/web/DeleteProfileFieldPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/DeleteProfileFieldPageTest.kt index a52ac48..4c5a07a 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/DeleteProfileFieldPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/DeleteProfileFieldPageTest.kt @@ -2,7 +2,6 @@ package net.pterodactylus.sone.web import net.pterodactylus.sone.data.Profile 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 @@ -10,19 +9,22 @@ import org.hamcrest.Matchers.equalTo import org.hamcrest.Matchers.nullValue import org.junit.Before import org.junit.Test +import org.mockito.Mockito.any +import org.mockito.Mockito.never import org.mockito.Mockito.verify -import kotlin.test.fail /** * Unit test for [DeleteProfileFieldPage]. */ -class DeleteProfileFieldPageTest : WebPageTest() { +class DeleteProfileFieldPageTest: WebPageTest() { private val page = DeleteProfileFieldPage(template, webInterface) private val profile = Profile(currentSone) private val field = profile.addField("name") + override fun getPage() = page + @Before fun setupProfile() { whenever(currentSone.profile).thenReturn(profile) @@ -30,25 +32,33 @@ class DeleteProfileFieldPageTest : WebPageTest() { } @Test + fun `page returns correct path`() { + assertThat(page.path, equalTo("deleteProfileField.html")) + } + + @Test + fun `page requires login`() { + assertThat(page.requiresLogin(), equalTo(true)) + } + + @Test fun `get request with invalid field name redirects to invalid page`() { request("", GET) - expectedException.expect(redirectsTo("invalid.html")) - page.handleRequest(freenetRequest, templateContext) + verifyRedirect("invalid.html") } @Test fun `post request with invalid field name redirects to invalid page`() { request("", POST) addHttpRequestParameter("field", "wrong-id") - expectedException.expect(redirectsTo("invalid.html")) - page.handleRequest(freenetRequest, templateContext) + verifyRedirect("invalid.html") } @Test fun `get request with valid field name sets field in template context`() { request("", GET) addHttpRequestParameter("field", field.id) - page.handleRequest(freenetRequest, templateContext) + page.processTemplate(freenetRequest, templateContext) assertThat(templateContext["field"], equalTo(field)) } @@ -56,8 +66,9 @@ class DeleteProfileFieldPageTest : WebPageTest() { fun `post request without confirm redirects to edit profile page`() { request("", POST) addHttpRequestParameter("field", field.id) - expectedException.expect(redirectsTo("editProfile.html#profile-fields")) - page.handleRequest(freenetRequest, templateContext) + verifyRedirect("editProfile.html#profile-fields") { + verify(currentSone, never()).profile = any() + } } @Test @@ -65,14 +76,9 @@ class DeleteProfileFieldPageTest : WebPageTest() { request("", POST) addHttpRequestParameter("field", field.id) addHttpRequestParameter("confirm", "true") - expectedException.expect(redirectsTo("editProfile.html#profile-fields")) - try { - page.handleRequest(freenetRequest, templateContext) - fail() - } catch (e: Exception) { + verifyRedirect("editProfile.html#profile-fields") { assertThat(profile.getFieldById(field.id), nullValue()) verify(currentSone).profile = profile - throw e } }