Remove obsolete loading animation
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / LoginPageTest.kt
index fbfeabe..1dbe3cd 100644 (file)
@@ -6,7 +6,6 @@ import net.pterodactylus.sone.freenet.wot.OwnIdentity
 import net.pterodactylus.sone.test.mock
 import net.pterodactylus.sone.test.thenReturnMock
 import net.pterodactylus.sone.test.whenever
-import net.pterodactylus.sone.web.WebTestUtils.redirectsTo
 import net.pterodactylus.util.web.Method.GET
 import net.pterodactylus.util.web.Method.POST
 import org.hamcrest.MatcherAssert.assertThat
@@ -27,6 +26,8 @@ class LoginPageTest : WebPageTest() {
 
        private val sones = listOf(createSone("Sone", "Test"), createSone("Test"), createSone("Sone"))
 
+       override fun getPage() = page
+
        private fun createSone(vararg contexts: String) = mock<Sone>().apply {
                whenever(id).thenReturn(hashCode().toString())
                val identity = mock<OwnIdentity>().apply {
@@ -48,11 +49,28 @@ class LoginPageTest : WebPageTest() {
        }
 
        @Test
+       fun `page returns correct path`() {
+           assertThat(page.path, equalTo("login.html"))
+       }
+
+       @Test
+       fun `page does not require login`() {
+           assertThat(page.requiresLogin(), equalTo(false))
+       }
+
+       @Test
        @Suppress("UNCHECKED_CAST")
-       fun `get request stores sone and identities without sones in template context`() {
+       fun `get request stores sones in template context`() {
                request("", GET)
-               page.handleRequest(freenetRequest, templateContext)
+               page.processTemplate(freenetRequest, templateContext)
                assertThat(templateContext["sones"] as Iterable<Sone>, containsInAnyOrder(sones[0], sones[1], sones[2]))
+       }
+
+       @Test
+       @Suppress("UNCHECKED_CAST")
+       fun `get request stores identities without sones in template context`() {
+               request("", GET)
+               page.processTemplate(freenetRequest, templateContext)
                assertThat(templateContext["identitiesWithoutSone"] as Iterable<Identity>, contains(sones[1].identity))
        }
 
@@ -60,19 +78,16 @@ class LoginPageTest : WebPageTest() {
        @Suppress("UNCHECKED_CAST")
        fun `post request with invalid sone sets sones and identities without sone in template context`() {
                request("", POST)
-               page.handleRequest(freenetRequest, templateContext)
+               page.processTemplate(freenetRequest, templateContext)
                assertThat(templateContext["sones"] as Iterable<Sone>, containsInAnyOrder(sones[0], sones[1], sones[2]))
                assertThat(templateContext["identitiesWithoutSone"] as Iterable<Identity>, contains(sones[1].identity))
        }
 
        @Test
-       fun `post request with valid sone and redirects to index page`() {
+       fun `post request with valid sone logs in the sone and redirects to index page`() {
                request("", POST)
                addHttpRequestParameter("sone-id", "sone2")
-               expectedException.expect(redirectsTo("index.html"))
-               try {
-                       page.handleRequest(freenetRequest, templateContext)
-               } finally {
+               verifyRedirect("index.html") {
                        verify(webInterface).setCurrentSone(toadletContext, sones[1])
                }
        }
@@ -82,10 +97,7 @@ class LoginPageTest : WebPageTest() {
                request("", POST)
                addHttpRequestParameter("sone-id", "sone2")
                addHttpRequestParameter("target", "foo.html")
-               expectedException.expect(redirectsTo("foo.html"))
-               try {
-                       page.handleRequest(freenetRequest, templateContext)
-               } finally {
+               verifyRedirect("foo.html") {
                        verify(webInterface).setCurrentSone(toadletContext, sones[1])
                }
        }