1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.sone.data.Post
4 import net.pterodactylus.sone.test.mock
5 import net.pterodactylus.sone.web.pages.WebPageTest
6 import net.pterodactylus.sone.web.pages.BookmarkPage
7 import net.pterodactylus.util.web.Method.POST
8 import org.hamcrest.MatcherAssert.assertThat
9 import org.hamcrest.Matchers.equalTo
11 import org.mockito.ArgumentMatchers.any
12 import org.mockito.Mockito.never
13 import org.mockito.Mockito.verify
16 * Unit test for [BookmarkPage].
18 class BookmarkPageTest : WebPageTest() {
20 private val page = BookmarkPage(template, webInterface)
21 override fun getPage() = page
24 fun `path is set correctly`() {
25 assertThat(page.path, equalTo("bookmark.html"))
29 fun `get request does not bookmark anything and does not redirect`() {
30 page.processTemplate(freenetRequest, templateContext)
31 verify(core, never()).bookmarkPost(any())
34 private fun setupBookmarkRequest() {
36 addHttpRequestParameter("returnPage", "return-page.html")
37 addHttpRequestParameter("post", "post-id")
41 fun `post is bookmarked correctly`() {
42 setupBookmarkRequest()
43 val post = mock<Post>()
44 addPost("post-id", post)
45 verifyRedirect("return-page.html") {
46 verify(core).bookmarkPost(post)
51 fun `non-existing post is not bookmarked`() {
52 setupBookmarkRequest()
53 verifyRedirect("return-page.html") {
54 verify(core, never()).bookmarkPost(any())