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=faf70b8a0a08bc840f7ee89131c8087f6ee471f4;hp=d4268453e670a8819090851de4aa4b2ca2c70555;hb=f2ac84cc43ac9e844d45f4bfd177858115fa1805;hpb=6d113a1ada8058fb26e82cd209b70c022fdab7ca 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 d426845..faf70b8 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/pages/ImageBrowserPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/ImageBrowserPageTest.kt @@ -3,17 +3,22 @@ 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 net.pterodactylus.sone.web.page.* import org.hamcrest.MatcherAssert.assertThat import org.hamcrest.Matchers.contains import org.hamcrest.Matchers.equalTo +import org.hamcrest.Matchers.notNullValue import org.junit.Test +import java.net.* /** * Unit test for [ImageBrowserPage]. */ -class ImageBrowserPageTest: WebPageTest2(::ImageBrowserPage) { +class ImageBrowserPageTest: WebPageTest(::ImageBrowserPage) { @Test fun `page returns correct path`() { @@ -28,7 +33,7 @@ class ImageBrowserPageTest: WebPageTest2(::ImageBrowserPage) { @Test fun `page returns correct title`() { whenever(l10n.getString("Page.ImageBrowser.Title")).thenReturn("image browser page title") - assertThat(page.getPageTitle(freenetRequest), equalTo("image browser page title")) + assertThat(page.getPageTitle(soneRequest), equalTo("image browser page title")) } @Test @@ -85,6 +90,25 @@ class ImageBrowserPageTest: WebPageTest2(::ImageBrowserPage) { } } + @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 { return mock().apply { val rootAlbum = mock() @@ -111,7 +135,17 @@ class ImageBrowserPageTest: WebPageTest2(::ImageBrowserPage) { @Test fun `page is link-excepted`() { - assertThat(page.isLinkExcepted(null), equalTo(true)) + assertThat(page.isLinkExcepted(URI("")), equalTo(true)) + } + + @Test + fun `page can be created by dependency injection`() { + assertThat(baseInjector.getInstance(), notNullValue()) + } + + @Test + fun `page is annotated with correct menuname`() { + assertThat(page.menuName, equalTo("ImageBrowser")) } }