X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FDeleteAlbumPageTest.kt;h=9276be7f4c2472695cf186eb94dec8922324a100;hb=58418a5d13a1e8da185f1982f662c34eec2c4b1a;hp=d742bb6d9af07c692693b3c70529d6832eb87443;hpb=1491b5f7437ef61080d83d323388a547b6dc32c2;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/web/DeleteAlbumPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/DeleteAlbumPageTest.kt index d742bb6..9276be7 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/DeleteAlbumPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/DeleteAlbumPageTest.kt @@ -4,7 +4,6 @@ import net.pterodactylus.sone.data.Album import net.pterodactylus.sone.data.Sone import net.pterodactylus.sone.test.mock 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 @@ -17,7 +16,7 @@ import org.mockito.Mockito.verify /** * Unit test for [DeleteAlbumPage]. */ -class DeleteAlbumPageTest : WebPageTest() { +class DeleteAlbumPageTest: WebPageTest() { private val page = DeleteAlbumPage(template, webInterface) @@ -25,11 +24,14 @@ class DeleteAlbumPageTest : WebPageTest() { private val album = mock() private val parentAlbum = mock() + override fun getPage() = page + @Before fun setupAlbums() { whenever(sone.id).thenReturn("sone-id") whenever(sone.isLocal).thenReturn(true) whenever(parentAlbum.id).thenReturn("parent-id") + whenever(parentAlbum.isRoot).thenReturn(true) whenever(album.id).thenReturn("album-id") whenever(album.sone).thenReturn(sone) whenever(album.parent).thenReturn(parentAlbum) @@ -37,11 +39,20 @@ class DeleteAlbumPageTest : WebPageTest() { } @Test + fun `page returns correct path`() { + assertThat(page.path, equalTo("deleteAlbum.html")) + } + + @Test + fun `page requires login`() { + assertThat(page.requiresLogin(), equalTo(true)) + } + + @Test fun `get request with invalid album ID results in redirect to invalid page`() { request("", GET) whenever(core.getAlbum(anyString())).thenReturn(null) - expectedException.expect(redirectsTo("invalid.html")) - page.handleRequest(freenetRequest, templateContext) + verifyRedirect("invalid.html") } @Test @@ -50,15 +61,14 @@ class DeleteAlbumPageTest : WebPageTest() { val album = mock() addAlbum("album-id", album) addHttpRequestParameter("album", "album-id") - page.handleRequest(freenetRequest, templateContext) + page.processTemplate(freenetRequest, templateContext) assertThat(templateContext["album"], equalTo(album)) } @Test fun `post request redirects to invalid page if album is invalid`() { request("", POST) - expectedException.expect(redirectsTo("invalid.html")) - page.handleRequest(freenetRequest, templateContext) + verifyRedirect("invalid.html") } @Test @@ -67,8 +77,7 @@ class DeleteAlbumPageTest : 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 @@ -77,8 +86,7 @@ class DeleteAlbumPageTest : WebPageTest() { addAlbum("album-id", album) addHttpRequestParameter("album", "album-id") addHttpRequestParameter("abortDelete", "true") - expectedException.expect(redirectsTo("imageBrowser.html?album=album-id")) - page.handleRequest(freenetRequest, templateContext) + verifyRedirect("imageBrowser.html?album=album-id") } @Test @@ -86,10 +94,7 @@ class DeleteAlbumPageTest : WebPageTest() { request("", POST) addAlbum("album-id", album) addHttpRequestParameter("album", "album-id") - expectedException.expect(redirectsTo("imageBrowser.html?sone=sone-id")) - try { - page.handleRequest(freenetRequest, templateContext) - } finally { + verifyRedirect("imageBrowser.html?sone=sone-id") { verify(core).deleteAlbum(album) } } @@ -97,13 +102,11 @@ class DeleteAlbumPageTest : WebPageTest() { @Test fun `album is deleted and page redirects to album if parent album is not root album`() { request("", POST) + whenever(parentAlbum.isRoot).thenReturn(false) whenever(sone.rootAlbum).thenReturn(mock()) addAlbum("album-id", album) addHttpRequestParameter("album", "album-id") - expectedException.expect(redirectsTo("imageBrowser.html?album=parent-id")) - try { - page.handleRequest(freenetRequest, templateContext) - } finally { + verifyRedirect("imageBrowser.html?album=parent-id") { verify(core).deleteAlbum(album) } }