✨ Annotate KnownSonesPage with MenuName
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / pages / SoneTemplatePageTest.kt
index 0206053..3eba7cf 100644 (file)
@@ -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,10 +22,14 @@ 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 ->
-                       assertThat(page.getPageTitle(freenetRequest), equalTo(""))
+                       assertThat(page.getPageTitle(soneRequest), equalTo(""))
                }
        }
 
@@ -33,7 +37,7 @@ class SoneTemplatePageTest : WebPageTest({ template, webInterface -> object : So
        fun `page title is retrieved from l10n if page title key is given`() {
                SoneTemplatePage("path.html", webInterface, template, "page.title", false).let { page ->
                        whenever(l10n.getString("page.title")).thenReturn("Page Title")
-                       assertThat(page.getPageTitle(freenetRequest), equalTo("Page Title"))
+                       assertThat(page.getPageTitle(soneRequest), equalTo("Page Title"))
                }
        }
 
@@ -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(
@@ -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))
+       }
+
 }