Remove obsolete loading animation
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / RescuePageTest.kt
1 package net.pterodactylus.sone.web
2
3 import net.pterodactylus.sone.core.SoneRescuer
4 import net.pterodactylus.sone.test.mock
5 import net.pterodactylus.sone.test.whenever
6 import net.pterodactylus.util.web.Method.GET
7 import net.pterodactylus.util.web.Method.POST
8 import org.hamcrest.MatcherAssert.assertThat
9 import org.hamcrest.Matchers.equalTo
10 import org.junit.Before
11 import org.junit.Test
12 import org.mockito.ArgumentMatchers.anyLong
13 import org.mockito.Mockito.never
14 import org.mockito.Mockito.verify
15
16 /**
17  * Unit test for [RescuePage].
18  */
19 class RescuePageTest : WebPageTest() {
20
21         private val page = RescuePage(template, webInterface)
22
23         private val soneRescuer = mock<SoneRescuer>()
24
25         override fun getPage() = page
26
27         @Before
28         fun setupSoneRescuer() {
29                 whenever(core.getSoneRescuer(currentSone)).thenReturn(soneRescuer)
30         }
31
32         @Test
33         fun `get request sets rescuer in template context`() {
34                 request("", GET)
35                 page.handleRequest(freenetRequest, templateContext)
36                 assertThat(templateContext["soneRescuer"], equalTo<Any>(soneRescuer))
37         }
38
39         @Test
40         fun `post request redirects to rescue page`() {
41                 request("", POST)
42                 verifyRedirect("rescue.html")
43         }
44
45         @Test
46         fun `post request with fetch and invalid edition starts next fetch`() {
47                 request("", POST)
48                 addHttpRequestParameter("fetch", "true")
49                 verifyRedirect("rescue.html") {
50                         verify(soneRescuer, never()).setEdition(anyLong())
51                         verify(soneRescuer).startNextFetch()
52                 }
53         }
54
55         @Test
56         fun `post request with fetch and valid edition sets edition and starts next fetch`() {
57                 request("", POST)
58                 addHttpRequestParameter("fetch", "true")
59                 addHttpRequestParameter("edition", "123")
60                 verifyRedirect("rescue.html") {
61                         verify(soneRescuer).setEdition(123L)
62                         verify(soneRescuer).startNextFetch()
63                 }
64         }
65
66 }