Replace rescue page with Kotlin version
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / pages / RescuePageTest.kt
index 547c580..1f62a92 100644 (file)
@@ -15,7 +15,7 @@ import org.mockito.Mockito.verify
 /**
  * Unit test for [RescuePage].
  */
-class RescuePageTest : WebPageTest() {
+class RescuePageTest: WebPageTest() {
 
        private val page = RescuePage(template, webInterface)
 
@@ -29,9 +29,26 @@ class RescuePageTest : WebPageTest() {
        }
 
        @Test
+       fun `page returns correct path`() {
+               assertThat(page.path, equalTo("rescue.html"))
+       }
+
+       @Test
+       fun `page requires login`() {
+               assertThat(page.requiresLogin(), equalTo(true))
+       }
+
+       @Test
+       fun `page returns correct title`() {
+               addTranslation("Page.Rescue.Title", "rescue page title")
+               assertThat(page.getPageTitle(freenetRequest), equalTo("rescue page title"))
+       }
+
+       @Test
        fun `get request sets rescuer in template context`() {
-               page.handleRequest(freenetRequest, templateContext)
-               assertThat(templateContext["soneRescuer"], equalTo<Any>(soneRescuer))
+               verifyNoRedirect {
+                       assertThat(templateContext["soneRescuer"], equalTo<Any>(soneRescuer))
+               }
        }
 
        @Test
@@ -61,4 +78,16 @@ class RescuePageTest : WebPageTest() {
                }
        }
 
+       @Test
+       fun `post request with negative edition will not set edition`() {
+               setMethod(POST)
+               addHttpRequestPart("fetch", "true")
+               addHttpRequestPart("edition", "-123")
+               verifyRedirect("rescue.html") {
+                       verify(soneRescuer, never()).setEdition(anyLong())
+                       verify(soneRescuer).startNextFetch()
+               }
+       }
+
+
 }