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.ArgumentMatchers.any
8 import org.mockito.Mockito.never
9 import org.mockito.Mockito.verify
12 * Unit test for [UnlikePage].
14 class UnlikePageTest : WebPageTest() {
16 private val page = UnlikePage(template, webInterface)
18 override fun getPage() = page
21 fun `page returns correct path`() {
22 assertThat(page.path, equalTo("unlike.html"))
26 fun `page requires login`() {
27 assertThat(page.requiresLogin(), equalTo(true))
31 fun `page returns correct title`() {
32 addTranslation("Page.Unlike.Title", "unlike page title")
33 assertThat(page.getPageTitle(freenetRequest), equalTo("unlike page title"))
37 fun `get request does not redirect`() {
42 fun `post request does not remove any likes but redirects`() {
44 addHttpRequestPart("returnPage", "return.html")
45 verifyRedirect("return.html") {
46 verify(currentSone, never()).removeLikedPostId(any())
47 verify(currentSone, never()).removeLikedReplyId(any())
52 fun `post request removes post like and redirects`() {
54 addHttpRequestPart("returnPage", "return.html")
55 addHttpRequestPart("type", "post")
56 addHttpRequestPart("post", "post-id")
57 verifyRedirect("return.html") {
58 verify(currentSone).removeLikedPostId("post-id")
59 verify(currentSone, never()).removeLikedReplyId(any())
64 fun `post request removes reply like and redirects`() {
66 addHttpRequestPart("returnPage", "return.html")
67 addHttpRequestPart("type", "reply")
68 addHttpRequestPart("reply", "reply-id")
69 verifyRedirect("return.html") {
70 verify(currentSone, never()).removeLikedPostId(any())
71 verify(currentSone).removeLikedReplyId("reply-id")