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 net.pterodactylus.util.web.Method.POST
+import org.hamcrest.MatcherAssert.assertThat
+import org.hamcrest.Matchers.equalTo
import org.junit.Test
import org.mockito.Mockito.verify
/**
* Unit test for [MarkAsKnownPage].
*/
-class MarkAsKnownPageTest : WebPageTest() {
+class MarkAsKnownPageTest: WebPageTest(::MarkAsKnownPage) {
- private val page = MarkAsKnownPage(template, webInterface)
+ @Test
+ fun `page returns correct path`() {
+ assertThat(page.path, equalTo("markAsKnown.html"))
+ }
- override fun getPage() = page
+ @Test
+ fun `page does not require login`() {
+ assertThat(page.requiresLogin(), equalTo(false))
+ }
+
+ @Test
+ fun `page returns correct title`() {
+ addTranslation("Page.MarkAsKnown.Title", "mark as known page title")
+ assertThat(page.getPageTitle(freenetRequest), equalTo("mark as known page title"))
+ }
@Test
fun `posts can be marked as known`() {
- addHttpRequestParameter("returnPage", "return.html")
- addHttpRequestParameter("type", "post")
- addHttpRequestParameter("id", "post1 post2 post3")
+ setMethod(POST)
+ addHttpRequestPart("returnPage", "return.html")
+ addHttpRequestPart("type", "post")
+ addHttpRequestPart("id", "post1 post2 post3")
val posts = listOf(mock<Post>(), mock<Post>())
addPost("post1", posts[0])
addPost("post3", posts[1])
@Test
fun `replies can be marked as known`() {
- addHttpRequestParameter("returnPage", "return.html")
- addHttpRequestParameter("type", "reply")
- addHttpRequestParameter("id", "reply1 reply2 reply3")
+ setMethod(POST)
+ addHttpRequestPart("returnPage", "return.html")
+ addHttpRequestPart("type", "reply")
+ addHttpRequestPart("id", "reply1 reply2 reply3")
val replies = listOf(mock<PostReply>(), mock<PostReply>())
addPostReply("reply1", replies[0])
addPostReply("reply3", replies[1])
@Test
fun `sones can be marked as known`() {
- addHttpRequestParameter("returnPage", "return.html")
- addHttpRequestParameter("type", "sone")
- addHttpRequestParameter("id", "sone1 sone2 sone3")
+ setMethod(POST)
+ addHttpRequestPart("returnPage", "return.html")
+ addHttpRequestPart("type", "sone")
+ addHttpRequestPart("id", "sone1 sone2 sone3")
val sones = listOf(mock<Sone>(), mock<Sone>())
addSone("sone1", sones[0])
addSone("sone3", sones[1])
@Test
fun `different type redirects to invalid page`() {
- addHttpRequestParameter("type", "foo")
+ setMethod(POST)
+ addHttpRequestPart("type", "foo")
verifyRedirect("invalid.html")
}