1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.util.web.Method.POST
4 import org.hamcrest.MatcherAssert.assertThat
5 import org.hamcrest.Matchers.equalTo
7 import org.mockito.Mockito.verify
8 import org.mockito.Mockito.verifyNoMoreInteractions
11 * Unit test for [LikePage].
13 class LikePageTest : WebPageTest() {
15 private val page = LikePage(template, webInterface)
17 override fun getPage() = page
20 fun `page returns correct path`() {
21 assertThat(page.path, equalTo("like.html"))
25 fun `page requires login`() {
26 assertThat(page.requiresLogin(), equalTo(true))
30 fun `page returns correct title`() {
31 addTranslation("Page.Like.Title", "like page title")
32 assertThat(page.getPageTitle(freenetRequest), equalTo("like page title"))
36 fun `get request does not redirect`() {
41 fun `post request with post id likes post and redirects to return page`() {
43 addHttpRequestPart("type", "post")
44 addHttpRequestPart("post", "post-id")
45 addHttpRequestPart("returnPage", "return.html")
46 verifyRedirect("return.html") {
47 verify(currentSone).addLikedPostId("post-id")
52 fun `post request with reply id likes post and redirects to return page`() {
54 addHttpRequestPart("type", "reply")
55 addHttpRequestPart("reply", "reply-id")
56 addHttpRequestPart("returnPage", "return.html")
57 verifyRedirect("return.html") {
58 verify(currentSone).addLikedReplyId("reply-id")
63 fun `post request with invalid likes redirects to return page`() {
65 addHttpRequestPart("type", "foo")
66 addHttpRequestPart("returnPage", "return.html")
67 verifyRedirect("return.html") {
68 verifyNoMoreInteractions(currentSone)