1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.sone.data.*
4 import net.pterodactylus.sone.test.*
5 import net.pterodactylus.sone.web.*
6 import net.pterodactylus.util.web.Method.*
7 import org.hamcrest.MatcherAssert.*
8 import org.hamcrest.Matchers.*
10 import org.mockito.Mockito.*
13 * Unit test for [MarkAsKnownPage].
15 class MarkAsKnownPageTest : WebPageTest(::MarkAsKnownPage) {
18 fun `page returns correct path`() {
19 assertThat(page.path, equalTo("markAsKnown.html"))
23 fun `page does not require login`() {
24 assertThat(page.requiresLogin(), equalTo(false))
28 fun `page returns correct title`() {
29 addTranslation("Page.MarkAsKnown.Title", "mark as known page title")
30 assertThat(page.getPageTitle(soneRequest), equalTo("mark as known page title"))
34 fun `posts can be marked as known`() {
36 addHttpRequestPart("returnPage", "return.html")
37 addHttpRequestPart("type", "post")
38 addHttpRequestPart("id", "post1 post2 post3")
39 val posts = listOf(mock<Post>(), mock())
40 addPost("post1", posts[0])
41 addPost("post3", posts[1])
42 verifyRedirect("return.html") {
43 verify(core).markPostKnown(posts[0])
44 verify(core).markPostKnown(posts[1])
49 fun `replies can be marked as known`() {
51 addHttpRequestPart("returnPage", "return.html")
52 addHttpRequestPart("type", "reply")
53 addHttpRequestPart("id", "reply1 reply2 reply3")
54 val replies = listOf(mock<PostReply>(), mock())
55 addPostReply("reply1", replies[0])
56 addPostReply("reply3", replies[1])
57 verifyRedirect("return.html") {
58 verify(core).markReplyKnown(replies[0])
59 verify(core).markReplyKnown(replies[1])
64 fun `sones can be marked as known`() {
66 addHttpRequestPart("returnPage", "return.html")
67 addHttpRequestPart("type", "sone")
68 addHttpRequestPart("id", "sone1 sone2 sone3")
69 val sones = listOf(mock<Sone>(), mock())
70 addSone("sone1", sones[0])
71 addSone("sone3", sones[1])
72 verifyRedirect("return.html") {
73 verify(core).markSoneKnown(sones[0])
74 verify(core).markSoneKnown(sones[1])
79 fun `different type redirects to invalid page`() {
81 addHttpRequestPart("type", "foo")
82 verifyRedirect("invalid.html")
86 fun `page can be created by dependency injection`() {
87 assertThat(baseInjector.getInstance<MarkAsKnownPage>(), notNullValue())