X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FWebPageTest.kt;h=07ae727f0442708770aafc0ded25dc914a3de27d;hp=20e6cb6e00c3c112e0ca07005bce48d351e955eb;hb=faf66247a34f64946990a985d2ea3003465969cb;hpb=110a933c2724aba6a604fc5eed6372ff1e1e6144 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 20e6cb6..07ae727 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/pages/WebPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/WebPageTest.kt @@ -1,42 +1,33 @@ package net.pterodactylus.sone.web.pages -import com.google.common.eventbus.EventBus +import com.google.common.eventbus.* import freenet.clients.http.* -import freenet.support.SimpleReadOnlyArrayBucket -import freenet.support.api.HTTPRequest -import freenet.support.api.HTTPUploadedFile -import net.pterodactylus.sone.core.Preferences -import net.pterodactylus.sone.data.Album -import net.pterodactylus.sone.data.Image -import net.pterodactylus.sone.data.Post -import net.pterodactylus.sone.data.PostReply -import net.pterodactylus.sone.data.Sone -import net.pterodactylus.sone.data.TemporaryImage -import net.pterodactylus.sone.freenet.wot.OwnIdentity +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 import net.pterodactylus.sone.test.get import net.pterodactylus.sone.test.mock import net.pterodactylus.sone.test.whenever -import net.pterodactylus.sone.utils.asList -import net.pterodactylus.sone.utils.asOptional -import net.pterodactylus.sone.web.WebInterface +import net.pterodactylus.sone.utils.* +import net.pterodactylus.sone.web.* import net.pterodactylus.sone.web.page.* import net.pterodactylus.sone.web.page.FreenetTemplatePage.RedirectException -import net.pterodactylus.util.notify.Notification -import net.pterodactylus.util.template.TemplateContext -import net.pterodactylus.util.web.Method -import net.pterodactylus.util.web.Method.GET -import net.pterodactylus.util.web.Response -import org.junit.Assert.fail -import org.mockito.ArgumentMatchers.anyBoolean -import org.mockito.ArgumentMatchers.anyInt -import org.mockito.ArgumentMatchers.anyLong -import org.mockito.ArgumentMatchers.anyString +import net.pterodactylus.util.notify.* +import net.pterodactylus.util.template.* +import net.pterodactylus.util.web.* +import net.pterodactylus.util.web.Method.* +import org.junit.Assert.* +import org.mockito.ArgumentMatchers.* import org.mockito.ArgumentMatchers.eq -import java.io.ByteArrayOutputStream -import java.net.URI -import java.nio.charset.Charset +import java.io.* +import java.net.* +import java.nio.charset.* +import java.util.* import kotlin.text.Charsets.UTF_8 /** @@ -51,18 +42,18 @@ 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() @@ -86,12 +77,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() { @@ -105,8 +100,8 @@ 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) } @@ -117,6 +112,7 @@ open class WebPageTest(pageSupplier: (WebInterface, Loaders, TemplateRenderer) - 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() { @@ -136,12 +132,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) @@ -155,10 +152,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)