Add more tests for unfollow Sone page
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / pages / UnfollowSonePageTest.kt
1 package net.pterodactylus.sone.web.pages
2
3 import net.pterodactylus.util.web.Method.POST
4 import org.hamcrest.MatcherAssert.assertThat
5 import org.hamcrest.Matchers.equalTo
6 import org.junit.Test
7 import org.mockito.Mockito.verify
8
9 /**
10  * Unit test for [UnfollowSonePage].
11  */
12 class UnfollowSonePageTest : WebPageTest() {
13
14         private val page = UnfollowSonePage(template, webInterface)
15
16         override fun getPage() = page
17
18         @Test
19         fun `page returns correct path`() {
20             assertThat(page.path, equalTo("unfollowSone.html"))
21         }
22
23         @Test
24         fun `page requires login`() {
25             assertThat(page.requiresLogin(), equalTo(true))
26         }
27
28         @Test
29         fun `page returns correct page title`() {
30             addTranslation("Page.UnfollowSone.Title", "unfollow page title")
31                 assertThat(page.getPageTitle(freenetRequest), equalTo("unfollow page title"))
32         }
33
34         @Test
35         fun `get request does not redirect`() {
36                 verifyNoRedirect { }
37         }
38
39         @Test
40         fun `post request unfollows a single sone and redirects to return page`() {
41                 setMethod(POST)
42                 addHttpRequestPart("returnPage", "return.html")
43                 addHttpRequestPart("sone", "sone-id")
44                 verifyRedirect("return.html") {
45                         verify(core).unfollowSone(currentSone, "sone-id")
46                 }
47         }
48
49         @Test
50         fun `post request unfollows two sones and redirects to return page`() {
51                 setMethod(POST)
52                 addHttpRequestPart("returnPage", "return.html")
53                 addHttpRequestPart("sone", "sone-id1, sone-id2")
54                 verifyRedirect("return.html") {
55                         verify(core).unfollowSone(currentSone, "sone-id1")
56                         verify(core).unfollowSone(currentSone, "sone-id2")
57                 }
58         }
59
60 }