X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FJsonPageTest.kt;h=c950a3121c5425b85ce47ae7a045e89396a5550d;hp=d5314c5ae27862b9992ffea8a9fb45711a8f33bd;hb=37e7a7dbf3be9bdcbdcfaa7fd783cf4a1632d57f;hpb=c3407a682f9f81b27d0354e59fe9e3d3d6dffcd6 diff --git a/src/test/kotlin/net/pterodactylus/sone/web/ajax/JsonPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/ajax/JsonPageTest.kt index d5314c5..c950a31 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/ajax/JsonPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/ajax/JsonPageTest.kt @@ -2,12 +2,14 @@ package net.pterodactylus.sone.web.ajax import com.google.common.eventbus.EventBus import freenet.clients.http.ToadletContext +import freenet.l10n.BaseL10n import freenet.support.SimpleReadOnlyArrayBucket import freenet.support.api.HTTPRequest import net.pterodactylus.sone.core.Core import net.pterodactylus.sone.core.ElementLoader import net.pterodactylus.sone.core.LinkedElement import net.pterodactylus.sone.core.Preferences +import net.pterodactylus.sone.core.UpdateChecker import net.pterodactylus.sone.data.Album import net.pterodactylus.sone.data.Image import net.pterodactylus.sone.data.Post @@ -16,6 +18,7 @@ import net.pterodactylus.sone.data.Profile import net.pterodactylus.sone.data.Sone import net.pterodactylus.sone.data.Sone.SoneStatus import net.pterodactylus.sone.data.Sone.SoneStatus.idle +import net.pterodactylus.sone.data.SoneOptions.DefaultSoneOptions import net.pterodactylus.sone.test.deepMock import net.pterodactylus.sone.test.get import net.pterodactylus.sone.test.mock @@ -24,6 +27,7 @@ import net.pterodactylus.sone.utils.asOptional import net.pterodactylus.sone.web.WebInterface import net.pterodactylus.sone.web.page.FreenetRequest import net.pterodactylus.util.notify.Notification +import net.pterodactylus.util.template.TemplateContextFactory import net.pterodactylus.util.web.Method.GET import org.hamcrest.MatcherAssert.assertThat import org.hamcrest.Matchers.equalTo @@ -48,9 +52,11 @@ abstract class JsonPageTest( pageSupplier: (WebInterface) -> JsonPage = { _ -> mock() }) { protected val webInterface = mock() + protected val l10n = mock() protected val core = mock() protected val eventBus = mock() protected val preferences = Preferences(eventBus) + protected val updateChecker = mock() protected val elementLoader = mock() protected open val page: JsonPage by lazy { pageSupplier(webInterface) } protected val json by lazy { page.createJsonObject(freenetRequest) } @@ -76,9 +82,11 @@ abstract class JsonPageTest( private val notifications = mutableMapOf() private val albums = mutableMapOf() private val images = mutableMapOf() + private val translations = mutableMapOf() @Before fun setupWebInterface() { + whenever(webInterface.templateContextFactory).thenReturn(TemplateContextFactory()) whenever(webInterface.getCurrentSone(eq(toadletContext), anyBoolean())).thenReturn(currentSone) whenever(webInterface.getCurrentSoneCreatingSession(toadletContext)).thenReturn(currentSone) whenever(webInterface.getCurrentSoneWithoutCreatingSession(toadletContext)).thenReturn(currentSone) @@ -87,11 +95,18 @@ abstract class JsonPageTest( whenever(webInterface.getNotification(anyString())).then { notifications[it[0]].asOptional() } whenever(webInterface.getNewPosts(currentSone)).thenAnswer { newPosts.values } whenever(webInterface.getNewReplies(currentSone)).thenAnswer { newReplies.values } + whenever(webInterface.l10n).thenReturn(l10n) + } + + @Before + fun setupTranslations() { + whenever(l10n.getString(anyString())).then { translations[it[0]] } } @Before fun setupCore() { whenever(core.preferences).thenReturn(preferences) + whenever(core.updateChecker).thenReturn(updateChecker) whenever(core.getSone(anyString())).thenAnswer { (localSones + remoteSones)[it.getArgument(0)].asOptional() } whenever(core.getLocalSone(anyString())).thenAnswer { localSones[it[0]] } whenever(core.getPost(anyString())).thenAnswer { (posts + newPosts)[it[0]].asOptional() } @@ -112,6 +127,7 @@ abstract class JsonPageTest( @Before fun setupCurrentSone() { + whenever(currentSone.options).thenReturn(DefaultSoneOptions()) currentSone.mock("soneId", "Sone_Id", true, 1000, idle) } @@ -234,6 +250,10 @@ abstract class JsonPageTest( images[imageId ?: image.id] = image } + protected fun addTranslation(key: String, value: String) { + translations[key] = value + } + @Test fun `page returns correct path`() { assertThat(page.path, equalTo(expectedPath))