X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FWebPageTest.kt;h=096b3e68ece01e734a3ce960afe068adddf345a4;hb=399632073484e68c7664af6b24f6fe45fdbbb6dd;hp=fc639590e6a01b44fabdcfba8f7492e49f5fbd7a;hpb=a76956e389fcfe6282ad4ca7156bbf76327bb0c0;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/web/pages/WebPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/pages/WebPageTest.kt index fc63959..096b3e6 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/pages/WebPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/WebPageTest.kt @@ -6,6 +6,7 @@ import freenet.support.* import freenet.support.api.* import net.pterodactylus.sone.core.* import net.pterodactylus.sone.data.* +import net.pterodactylus.sone.freenet.* import net.pterodactylus.sone.freenet.wot.* import net.pterodactylus.sone.main.* import net.pterodactylus.sone.test.deepMock @@ -26,6 +27,7 @@ import org.mockito.ArgumentMatchers.eq import java.io.* import java.net.* import java.nio.charset.* +import java.util.* import kotlin.text.Charsets.UTF_8 /** @@ -40,18 +42,16 @@ open class WebPageTest(pageSupplier: (WebInterface, Loaders, TemplateRenderer) - val core = webInterface.core val eventBus = mock() val preferences = Preferences(eventBus) - val l10n = webInterface.l10n!! - val sessionManager = mock() - val page by lazy { pageSupplier(webInterface, loaders, templateRenderer) } + open val page by lazy { pageSupplier(webInterface, loaders, templateRenderer) } val httpRequest = mock() val freenetRequest = mock() + init { - whenever(freenetRequest.l10n).thenReturn(l10n) - whenever(freenetRequest.sessionManager).thenReturn(sessionManager) whenever(freenetRequest.uri).thenReturn(mock()) } + val soneRequest by lazy { freenetRequest.toSoneRequest(core, webInterface) } val templateContext = TemplateContext() val toadletContext = deepMock() @@ -75,12 +75,16 @@ open class WebPageTest(pageSupplier: (WebInterface, Loaders, TemplateRenderer) - private val notifications = mutableMapOf() private val translations = mutableMapOf() + private val translation = object : Translation { + override val currentLocale = Locale.ENGLISH + override fun translate(key: String) = translations[key] ?: key + } + init { setupCore() setupWebInterface() setupHttpRequest() setupFreenetRequest() - setupTranslations() } private fun setupCore() { @@ -94,18 +98,18 @@ open class WebPageTest(pageSupplier: (WebInterface, Loaders, TemplateRenderer) - whenever(core.getPostReply(anyString())).then { allPostReplies[it[0]] } whenever(core.getReplies(anyString())).then { perPostReplies[it[0]].asList() } whenever(core.getAlbum(anyString())).then { allAlbums[it[0]] } - whenever(core.getImage(anyString())).then { allImages[it[0]]} - whenever(core.getImage(anyString(), anyBoolean())).then { allImages[it[0]]} + whenever(core.getImage(anyString())).then { allImages[it[0]] } + whenever(core.getImage(anyString(), anyBoolean())).then { allImages[it[0]] } whenever(core.getTemporaryImage(anyString())).thenReturn(null) } private fun setupWebInterface() { - whenever(webInterface.sessionManager).thenReturn(sessionManager) whenever(webInterface.getCurrentSoneCreatingSession(eq(toadletContext))).thenReturn(currentSone) - whenever(webInterface.getCurrentSone(eq(toadletContext), anyBoolean())).thenReturn(currentSone) + whenever(webInterface.getCurrentSone(eq(toadletContext))).thenReturn(currentSone) whenever(webInterface.getCurrentSoneWithoutCreatingSession(eq(toadletContext))).thenReturn(currentSone) whenever(webInterface.getNotifications(currentSone)).then { notifications.values } whenever(webInterface.getNotification(anyString())).then { notifications[it[0]].asOptional() } + whenever(webInterface.translation).thenReturn(translation) } private fun setupHttpRequest() { @@ -125,12 +129,13 @@ open class WebPageTest(pageSupplier: (WebInterface, Loaders, TemplateRenderer) - whenever(httpRequest.getPartAsStringFailsafe(anyString(), anyInt())).then { postRequestParameters[it[0]]?.decode()?.take(it[1]) ?: "" } whenever(httpRequest.getUploadedFile(anyString())).then { it.get(0).takeIf { it in uploadedFileNames } - ?.let { name -> UploadedFile(uploadedFileNames[name]!!, uploadedFileContentTypes[name]!!, uploadedFileResources[name]!!) - } + ?.let { name -> + UploadedFile(uploadedFileNames[name]!!, uploadedFileContentTypes[name]!!, uploadedFileResources[name]!!) + } } } - private class UploadedFile(private val filename: String, private val contentType: String, private val resourceName: String): HTTPUploadedFile { + private class UploadedFile(private val filename: String, private val contentType: String, private val resourceName: String) : HTTPUploadedFile { override fun getFilename() = filename override fun getContentType() = contentType override fun getData() = javaClass.getResourceAsStream(resourceName).readBytes().let(::SimpleReadOnlyArrayBucket) @@ -144,10 +149,6 @@ open class WebPageTest(pageSupplier: (WebInterface, Loaders, TemplateRenderer) - whenever(freenetRequest.toadletContext).thenReturn(toadletContext) } - private fun setupTranslations() { - whenever(l10n.getString(anyString())).then { translations[it[0]] ?: it[0] } - } - fun setMethod(method: Method) { whenever(httpRequest.method).thenReturn(method.name) whenever(freenetRequest.method).thenReturn(method) @@ -172,7 +173,7 @@ open class WebPageTest(pageSupplier: (WebInterface, Loaders, TemplateRenderer) - fun unsetCurrentSone() { whenever(webInterface.getCurrentSoneCreatingSession(eq(toadletContext))).thenReturn(null) - whenever(webInterface.getCurrentSone(eq(toadletContext), anyBoolean())).thenReturn(null) + whenever(webInterface.getCurrentSone(eq(toadletContext))).thenReturn(null) whenever(webInterface.getCurrentSoneWithoutCreatingSession(eq(toadletContext))).thenReturn(null) }