X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FDeleteAlbumPageTest.kt;h=ccf2123536ac2aea265dc3763e4dd8087bef20e7;hp=3efd109065fa37279b826f02f8924e6e2becd389;hb=a76956e389fcfe6282ad4ca7156bbf76327bb0c0;hpb=de7568a82eb4150bf6d2b0553841b7b69f84c968 diff --git a/src/test/kotlin/net/pterodactylus/sone/web/pages/DeleteAlbumPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/pages/DeleteAlbumPageTest.kt index 3efd109..ccf2123 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/pages/DeleteAlbumPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/DeleteAlbumPageTest.kt @@ -1,33 +1,25 @@ package net.pterodactylus.sone.web.pages -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.pages.WebPageTest -import net.pterodactylus.sone.web.pages.DeleteAlbumPage -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 net.pterodactylus.sone.data.* +import net.pterodactylus.sone.test.* +import net.pterodactylus.sone.web.* +import net.pterodactylus.sone.web.page.* +import net.pterodactylus.util.web.Method.* +import org.hamcrest.MatcherAssert.* +import org.hamcrest.Matchers.* +import org.junit.* import org.mockito.ArgumentMatchers.anyString import org.mockito.Mockito.verify /** * Unit test for [DeleteAlbumPage]. */ -class DeleteAlbumPageTest: WebPageTest() { - - private val page = DeleteAlbumPage(template, webInterface) +class DeleteAlbumPageTest: WebPageTest(::DeleteAlbumPage) { private val sone = mock() private val album = mock() private val parentAlbum = mock() - override fun getPage() = page - @Before fun setupAlbums() { whenever(sone.id).thenReturn("sone-id") @@ -52,14 +44,12 @@ class DeleteAlbumPageTest: WebPageTest() { @Test fun `get request with invalid album ID results in redirect to invalid page`() { - request("", GET) whenever(core.getAlbum(anyString())).thenReturn(null) verifyRedirect("invalid.html") } @Test fun `get request with valid album ID sets album in template context`() { - request("", GET) val album = mock() addAlbum("album-id", album) addHttpRequestParameter("album", "album-id") @@ -69,33 +59,33 @@ class DeleteAlbumPageTest: WebPageTest() { @Test fun `post request redirects to invalid page if album is invalid`() { - request("", POST) + setMethod(POST) verifyRedirect("invalid.html") } @Test fun `post request redirects to no permissions page if album is not local`() { - request("", POST) + setMethod(POST) whenever(sone.isLocal).thenReturn(false) addAlbum("album-id", album) - addHttpRequestParameter("album", "album-id") + addHttpRequestPart("album", "album-id") verifyRedirect("noPermission.html") } @Test fun `post request with abort delete parameter set redirects to album browser`() { - request("", POST) + setMethod(POST) addAlbum("album-id", album) - addHttpRequestParameter("album", "album-id") - addHttpRequestParameter("abortDelete", "true") + addHttpRequestPart("album", "album-id") + addHttpRequestPart("abortDelete", "true") verifyRedirect("imageBrowser.html?album=album-id") } @Test fun `album is deleted and page redirects to sone if parent album is root album`() { - request("", POST) + setMethod(POST) addAlbum("album-id", album) - addHttpRequestParameter("album", "album-id") + addHttpRequestPart("album", "album-id") verifyRedirect("imageBrowser.html?sone=sone-id") { verify(core).deleteAlbum(album) } @@ -103,14 +93,24 @@ class DeleteAlbumPageTest: WebPageTest() { @Test fun `album is deleted and page redirects to album if parent album is not root album`() { - request("", POST) + setMethod(POST) whenever(parentAlbum.isRoot).thenReturn(false) - whenever(sone.rootAlbum).thenReturn(mock()) + whenever(sone.rootAlbum).thenReturn(mock()) addAlbum("album-id", album) - addHttpRequestParameter("album", "album-id") + addHttpRequestPart("album", "album-id") verifyRedirect("imageBrowser.html?album=parent-id") { verify(core).deleteAlbum(album) } } + @Test + fun `page can be created by dependency injection`() { + assertThat(baseInjector.getInstance(), notNullValue()) + } + + @Test + fun `page is annotated with correct template path`() { + assertThat(page.templatePath, equalTo("/templates/deleteAlbum.html")) + } + }