X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FImageBrowserPageTest.kt;h=0411030c7d28355d8450e0e2d42efff104f73c5b;hp=d64e4752de09c71226786286d913ce02a75aeee7;hb=fc8e9ea5c978d2f5a00894e093364ae62f18934b;hpb=6b29b49714912ff5e3e410d2484699cdf8041b90 diff --git a/src/test/kotlin/net/pterodactylus/sone/web/pages/ImageBrowserPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/pages/ImageBrowserPageTest.kt index d64e475..0411030 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/pages/ImageBrowserPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/ImageBrowserPageTest.kt @@ -3,19 +3,20 @@ package net.pterodactylus.sone.web.pages import net.pterodactylus.sone.data.Album import net.pterodactylus.sone.data.Image import net.pterodactylus.sone.data.Sone +import net.pterodactylus.sone.test.getInstance import net.pterodactylus.sone.test.mock import net.pterodactylus.sone.test.whenever +import net.pterodactylus.sone.web.baseInjector import org.hamcrest.MatcherAssert.assertThat import org.hamcrest.Matchers.contains import org.hamcrest.Matchers.equalTo +import org.hamcrest.Matchers.notNullValue import org.junit.Test /** * Unit test for [ImageBrowserPage]. */ -class ImageBrowserPageTest : WebPageTest() { - - private val page = ImageBrowserPage(template, webInterface) +class ImageBrowserPageTest: WebPageTest(::ImageBrowserPage) { @Test fun `page returns correct path`() { @@ -39,10 +40,11 @@ class ImageBrowserPageTest : WebPageTest() { addAlbum("album-id", album) addHttpRequestParameter("album", "album-id") addHttpRequestParameter("page", "5") - page.processTemplate(freenetRequest, templateContext) - assertThat(templateContext["albumRequested"], equalTo(true)) - assertThat(templateContext["album"], equalTo(album)) - assertThat(templateContext["page"], equalTo("5")) + verifyNoRedirect { + assertThat(templateContext["albumRequested"], equalTo(true)) + assertThat(templateContext["album"], equalTo(album)) + assertThat(templateContext["page"], equalTo("5")) + } } @Test @@ -50,9 +52,10 @@ class ImageBrowserPageTest : WebPageTest() { val image = mock() addImage("image-id", image) addHttpRequestParameter("image", "image-id") - page.processTemplate(freenetRequest, templateContext) - assertThat(templateContext["imageRequested"], equalTo(true)) - assertThat(templateContext["image"], equalTo(image)) + verifyNoRedirect { + assertThat(templateContext["imageRequested"], equalTo(true)) + assertThat(templateContext["image"], equalTo(image)) + } } @Test @@ -60,9 +63,10 @@ class ImageBrowserPageTest : WebPageTest() { val sone = mock() addSone("sone-id", sone) addHttpRequestParameter("sone", "sone-id") - page.processTemplate(freenetRequest, templateContext) - assertThat(templateContext["soneRequested"], equalTo(true)) - assertThat(templateContext["sone"], equalTo(sone)) + verifyNoRedirect { + assertThat(templateContext["soneRequested"], equalTo(true)) + assertThat(templateContext["sone"], equalTo(sone)) + } } @Test @@ -72,15 +76,35 @@ class ImageBrowserPageTest : WebPageTest() { val secondSone = createSone("third album", "fourth album") addSone("sone2", secondSone) addHttpRequestParameter("mode", "gallery") - page.processTemplate(freenetRequest, templateContext) - assertThat(templateContext["galleryRequested"], equalTo(true)) - @Suppress("UNCHECKED_CAST") - assertThat(templateContext["albums"] as Iterable, contains( - firstSone.rootAlbum.albums[0], - secondSone.rootAlbum.albums[1], - firstSone.rootAlbum.albums[1], - secondSone.rootAlbum.albums[0] - )) + verifyNoRedirect { + assertThat(templateContext["galleryRequested"], equalTo(true)) + @Suppress("UNCHECKED_CAST") + assertThat(templateContext["albums"] as Iterable, contains( + firstSone.rootAlbum.albums[0], + secondSone.rootAlbum.albums[1], + firstSone.rootAlbum.albums[1], + secondSone.rootAlbum.albums[0] + )) + } + } + + @Test + fun `get request for gallery can show second page`() { + core.preferences.newImagesPerPage = 2 + val firstSone = createSone("first album", "second album") + addSone("sone1", firstSone) + val secondSone = createSone("third album", "fourth album") + addSone("sone2", secondSone) + addHttpRequestParameter("mode", "gallery") + addHttpRequestParameter("page", "1") + verifyNoRedirect { + assertThat(templateContext["galleryRequested"], equalTo(true)) + @Suppress("UNCHECKED_CAST") + assertThat(templateContext["albums"] as Iterable, contains( + firstSone.rootAlbum.albums[1], + secondSone.rootAlbum.albums[0] + )) + } } private fun createSone(firstAlbumTitle: String, secondAlbumTitle: String): Sone { @@ -101,9 +125,10 @@ class ImageBrowserPageTest : WebPageTest() { @Test fun `requesting nothing will show the albums of the current sone`() { - page.processTemplate(freenetRequest, templateContext) - assertThat(templateContext["soneRequested"], equalTo(true)) - assertThat(templateContext["sone"], equalTo(currentSone)) + verifyNoRedirect { + assertThat(templateContext["soneRequested"], equalTo(true)) + assertThat(templateContext["sone"], equalTo(currentSone)) + } } @Test @@ -111,4 +136,9 @@ class ImageBrowserPageTest : WebPageTest() { assertThat(page.isLinkExcepted(null), equalTo(true)) } + @Test + fun `page can be created by dependency injection`() { + assertThat(baseInjector.getInstance(), notNullValue()) + } + }