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
7 import net.pterodactylus.sone.web.WebTestUtils.redirectsTo
9 import org.mockito.Mockito.verify
12 * Unit test for [MarkAsKnownPage].
14 class MarkAsKnownPageTest : WebPageTest() {
16 private val page = MarkAsKnownPage(template, webInterface)
19 fun `posts can be marked as known`() {
20 addHttpRequestParameter("returnPage", "return.html")
21 addHttpRequestParameter("type", "post")
22 addHttpRequestParameter("id", "post1 post2 post3")
23 val posts = listOf(mock<Post>(), mock<Post>())
24 addPost("post1", posts[0])
25 addPost("post3", posts[1])
26 expectedException.expect(redirectsTo("return.html"))
28 page.handleRequest(freenetRequest, templateContext)
30 verify(core).markPostKnown(posts[0])
31 verify(core).markPostKnown(posts[1])
36 fun `replies can be marked as known`() {
37 addHttpRequestParameter("returnPage", "return.html")
38 addHttpRequestParameter("type", "reply")
39 addHttpRequestParameter("id", "reply1 reply2 reply3")
40 val replies = listOf(mock<PostReply>(), mock<PostReply>())
41 addPostReply("reply1", replies[0])
42 addPostReply("reply3", replies[1])
43 expectedException.expect(redirectsTo("return.html"))
45 page.handleRequest(freenetRequest, templateContext)
47 verify(core).markReplyKnown(replies[0])
48 verify(core).markReplyKnown(replies[1])
53 fun `sones can be marked as known`() {
54 addHttpRequestParameter("returnPage", "return.html")
55 addHttpRequestParameter("type", "sone")
56 addHttpRequestParameter("id", "sone1 sone2 sone3")
57 val sones = listOf(mock<Sone>(), mock<Sone>())
58 addSone("sone1", sones[0])
59 addSone("sone3", sones[1])
60 expectedException.expect(redirectsTo("return.html"))
62 page.handleRequest(freenetRequest, templateContext)
64 verify(core).markSoneKnown(sones[0])
65 verify(core).markSoneKnown(sones[1])
70 fun `different type redirects to invalid page`() {
71 addHttpRequestParameter("type", "foo")
72 expectedException.expect(redirectsTo("invalid.html"))
73 page.handleRequest(freenetRequest, templateContext)