Remove obsolete loading animation
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / MarkAsKnownPageTest.kt
1 package net.pterodactylus.sone.web
2
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 org.junit.Test
8 import org.mockito.Mockito.verify
9
10 /**
11  * Unit test for [MarkAsKnownPage].
12  */
13 class MarkAsKnownPageTest : WebPageTest() {
14
15         private val page = MarkAsKnownPage(template, webInterface)
16
17         override fun getPage() = page
18
19         @Test
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])
30                 }
31         }
32
33         @Test
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])
44                 }
45         }
46
47         @Test
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])
58                 }
59         }
60
61         @Test
62         fun `different type redirects to invalid page`() {
63                 addHttpRequestParameter("type", "foo")
64                 verifyRedirect("invalid.html")
65         }
66
67 }