1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.sone.test.*
4 import net.pterodactylus.sone.web.*
5 import net.pterodactylus.util.web.Method.*
6 import org.hamcrest.MatcherAssert.*
7 import org.hamcrest.Matchers.*
9 import org.mockito.ArgumentMatchers.any
10 import org.mockito.Mockito.never
11 import org.mockito.Mockito.verify
14 * Unit test for [UnlikePage].
16 class UnlikePageTest : WebPageTest(::UnlikePage) {
19 fun `page returns correct path`() {
20 assertThat(page.path, equalTo("unlike.html"))
24 fun `page requires login`() {
25 assertThat(page.requiresLogin(), equalTo(true))
29 fun `page returns correct title`() {
30 addTranslation("Page.Unlike.Title", "unlike page title")
31 assertThat(page.getPageTitle(soneRequest), equalTo("unlike page title"))
35 fun `get request does not redirect`() {
40 fun `post request does not remove any likes but redirects`() {
42 addHttpRequestPart("returnPage", "return.html")
43 verifyRedirect("return.html") {
44 verify(currentSone, never()).removeLikedPostId(any())
45 verify(currentSone, never()).removeLikedReplyId(any())
50 fun `post request removes post like and redirects`() {
52 addHttpRequestPart("returnPage", "return.html")
53 addHttpRequestPart("type", "post")
54 addHttpRequestPart("post", "post-id")
55 verifyRedirect("return.html") {
56 verify(currentSone).removeLikedPostId("post-id")
57 verify(currentSone, never()).removeLikedReplyId(any())
62 fun `post request removes reply like and redirects`() {
64 addHttpRequestPart("returnPage", "return.html")
65 addHttpRequestPart("type", "reply")
66 addHttpRequestPart("reply", "reply-id")
67 verifyRedirect("return.html") {
68 verify(currentSone, never()).removeLikedPostId(any())
69 verify(currentSone).removeLikedReplyId("reply-id")
74 fun `page can be created by dependency injection`() {
75 assertThat(baseInjector.getInstance<UnlikePage>(), notNullValue())