1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.util.web.Method.GET
4 import net.pterodactylus.util.web.Method.POST
5 import org.hamcrest.MatcherAssert.assertThat
6 import org.hamcrest.Matchers.equalTo
8 import org.mockito.Mockito.verify
9 import org.mockito.Mockito.verifyNoMoreInteractions
12 * Unit test for [LikePage].
14 class LikePageTest : WebPageTest() {
16 private val page = LikePage(template, webInterface)
18 override fun getPage() = page
21 fun `page returns correct path`() {
22 assertThat(page.path, equalTo("like.html"))
26 fun `page requires login`() {
27 assertThat(page.requiresLogin(), equalTo(true))
31 fun `page returns correct title`() {
32 addTranslation("Page.Like.Title", "like page title")
33 assertThat(page.getPageTitle(freenetRequest), equalTo("like page title"))
37 fun `get request does not redirect`() {
43 fun `post request with post id likes post and redirects to return page`() {
45 addHttpRequestPart("type", "post")
46 addHttpRequestPart("post", "post-id")
47 addHttpRequestPart("returnPage", "return.html")
48 verifyRedirect("return.html") {
49 verify(currentSone).addLikedPostId("post-id")
54 fun `post request with reply id likes post and redirects to return page`() {
56 addHttpRequestPart("type", "reply")
57 addHttpRequestPart("reply", "reply-id")
58 addHttpRequestPart("returnPage", "return.html")
59 verifyRedirect("return.html") {
60 verify(currentSone).addLikedReplyId("reply-id")
65 fun `post request with invalid likes redirects to return page`() {
67 addHttpRequestPart("type", "foo")
68 addHttpRequestPart("returnPage", "return.html")
69 verifyRedirect("return.html") {
70 verifyNoMoreInteractions(currentSone)