Remove obsolete loading animation
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / UnlockSonePageTest.kt
1 package net.pterodactylus.sone.web
2
3 import net.pterodactylus.sone.data.Sone
4 import net.pterodactylus.sone.test.mock
5 import net.pterodactylus.sone.test.whenever
6 import org.junit.Test
7 import org.mockito.ArgumentMatchers.any
8 import org.mockito.Mockito.never
9 import org.mockito.Mockito.verify
10
11 /**
12  * Unit test for [UnlockSonePage].
13  */
14 class UnlockSonePageTest : WebPageTest() {
15
16         private val page = UnlockSonePage(template, webInterface)
17
18         override fun getPage() = page
19
20         @Test
21         fun `get request without sone redirects to return page`() {
22                 addHttpRequestParameter("returnPage", "return.html")
23                 verifyRedirect("return.html") {
24                         verify(core, never()).unlockSone(any())
25                 }
26         }
27
28         @Test
29         fun `get request without invalid local sone does not unlock any sone and redirects to return page`() {
30                 addHttpRequestParameter("returnPage", "return.html")
31                 addHttpRequestParameter("sone", "invalid-sone")
32                 verifyRedirect("return.html") {
33                         verify(core, never()).unlockSone(any())
34                 }
35         }
36
37         @Test
38         fun `get request without remote sone does not unlock any sone and redirects to return page`() {
39                 addHttpRequestParameter("returnPage", "return.html")
40                 addHttpRequestParameter("sone", "remote-sone")
41                 addSone("remote-sone", mock<Sone>())
42                 verifyRedirect("return.html") {
43                         verify(core, never()).unlockSone(any())
44                 }
45         }
46
47         @Test
48         fun `get request with local sone unlocks sone and redirects to return page`() {
49                 addHttpRequestParameter("returnPage", "return.html")
50                 addHttpRequestParameter("sone", "local-sone")
51                 val sone = mock<Sone>().apply { whenever(isLocal).thenReturn(true) }
52                 addLocalSone("local-sone", sone)
53                 verifyRedirect("return.html") {
54                         verify(core).unlockSone(sone)
55                 }
56         }
57
58 }