X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FMarkAsKnownPageTest.kt;h=2c6dbaec7092e01831736a07d25adf124b95be30;hp=cc19b600f56d7dfa0986aef15c9fdf55011102e5;hb=03c29a3838e23ed0b9731ca4d84cf58038c30dfe;hpb=de7568a82eb4150bf6d2b0553841b7b69f84c968 diff --git a/src/test/kotlin/net/pterodactylus/sone/web/pages/MarkAsKnownPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/pages/MarkAsKnownPageTest.kt index cc19b60..2c6dbae 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/pages/MarkAsKnownPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/MarkAsKnownPageTest.kt @@ -3,27 +3,44 @@ 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.getInstance import net.pterodactylus.sone.test.mock -import net.pterodactylus.sone.web.pages.MarkAsKnownPage -import net.pterodactylus.sone.web.pages.WebPageTest +import net.pterodactylus.sone.web.baseInjector +import net.pterodactylus.util.web.Method.POST +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.equalTo +import org.hamcrest.Matchers.notNullValue 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")) + } + + @Test + fun `page does not require login`() { + assertThat(page.requiresLogin(), equalTo(false)) + } - override fun getPage() = page + @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") - val posts = listOf(mock(), mock()) + setMethod(POST) + addHttpRequestPart("returnPage", "return.html") + addHttpRequestPart("type", "post") + addHttpRequestPart("id", "post1 post2 post3") + val posts = listOf(mock(), mock()) addPost("post1", posts[0]) addPost("post3", posts[1]) verifyRedirect("return.html") { @@ -34,10 +51,11 @@ class MarkAsKnownPageTest : WebPageTest() { @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()) + setMethod(POST) + addHttpRequestPart("returnPage", "return.html") + addHttpRequestPart("type", "reply") + addHttpRequestPart("id", "reply1 reply2 reply3") + val replies = listOf(mock(), mock()) addPostReply("reply1", replies[0]) addPostReply("reply3", replies[1]) verifyRedirect("return.html") { @@ -48,10 +66,11 @@ class MarkAsKnownPageTest : WebPageTest() { @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()) + setMethod(POST) + addHttpRequestPart("returnPage", "return.html") + addHttpRequestPart("type", "sone") + addHttpRequestPart("id", "sone1 sone2 sone3") + val sones = listOf(mock(), mock()) addSone("sone1", sones[0]) addSone("sone3", sones[1]) verifyRedirect("return.html") { @@ -62,8 +81,14 @@ class MarkAsKnownPageTest : WebPageTest() { @Test fun `different type redirects to invalid page`() { - addHttpRequestParameter("type", "foo") + setMethod(POST) + addHttpRequestPart("type", "foo") verifyRedirect("invalid.html") } + @Test + fun `page can be created by dependency injection`() { + assertThat(baseInjector.getInstance(), notNullValue()) + } + }