1 package net.pterodactylus.sone.web.pages
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
7 import net.pterodactylus.sone.web.pages.MarkAsKnownPage
8 import net.pterodactylus.sone.web.pages.WebPageTest
10 import org.mockito.Mockito.verify
13 * Unit test for [MarkAsKnownPage].
15 class MarkAsKnownPageTest : WebPageTest() {
17 private val page = MarkAsKnownPage(template, webInterface)
19 override fun getPage() = page
22 fun `posts can be marked as known`() {
23 addHttpRequestPart("returnPage", "return.html")
24 addHttpRequestPart("type", "post")
25 addHttpRequestPart("id", "post1 post2 post3")
26 val posts = listOf(mock<Post>(), mock<Post>())
27 addPost("post1", posts[0])
28 addPost("post3", posts[1])
29 verifyRedirect("return.html") {
30 verify(core).markPostKnown(posts[0])
31 verify(core).markPostKnown(posts[1])
36 fun `replies can be marked as known`() {
37 addHttpRequestPart("returnPage", "return.html")
38 addHttpRequestPart("type", "reply")
39 addHttpRequestPart("id", "reply1 reply2 reply3")
40 val replies = listOf(mock<PostReply>(), mock<PostReply>())
41 addPostReply("reply1", replies[0])
42 addPostReply("reply3", replies[1])
43 verifyRedirect("return.html") {
44 verify(core).markReplyKnown(replies[0])
45 verify(core).markReplyKnown(replies[1])
50 fun `sones can be marked as known`() {
51 addHttpRequestPart("returnPage", "return.html")
52 addHttpRequestPart("type", "sone")
53 addHttpRequestPart("id", "sone1 sone2 sone3")
54 val sones = listOf(mock<Sone>(), mock<Sone>())
55 addSone("sone1", sones[0])
56 addSone("sone3", sones[1])
57 verifyRedirect("return.html") {
58 verify(core).markSoneKnown(sones[0])
59 verify(core).markSoneKnown(sones[1])
64 fun `different type redirects to invalid page`() {
65 addHttpRequestPart("type", "foo")
66 verifyRedirect("invalid.html")