X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FMarkAsKnownPageTest.kt;fp=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FMarkAsKnownPageTest.kt;h=cc19b600f56d7dfa0986aef15c9fdf55011102e5;hb=de7568a82eb4150bf6d2b0553841b7b69f84c968;hp=0000000000000000000000000000000000000000;hpb=9acbc5bdec4ccb752e0856a501568b0bb6161579;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/web/pages/MarkAsKnownPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/pages/MarkAsKnownPageTest.kt new file mode 100644 index 0000000..cc19b60 --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/MarkAsKnownPageTest.kt @@ -0,0 +1,69 @@ +package net.pterodactylus.sone.web.pages + +import net.pterodactylus.sone.data.Post +import net.pterodactylus.sone.data.PostReply +import net.pterodactylus.sone.data.Sone +import net.pterodactylus.sone.test.mock +import net.pterodactylus.sone.web.pages.MarkAsKnownPage +import net.pterodactylus.sone.web.pages.WebPageTest +import org.junit.Test +import org.mockito.Mockito.verify + +/** + * Unit test for [MarkAsKnownPage]. + */ +class MarkAsKnownPageTest : WebPageTest() { + + private val page = MarkAsKnownPage(template, webInterface) + + override fun getPage() = page + + @Test + fun `posts can be marked as known`() { + addHttpRequestParameter("returnPage", "return.html") + addHttpRequestParameter("type", "post") + addHttpRequestParameter("id", "post1 post2 post3") + val posts = listOf(mock(), mock()) + addPost("post1", posts[0]) + addPost("post3", posts[1]) + verifyRedirect("return.html") { + verify(core).markPostKnown(posts[0]) + verify(core).markPostKnown(posts[1]) + } + } + + @Test + fun `replies can be marked as known`() { + addHttpRequestParameter("returnPage", "return.html") + addHttpRequestParameter("type", "reply") + addHttpRequestParameter("id", "reply1 reply2 reply3") + val replies = listOf(mock(), mock()) + addPostReply("reply1", replies[0]) + addPostReply("reply3", replies[1]) + verifyRedirect("return.html") { + verify(core).markReplyKnown(replies[0]) + verify(core).markReplyKnown(replies[1]) + } + } + + @Test + fun `sones can be marked as known`() { + addHttpRequestParameter("returnPage", "return.html") + addHttpRequestParameter("type", "sone") + addHttpRequestParameter("id", "sone1 sone2 sone3") + val sones = listOf(mock(), mock()) + addSone("sone1", sones[0]) + addSone("sone3", sones[1]) + verifyRedirect("return.html") { + verify(core).markSoneKnown(sones[0]) + verify(core).markSoneKnown(sones[1]) + } + } + + @Test + fun `different type redirects to invalid page`() { + addHttpRequestParameter("type", "foo") + verifyRedirect("invalid.html") + } + +}