1 package net.pterodactylus.sone.web
3 import net.pterodactylus.sone.data.Post
4 import net.pterodactylus.sone.data.PostReply
5 import net.pterodactylus.sone.data.Sone
6 import net.pterodactylus.sone.test.mock
8 import org.mockito.Mockito.verify
11 * Unit test for [MarkAsKnownPage].
13 class MarkAsKnownPageTest : WebPageTest() {
15 private val page = MarkAsKnownPage(template, webInterface)
17 override fun getPage() = page
20 fun `posts can be marked as known`() {
21 addHttpRequestParameter("returnPage", "return.html")
22 addHttpRequestParameter("type", "post")
23 addHttpRequestParameter("id", "post1 post2 post3")
24 val posts = listOf(mock<Post>(), mock<Post>())
25 addPost("post1", posts[0])
26 addPost("post3", posts[1])
27 verifyRedirect("return.html") {
28 verify(core).markPostKnown(posts[0])
29 verify(core).markPostKnown(posts[1])
34 fun `replies can be marked as known`() {
35 addHttpRequestParameter("returnPage", "return.html")
36 addHttpRequestParameter("type", "reply")
37 addHttpRequestParameter("id", "reply1 reply2 reply3")
38 val replies = listOf(mock<PostReply>(), mock<PostReply>())
39 addPostReply("reply1", replies[0])
40 addPostReply("reply3", replies[1])
41 verifyRedirect("return.html") {
42 verify(core).markReplyKnown(replies[0])
43 verify(core).markReplyKnown(replies[1])
48 fun `sones can be marked as known`() {
49 addHttpRequestParameter("returnPage", "return.html")
50 addHttpRequestParameter("type", "sone")
51 addHttpRequestParameter("id", "sone1 sone2 sone3")
52 val sones = listOf(mock<Sone>(), mock<Sone>())
53 addSone("sone1", sones[0])
54 addSone("sone3", sones[1])
55 verifyRedirect("return.html") {
56 verify(core).markSoneKnown(sones[0])
57 verify(core).markSoneKnown(sones[1])
62 fun `different type redirects to invalid page`() {
63 addHttpRequestParameter("type", "foo")
64 verifyRedirect("invalid.html")