Remove obsolete loading animation
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / DeleteProfileFieldPageTest.kt
index a52ac48..4c5a07a 100644 (file)
@@ -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<Any>(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
                }
        }