Remove obsolete loading animation
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / BookmarkPageTest.kt
1 package net.pterodactylus.sone.web
2
3 import net.pterodactylus.sone.data.Post
4 import net.pterodactylus.sone.test.mock
5 import net.pterodactylus.util.web.Method.POST
6 import org.hamcrest.MatcherAssert.assertThat
7 import org.hamcrest.Matchers.equalTo
8 import org.junit.Test
9 import org.mockito.ArgumentMatchers.any
10 import org.mockito.Mockito.never
11 import org.mockito.Mockito.verify
12
13 /**
14  * Unit test for [BookmarkPage].
15  */
16 class BookmarkPageTest : WebPageTest() {
17
18         private val page = BookmarkPage(template, webInterface)
19         override fun getPage() = page
20
21         @Test
22         fun `path is set correctly`() {
23                 assertThat(page.path, equalTo("bookmark.html"))
24         }
25
26         @Test
27         fun `get request does not bookmark anything and does not redirect`() {
28                 page.processTemplate(freenetRequest, templateContext)
29                 verify(core, never()).bookmarkPost(any())
30         }
31
32         private fun setupBookmarkRequest() {
33                 request("", POST)
34                 addHttpRequestParameter("returnPage", "return-page.html")
35                 addHttpRequestParameter("post", "post-id")
36         }
37
38         @Test
39         fun `post is bookmarked correctly`() {
40                 setupBookmarkRequest()
41                 val post = mock<Post>()
42                 addPost("post-id", post)
43                 verifyRedirect("return-page.html") {
44                         verify(core).bookmarkPost(post)
45                 }
46         }
47
48         @Test
49         fun `non-existing post is not bookmarked`() {
50                 setupBookmarkRequest()
51                 verifyRedirect("return-page.html") {
52                         verify(core, never()).bookmarkPost(any())
53                 }
54         }
55
56 }