X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FSoneTemplatePageTest.kt;h=d227a848c08e5e85d4b5872d19fa77e7f550050c;hp=d8425d382f48fad40148962b364d13e87fcc5eb1;hb=dc47bafb2d0c4a2a440389158039993d10cbfd08;hpb=d63b7445567b65ffdbd50fa8f7ffbfea1304dff9 diff --git a/src/test/kotlin/net/pterodactylus/sone/web/pages/SoneTemplatePageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/pages/SoneTemplatePageTest.kt index d8425d3..d227a84 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/pages/SoneTemplatePageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/SoneTemplatePageTest.kt @@ -4,7 +4,7 @@ import net.pterodactylus.sone.data.Sone import net.pterodactylus.sone.main.SonePlugin import net.pterodactylus.sone.test.mock import net.pterodactylus.sone.test.whenever -import net.pterodactylus.sone.web.page.FreenetRequest +import net.pterodactylus.sone.web.page.* import net.pterodactylus.util.notify.Notification import net.pterodactylus.util.template.TemplateContext import net.pterodactylus.util.version.Version @@ -22,6 +22,10 @@ import org.junit.Test */ class SoneTemplatePageTest : WebPageTest({ template, webInterface -> object : SoneTemplatePage("path.html", webInterface, template, requiresLogin = true) {} }) { + init { + request("index.html") + } + @Test fun `page title is empty string if no page title key was given`() { SoneTemplatePage("path.html", webInterface, template, requiresLogin = false).let { page -> @@ -78,7 +82,7 @@ class SoneTemplatePageTest : WebPageTest({ template, webInterface -> object : So @Test fun `local sones are set in template context`() { - val localSones = listOf(mock(), mock()) + val localSones = listOf(mock(), mock()) whenever(core.localSones).thenReturn(localSones) verifyVariableMatches("localSones", containsInAnyOrder(*localSones.toTypedArray())) } @@ -167,14 +171,12 @@ class SoneTemplatePageTest : WebPageTest({ template, webInterface -> object : So @Test fun `redirect does happen if sone is not logged in`() { unsetCurrentSone() - request("index.html") assertThat(page.getRedirectTarget(freenetRequest), equalTo("login.html?target=index.html")) } @Test fun `redirect does happen with parameters encoded correctly if sone is not logged in`() { unsetCurrentSone() - request("index.html") addHttpRequestParameter("foo", "b=r") addHttpRequestParameter("baz", "q&o") assertThat(page.getRedirectTarget(freenetRequest), anyOf( @@ -185,7 +187,7 @@ class SoneTemplatePageTest : WebPageTest({ template, webInterface -> object : So @Test fun `page is disabled if full access is required but request does not have full access`() { - core.preferences.isRequireFullAccess = true + core.preferences.newRequireFullAccess = true assertThat(page.isEnabled(toadletContext), equalTo(false)) } @@ -202,7 +204,7 @@ class SoneTemplatePageTest : WebPageTest({ template, webInterface -> object : So @Test fun `page is enabled if full access is required and request has full access and login is required and there is a current sone`() { - core.preferences.isRequireFullAccess = true + core.preferences.newRequireFullAccess = true whenever(toadletContext.isAllowedFullAccess).thenReturn(true) assertThat(page.isEnabled(toadletContext), equalTo(true)) } @@ -214,4 +216,16 @@ class SoneTemplatePageTest : WebPageTest({ template, webInterface -> object : So } } + @Test + fun `handle request with sone request is called`() { + var called = false + val page = object : SoneTemplatePage("path.html", webInterface, template) { + override fun handleRequest(soneRequest: SoneRequest, templateContext: TemplateContext) { + called = true + } + } + page.processTemplate(freenetRequest, templateContext) + assertThat(called, equalTo(true)) + } + }