1 package net.pterodactylus.sone.web
3 import net.pterodactylus.sone.data.Profile
4 import net.pterodactylus.sone.test.whenever
5 import net.pterodactylus.util.web.Method.GET
6 import net.pterodactylus.util.web.Method.POST
7 import org.hamcrest.MatcherAssert.assertThat
8 import org.hamcrest.Matchers.equalTo
9 import org.hamcrest.Matchers.nullValue
10 import org.junit.Before
12 import org.mockito.Mockito.verify
15 * Unit test for [DeleteProfileFieldPage].
17 class DeleteProfileFieldPageTest : WebPageTest() {
19 private val page = DeleteProfileFieldPage(template, webInterface)
21 private val profile = Profile(currentSone)
22 private val field = profile.addField("name")
24 override fun getPage() = page
28 whenever(currentSone.profile).thenReturn(profile)
33 fun `get request with invalid field name redirects to invalid page`() {
35 verifyRedirect("invalid.html")
39 fun `post request with invalid field name redirects to invalid page`() {
41 addHttpRequestParameter("field", "wrong-id")
42 verifyRedirect("invalid.html")
46 fun `get request with valid field name sets field in template context`() {
48 addHttpRequestParameter("field", field.id)
49 page.handleRequest(freenetRequest, templateContext)
50 assertThat(templateContext["field"], equalTo<Any>(field))
54 fun `post request without confirm redirects to edit profile page`() {
56 addHttpRequestParameter("field", field.id)
57 verifyRedirect("editProfile.html#profile-fields")
61 fun `post request with confirm removes field and redirects to edit profile page`() {
63 addHttpRequestParameter("field", field.id)
64 addHttpRequestParameter("confirm", "true")
65 verifyRedirect("editProfile.html#profile-fields") {
66 assertThat(profile.getFieldById(field.id), nullValue())
67 verify(currentSone).profile = profile