1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.sone.test.getInstance
4 import net.pterodactylus.sone.web.baseInjector
5 import net.pterodactylus.util.web.Method.POST
6 import org.hamcrest.MatcherAssert.assertThat
7 import org.hamcrest.Matchers.equalTo
8 import org.hamcrest.Matchers.notNullValue
10 import org.mockito.ArgumentMatchers.any
11 import org.mockito.Mockito.never
12 import org.mockito.Mockito.verify
15 * Unit test for [UnlikePage].
17 class UnlikePageTest: WebPageTest(::UnlikePage) {
20 fun `page returns correct path`() {
21 assertThat(page.path, equalTo("unlike.html"))
25 fun `page requires login`() {
26 assertThat(page.requiresLogin(), equalTo(true))
30 fun `page returns correct title`() {
31 addTranslation("Page.Unlike.Title", "unlike page title")
32 assertThat(page.getPageTitle(freenetRequest), equalTo("unlike page title"))
36 fun `get request does not redirect`() {
41 fun `post request does not remove any likes but redirects`() {
43 addHttpRequestPart("returnPage", "return.html")
44 verifyRedirect("return.html") {
45 verify(currentSone, never()).removeLikedPostId(any())
46 verify(currentSone, never()).removeLikedReplyId(any())
51 fun `post request removes post like and redirects`() {
53 addHttpRequestPart("returnPage", "return.html")
54 addHttpRequestPart("type", "post")
55 addHttpRequestPart("post", "post-id")
56 verifyRedirect("return.html") {
57 verify(currentSone).removeLikedPostId("post-id")
58 verify(currentSone, never()).removeLikedReplyId(any())
63 fun `post request removes reply like and redirects`() {
65 addHttpRequestPart("returnPage", "return.html")
66 addHttpRequestPart("type", "reply")
67 addHttpRequestPart("reply", "reply-id")
68 verifyRedirect("return.html") {
69 verify(currentSone, never()).removeLikedPostId(any())
70 verify(currentSone).removeLikedReplyId("reply-id")
75 fun `page can be created by dependency injection`() {
76 assertThat(baseInjector.getInstance<UnlikePage>(), notNullValue())