X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FEditAlbumPageTest.kt;h=ed96a8073e27632209d6b9b3617b103db7be4888;hb=3c2ae3673b11f5f0a4e0946c8ee8f5cbbe2d6a0a;hp=963ab1e7c50749a369b1d9959a2006ed1cc5a262;hpb=8dd998006410b230392c0df06a29f95be1571b6f;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/web/EditAlbumPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/EditAlbumPageTest.kt index 963ab1e..ed96a80 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/EditAlbumPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/EditAlbumPageTest.kt @@ -6,9 +6,10 @@ import net.pterodactylus.sone.data.Sone import net.pterodactylus.sone.test.mock import net.pterodactylus.sone.test.mockBuilder 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 +import org.hamcrest.Matchers.equalTo import org.junit.Before import org.junit.Test import org.mockito.Mockito.verify @@ -16,7 +17,7 @@ import org.mockito.Mockito.verify /** * Unit test for [EditAlbumPage]. */ -class EditAlbumPageTest : WebPageTest() { +class EditAlbumPageTest: WebPageTest() { private val page = EditAlbumPage(template, webInterface) @@ -25,6 +26,8 @@ class EditAlbumPageTest : WebPageTest() { private val modifier = mockBuilder() private val sone = mock() + override fun getPage() = page + @Before fun setup() { whenever(album.id).thenReturn("album-id") @@ -38,16 +41,31 @@ class EditAlbumPageTest : WebPageTest() { } @Test + fun `page returns correct path`() { + assertThat(page.path, equalTo("editAlbum.html")) + } + + @Test + fun `page requires login`() { + assertThat(page.requiresLogin(), equalTo(true)) + } + + @Test + fun `page returns correct title`() { + whenever(l10n.getString("Page.EditAlbum.Title")).thenReturn("edit album page") + assertThat(page.getPageTitle(freenetRequest), equalTo("edit album page")) + } + + @Test fun `get request does not redirect`() { request("", GET) - page.handleRequest(freenetRequest, templateContext) + page.processTemplate(freenetRequest, templateContext) } @Test fun `post request with invalid album redirects to invalid page`() { request("", POST) - expectedException.expect(redirectsTo("invalid.html")) - page.handleRequest(freenetRequest, templateContext) + verifyRedirect("invalid.html") } @Test @@ -56,8 +74,7 @@ class EditAlbumPageTest : WebPageTest() { whenever(sone.isLocal).thenReturn(false) addAlbum("album-id", album) addHttpRequestParameter("album", "album-id") - expectedException.expect(redirectsTo("noPermission.html")) - page.handleRequest(freenetRequest, templateContext) + verifyRedirect("noPermission.html") } @Test @@ -66,10 +83,7 @@ class EditAlbumPageTest : WebPageTest() { addAlbum("album-id", album) addHttpRequestParameter("album", "album-id") addHttpRequestParameter("moveLeft", "true") - expectedException.expect(redirectsTo("imageBrowser.html?album=parent-id")) - try { - page.handleRequest(freenetRequest, templateContext) - } finally { + verifyRedirect("imageBrowser.html?album=parent-id") { verify(parentAlbum).moveAlbumUp(album) verify(core).touchConfiguration() } @@ -81,10 +95,7 @@ class EditAlbumPageTest : WebPageTest() { addAlbum("album-id", album) addHttpRequestParameter("album", "album-id") addHttpRequestParameter("moveRight", "true") - expectedException.expect(redirectsTo("imageBrowser.html?album=parent-id")) - try { - page.handleRequest(freenetRequest, templateContext) - } finally { + verifyRedirect("imageBrowser.html?album=parent-id") { verify(parentAlbum).moveAlbumDown(album) verify(core).touchConfiguration() } @@ -96,8 +107,7 @@ class EditAlbumPageTest : WebPageTest() { addAlbum("album-id", album) addHttpRequestParameter("album", "album-id") whenever(modifier.setTitle("")).thenThrow(AlbumTitleMustNotBeEmpty()) - expectedException.expect(redirectsTo("emptyAlbumTitle.html")) - page.handleRequest(freenetRequest, templateContext) + verifyRedirect("emptyAlbumTitle.html") } @Test @@ -107,10 +117,7 @@ class EditAlbumPageTest : WebPageTest() { addHttpRequestParameter("album", "album-id") addHttpRequestParameter("title", "title") addHttpRequestParameter("description", "description") - expectedException.expect(redirectsTo("imageBrowser.html?album=album-id")) - try { - page.handleRequest(freenetRequest, templateContext) - } finally { + verifyRedirect("imageBrowser.html?album=album-id") { verify(modifier).setTitle("title") verify(modifier).setDescription("description") verify(modifier).update()