Use verifyNoRedirect instead of calling the request handler directly
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / pages / UnlikePageTest.kt
1 package net.pterodactylus.sone.web.pages
2
3 import net.pterodactylus.util.web.Method.POST
4 import org.junit.Test
5 import org.mockito.ArgumentMatchers.any
6 import org.mockito.Mockito.never
7 import org.mockito.Mockito.verify
8
9 /**
10  * Unit test for [UnlikePage].
11  */
12 class UnlikePageTest : WebPageTest() {
13
14         private val page = UnlikePage(template, webInterface)
15
16         override fun getPage() = page
17
18         @Test
19         fun `get request does not redirect`() {
20                 verifyNoRedirect { }
21         }
22
23         @Test
24         fun `post request does not remove any likes but redirects`() {
25                 setMethod(POST)
26                 addHttpRequestPart("returnPage", "return.html")
27                 verifyRedirect("return.html") {
28                         verify(currentSone, never()).removeLikedPostId(any())
29                         verify(currentSone, never()).removeLikedReplyId(any())
30                 }
31         }
32
33         @Test
34         fun `post request removes post like and redirects`() {
35                 setMethod(POST)
36                 addHttpRequestPart("returnPage", "return.html")
37                 addHttpRequestPart("type", "post")
38                 addHttpRequestPart("id", "post-id")
39                 verifyRedirect("return.html") {
40                         verify(currentSone, never()).removeLikedPostId("post-id")
41                         verify(currentSone, never()).removeLikedReplyId(any())
42                 }
43         }
44
45         @Test
46         fun `post request removes reply like and redirects`() {
47                 setMethod(POST)
48                 addHttpRequestPart("returnPage", "return.html")
49                 addHttpRequestPart("type", "reply")
50                 addHttpRequestPart("id", "reply-id")
51                 verifyRedirect("return.html") {
52                         verify(currentSone, never()).removeLikedPostId(any())
53                         verify(currentSone, never()).removeLikedReplyId("reply-id")
54                 }
55         }
56
57 }