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=cb5ee5a5d2edb1487ca575371e4a19f2778fde4c;hp=87b29397491e8c852152191c23d21ef227eef92c;hb=64268e8911d9d2052a41125ea5c0893926d1b2f4;hpb=ec7a80c007d6d759823d6d922e6c680c04d334cd 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 87b2939..cb5ee5a 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/ajax/JsonPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/ajax/JsonPageTest.kt @@ -1,13 +1,16 @@ package net.pterodactylus.sone.web.ajax +import com.google.common.eventbus.EventBus import freenet.clients.http.ToadletContext 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.data.Post import net.pterodactylus.sone.data.PostReply +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 @@ -20,7 +23,10 @@ import net.pterodactylus.sone.web.WebInterface import net.pterodactylus.sone.web.page.FreenetRequest import net.pterodactylus.util.notify.Notification import net.pterodactylus.util.web.Method.GET +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.equalTo import org.junit.Before +import org.junit.Test import org.mockito.ArgumentMatchers.anyBoolean import org.mockito.ArgumentMatchers.anyInt import org.mockito.ArgumentMatchers.anyString @@ -32,10 +38,16 @@ import javax.naming.SizeLimitExceededException /** * Base class for tests for any [JsonPage] implementations. */ -open class JsonPageTest(pageSupplier: (WebInterface) -> JsonPage = { _ -> mock() }) { +abstract class JsonPageTest( + private val expectedPath: String, + private val requiresLogin: Boolean = true, + private val needsFormPassword: Boolean = true, + pageSupplier: (WebInterface) -> JsonPage = { _ -> mock() }) { protected val webInterface = mock() protected val core = mock() + protected val eventBus = mock() + protected val preferences = Preferences(eventBus) protected val elementLoader = mock() protected open val page: JsonPage by lazy { pageSupplier(webInterface) } protected val json by lazy { page.createJsonObject(freenetRequest)!! } @@ -44,6 +56,7 @@ open class JsonPageTest(pageSupplier: (WebInterface) -> JsonPage = { _ -> mock() protected val httpRequest = mock() protected val currentSone = deepMock() + protected val profile = Profile(currentSone) private val requestHeaders = mutableMapOf() private val requestParameters = mutableMapOf() @@ -52,9 +65,10 @@ open class JsonPageTest(pageSupplier: (WebInterface) -> JsonPage = { _ -> mock() private val posts = mutableMapOf() private val newPosts = mutableMapOf() + private val replies = mutableMapOf() private val newReplies = mutableMapOf() private val linkedElements = mutableMapOf() - private val notifications = mutableListOf() + private val notifications = mutableMapOf() @Before fun setupWebInterface() { @@ -62,16 +76,19 @@ open class JsonPageTest(pageSupplier: (WebInterface) -> JsonPage = { _ -> mock JsonPage = { _ -> mock JsonPage = { _ -> mock JsonPage = { _ -> mock().apply { whenever(this.id).thenReturn(id) @@ -180,4 +206,19 @@ open class JsonPageTest(pageSupplier: (WebInterface) -> JsonPage = { _ -> mock