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.Mockito.verify
11 import org.mockito.Mockito.verifyNoMoreInteractions
14 * Unit test for [LikePage].
16 class LikePageTest: WebPageTest(::LikePage) {
19 fun `page returns correct path`() {
20 assertThat(page.path, equalTo("like.html"))
24 fun `page requires login`() {
25 assertThat(page.requiresLogin(), equalTo(true))
29 fun `page returns correct title`() {
30 addTranslation("Page.Like.Title", "like page title")
31 assertThat(page.getPageTitle(freenetRequest), equalTo("like page title"))
35 fun `get request does not redirect`() {
40 fun `post request with post id likes post and redirects to return page`() {
42 addHttpRequestPart("type", "post")
43 addHttpRequestPart("post", "post-id")
44 addHttpRequestPart("returnPage", "return.html")
45 verifyRedirect("return.html") {
46 verify(currentSone).addLikedPostId("post-id")
51 fun `post request with reply id likes post and redirects to return page`() {
53 addHttpRequestPart("type", "reply")
54 addHttpRequestPart("reply", "reply-id")
55 addHttpRequestPart("returnPage", "return.html")
56 verifyRedirect("return.html") {
57 verify(currentSone).addLikedReplyId("reply-id")
62 fun `post request with invalid likes redirects to return page`() {
64 addHttpRequestPart("type", "foo")
65 addHttpRequestPart("returnPage", "return.html")
66 verifyRedirect("return.html") {
67 verifyNoMoreInteractions(currentSone)
72 fun `page can be created by dependency injection`() {
73 assertThat(baseInjector.getInstance<LikePage>(), notNullValue())