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.util.web.Method.POST
6 import org.hamcrest.MatcherAssert.assertThat
7 import org.hamcrest.Matchers.equalTo
9 import org.mockito.ArgumentMatchers.any
10 import org.mockito.Mockito.never
11 import org.mockito.Mockito.verify
14 * Unit test for [BookmarkPage].
16 class BookmarkPageTest : WebPageTest() {
18 private val page = BookmarkPage(template, webInterface)
19 override fun getPage() = page
22 fun `path is set correctly`() {
23 assertThat(page.path, equalTo("bookmark.html"))
27 fun `get request does not bookmark anything and does not redirect`() {
28 page.processTemplate(freenetRequest, templateContext)
29 verify(core, never()).bookmarkPost(any())
32 private fun setupBookmarkRequest() {
34 addHttpRequestPart("returnPage", "return-page.html")
35 addHttpRequestPart("post", "post-id")
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)
49 fun `non-existing post is not bookmarked`() {
50 setupBookmarkRequest()
51 verifyRedirect("return-page.html") {
52 verify(core, never()).bookmarkPost(any())