X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FCreateSonePageTest.kt;h=6a4a2b0a069e0cbac44664cfb37911afc4a57af3;hp=04ed0aaf85e7cb2bbf936a630bb023dc325c6a59;hb=2e6be6f2fb6afede009dacc48b8e3318e30e5057;hpb=05fb821e72072bde52f383bdc5a988da67f66d0c diff --git a/src/test/kotlin/net/pterodactylus/sone/web/pages/CreateSonePageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/pages/CreateSonePageTest.kt index 04ed0aa..6a4a2b0 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/pages/CreateSonePageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/CreateSonePageTest.kt @@ -1,27 +1,21 @@ package net.pterodactylus.sone.web.pages -import net.pterodactylus.sone.data.Profile -import net.pterodactylus.sone.data.Sone -import net.pterodactylus.sone.freenet.wot.OwnIdentity -import net.pterodactylus.sone.test.mock -import net.pterodactylus.sone.test.whenever -import net.pterodactylus.sone.web.pages.WebPageTest -import net.pterodactylus.sone.web.pages.CreateSonePage -import net.pterodactylus.util.web.Method.POST -import org.hamcrest.MatcherAssert.assertThat -import org.hamcrest.Matchers.contains -import org.hamcrest.Matchers.equalTo -import org.junit.Test +import net.pterodactylus.sone.data.* +import net.pterodactylus.sone.freenet.wot.* +import net.pterodactylus.sone.test.* +import net.pterodactylus.sone.web.* +import net.pterodactylus.sone.web.page.* +import net.pterodactylus.util.web.Method.* +import org.hamcrest.MatcherAssert.* +import org.hamcrest.Matchers.* +import org.junit.* import org.mockito.ArgumentMatchers.anyString import org.mockito.Mockito.verify /** * Unit test for [CreateSonePage]. */ -class CreateSonePageTest: WebPageTest() { - - private val page = CreateSonePage(template, webInterface) - override fun getPage() = page +class CreateSonePageTest : WebPageTest(::CreateSonePage) { private val localSones_ = listOf( createSone("local-sone1"), @@ -85,7 +79,7 @@ class CreateSonePageTest: WebPageTest() { @Test fun `sone is created and logged in`() { addExistingOwnIdentities() - request("", POST) + setMethod(POST) addHttpRequestPart("identity", "own-id-3") val newSone = mock() whenever(core.createSone(ownIdentities_[2])).thenReturn(newSone) @@ -96,7 +90,7 @@ class CreateSonePageTest: WebPageTest() { @Test fun `on invalid identity id a flag is set in the template context`() { - request("", POST) + setMethod(POST) addHttpRequestParameter("identity", "own-id-3") page.processTemplate(freenetRequest, templateContext) assertThat(templateContext["errorNoIdentity"], equalTo(true)) @@ -105,7 +99,7 @@ class CreateSonePageTest: WebPageTest() { @Test fun `if sone is not created user is still redirected to index`() { addExistingOwnIdentities() - request("", POST) + setMethod(POST) addHttpRequestPart("identity", "own-id-3") whenever(core.createSone(ownIdentities_[2])).thenReturn(null) verifyRedirect("index.html") { @@ -116,7 +110,7 @@ class CreateSonePageTest: WebPageTest() { @Test fun `create sone is not shown in menu if full access is required but client doesn’t have full access`() { - core.preferences.isRequireFullAccess = true + core.preferences.newRequireFullAccess = true assertThat(page.isEnabled(toadletContext), equalTo(false)) } @@ -141,10 +135,25 @@ class CreateSonePageTest: WebPageTest() { @Test fun `create sone is shown in menu if no sone is logged in and client has full access`() { - core.preferences.isRequireFullAccess = true + core.preferences.newRequireFullAccess = true whenever(toadletContext.isAllowedFullAccess).thenReturn(true) unsetCurrentSone() assertThat(page.isEnabled(toadletContext), equalTo(true)) } + @Test + fun `page can be created by dependency injection`() { + assertThat(baseInjector.getInstance(), notNullValue()) + } + + @Test + fun `page is annotated with the correct menuname`() { + assertThat(page.menuName, equalTo("CreateSone")) + } + + @Test + fun `page is annotated with the correct template path`() { + assertThat(page.templatePath, equalTo("/templates/createSone.html")) + } + }