import com.fasterxml.jackson.databind.ObjectMapper
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.data.Sone.SoneStatus
import net.pterodactylus.sone.data.Sone.SoneStatus.idle
import net.pterodactylus.sone.data.SoneOptions.DefaultSoneOptions
+import net.pterodactylus.sone.freenet.*
import net.pterodactylus.sone.test.deepMock
import net.pterodactylus.sone.test.get
import net.pterodactylus.sone.test.mock
import net.pterodactylus.util.web.Method.GET
import net.pterodactylus.util.web.Method.POST
import org.mockito.ArgumentMatchers
-import java.util.NoSuchElementException
+import java.util.*
import javax.naming.SizeLimitExceededException
/**
val webInterface = mock<WebInterface>()
var formPassword = "form-password"
- val l10n = mock<BaseL10n>()
val core = mock<Core>()
val eventBus = mock<EventBus>()
val preferences = Preferences(eventBus)
val images = mutableMapOf<String, Image>()
val translations = mutableMapOf<String, String>()
+ private val translation = object : Translation {
+ override val currentLocale = Locale.ENGLISH
+ override fun translate(key: String) = translations[key] ?: ""
+ }
+
init {
whenever(webInterface.templateContextFactory).thenReturn(TemplateContextFactory())
- whenever(webInterface.getCurrentSone(ArgumentMatchers.eq(toadletContext), ArgumentMatchers.anyBoolean())).thenReturn(currentSone)
- whenever(webInterface.getCurrentSoneCreatingSession(toadletContext)).thenReturn(currentSone)
- whenever(webInterface.getCurrentSoneWithoutCreatingSession(toadletContext)).thenReturn(currentSone)
+ whenever(webInterface.getCurrentSone(ArgumentMatchers.eq(toadletContext))).thenReturn(currentSone)
whenever(webInterface.core).thenReturn(core)
whenever(webInterface.formPassword).then { formPassword }
whenever(webInterface.getNotifications(currentSone)).thenAnswer { notifications.values }
whenever(webInterface.getNotification(ArgumentMatchers.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)
-
- whenever(l10n.getString(ArgumentMatchers.anyString())).then { translations[it[0]] }
+ whenever(webInterface.translation).thenReturn(translation)
whenever(core.preferences).thenReturn(preferences)
whenever(core.updateChecker).thenReturn(updateChecker)
- whenever(core.getSone(ArgumentMatchers.anyString())).thenAnswer { (localSones + remoteSones)[it.getArgument(0)].asOptional() }
+ whenever(core.getSone(ArgumentMatchers.anyString())).thenAnswer { (localSones + remoteSones)[it.getArgument(0)] }
whenever(core.getLocalSone(ArgumentMatchers.anyString())).thenAnswer { localSones[it[0]] }
- whenever(core.getPost(ArgumentMatchers.anyString())).thenAnswer { (posts + newPosts)[it[0]].asOptional() }
+ whenever(core.getPost(ArgumentMatchers.anyString())).thenAnswer { (posts + newPosts)[it[0]] }
whenever(core.getLikes(ArgumentMatchers.any<Post>())).then { postLikes[it[0]] ?: emptySet<Sone>() }
whenever(core.getLikes(ArgumentMatchers.any<PostReply>())).then { replyLikes[it[0]] ?: emptySet<Sone>() }
- whenever(core.getPostReply(ArgumentMatchers.anyString())).then { replies[it[0]].asOptional() }
+ whenever(core.getPostReply(ArgumentMatchers.anyString())).then { replies[it[0]] }
whenever(core.getAlbum(ArgumentMatchers.anyString())).then { albums[it[0]] }
whenever(core.getImage(ArgumentMatchers.anyString())).then { images[it[0]] }
whenever(core.getImage(ArgumentMatchers.anyString(), ArgumentMatchers.anyBoolean())).then { images[it[0]] }
}
protected fun unsetCurrentSone() {
- whenever(webInterface.getCurrentSone(ArgumentMatchers.eq(toadletContext), ArgumentMatchers.anyBoolean())).thenReturn(null)
- whenever(webInterface.getCurrentSoneWithoutCreatingSession(toadletContext)).thenReturn(null)
- whenever(webInterface.getCurrentSoneCreatingSession(toadletContext)).thenReturn(null)
+ whenever(webInterface.getCurrentSone(ArgumentMatchers.eq(toadletContext))).thenReturn(null)
}
protected fun postRequest() {