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.getInstance
7 import net.pterodactylus.sone.test.mock
8 import net.pterodactylus.sone.web.baseInjector
9 import net.pterodactylus.util.web.Method.POST
10 import org.hamcrest.MatcherAssert.assertThat
11 import org.hamcrest.Matchers.equalTo
12 import org.hamcrest.Matchers.notNullValue
14 import org.mockito.Mockito.verify
17 * Unit test for [MarkAsKnownPage].
19 class MarkAsKnownPageTest: WebPageTest(::MarkAsKnownPage) {
22 fun `page returns correct path`() {
23 assertThat(page.path, equalTo("markAsKnown.html"))
27 fun `page does not require login`() {
28 assertThat(page.requiresLogin(), equalTo(false))
32 fun `page returns correct title`() {
33 addTranslation("Page.MarkAsKnown.Title", "mark as known page title")
34 assertThat(page.getPageTitle(freenetRequest), equalTo("mark as known page title"))
38 fun `posts can be marked as known`() {
40 addHttpRequestPart("returnPage", "return.html")
41 addHttpRequestPart("type", "post")
42 addHttpRequestPart("id", "post1 post2 post3")
43 val posts = listOf(mock<Post>(), mock())
44 addPost("post1", posts[0])
45 addPost("post3", posts[1])
46 verifyRedirect("return.html") {
47 verify(core).markPostKnown(posts[0])
48 verify(core).markPostKnown(posts[1])
53 fun `replies can be marked as known`() {
55 addHttpRequestPart("returnPage", "return.html")
56 addHttpRequestPart("type", "reply")
57 addHttpRequestPart("id", "reply1 reply2 reply3")
58 val replies = listOf(mock<PostReply>(), mock())
59 addPostReply("reply1", replies[0])
60 addPostReply("reply3", replies[1])
61 verifyRedirect("return.html") {
62 verify(core).markReplyKnown(replies[0])
63 verify(core).markReplyKnown(replies[1])
68 fun `sones can be marked as known`() {
70 addHttpRequestPart("returnPage", "return.html")
71 addHttpRequestPart("type", "sone")
72 addHttpRequestPart("id", "sone1 sone2 sone3")
73 val sones = listOf(mock<Sone>(), mock())
74 addSone("sone1", sones[0])
75 addSone("sone3", sones[1])
76 verifyRedirect("return.html") {
77 verify(core).markSoneKnown(sones[0])
78 verify(core).markSoneKnown(sones[1])
83 fun `different type redirects to invalid page`() {
85 addHttpRequestPart("type", "foo")
86 verifyRedirect("invalid.html")
90 fun `page can be created by dependency injection`() {
91 assertThat(baseInjector.getInstance<MarkAsKnownPage>(), notNullValue())