--- /dev/null
+package net.pterodactylus.sone.web.ajax
+
+import org.hamcrest.MatcherAssert.assertThat
+import org.hamcrest.Matchers.equalTo
+import org.junit.Test
+
+/**
+ * Unit test for [GetTranslationPage].
+ */
+class GetTranslationPageTest : JsonPageTest("getTranslation.ajax", requiresLogin = false, needsFormPassword = false, pageSupplier = ::GetTranslationPage) {
+
+ @Test
+ fun `translation is returned correctly`() {
+ addTranslation("foo", "bar")
+ addRequestParameter("key", "foo")
+ assertThat(json.isSuccess, equalTo(true))
+ assertThat(json["value"].asText(), equalTo("bar"))
+ }
+
+}
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
pageSupplier: (WebInterface) -> JsonPage = { _ -> mock<JsonPage>() }) {
protected val webInterface = mock<WebInterface>()
+ protected val l10n = mock<BaseL10n>()
protected val core = mock<Core>()
protected val eventBus = mock<EventBus>()
protected val preferences = Preferences(eventBus)
private val notifications = mutableMapOf<String, Notification>()
private val albums = mutableMapOf<String, Album>()
private val images = mutableMapOf<String, Image>()
+ private val translations = mutableMapOf<String, String>()
@Before
fun setupWebInterface() {
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
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))