1 package net.pterodactylus.sone.web.ajax
3 import net.pterodactylus.sone.data.PostReply
4 import net.pterodactylus.sone.data.Sone
5 import net.pterodactylus.sone.test.mock
6 import net.pterodactylus.sone.test.whenever
7 import org.hamcrest.MatcherAssert.assertThat
8 import org.hamcrest.Matchers.equalTo
10 import org.mockito.Mockito.verify
13 * Unit test for [DeleteReplyAjaxPage].
15 class DeleteReplyAjaxPageTest : JsonPageTest("deleteReply.ajax", pageSupplier = ::DeleteReplyAjaxPage) {
18 fun `request with missing reply results in invalid id`() {
19 assertThat(json.isSuccess, equalTo(false))
20 assertThat(json.error, equalTo("invalid-reply-id"))
24 fun `request with non-local reply id results in not authorized`() {
25 val reply = mock<PostReply>()
26 val sone = mock<Sone>()
27 whenever(reply.sone).thenReturn(sone)
28 addReply("reply-id", reply)
29 addRequestParameter("reply", "reply-id")
30 assertThat(json.isSuccess, equalTo(false))
31 assertThat(json.error, equalTo("not-authorized"))
35 fun `request with local reply id deletes reply`() {
36 val reply = mock<PostReply>()
37 val sone = mock<Sone>()
38 whenever(sone.isLocal).thenReturn(true)
39 whenever(reply.sone).thenReturn(sone)
40 addReply("reply-id", reply)
41 addRequestParameter("reply", "reply-id")
42 assertThat(json.isSuccess, equalTo(true))
43 verify(core).deleteReply(reply)