X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FJsonPageTest.kt;h=5d43a1edb71d532f447e146332d2b5bf7bfb747c;hb=a57c17c9a431eeb5925cc8a4e7500c53c9b3f412;hp=b4d897c87632fe86e4577cb3f186360a719d2755;hpb=70328c1ee52a67654eaa899ab951d4c1dbe3a697;p=Sone.git 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 b4d897c..5d43a1e 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/ajax/JsonPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/ajax/JsonPageTest.kt @@ -20,9 +20,14 @@ 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 +import org.mockito.ArgumentMatchers.eq import org.mockito.ArgumentMatchers.isNull import java.util.NoSuchElementException import javax.naming.SizeLimitExceededException @@ -30,7 +35,11 @@ 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() @@ -43,10 +52,12 @@ open class JsonPageTest(pageSupplier: (WebInterface) -> JsonPage = { _ -> mock() protected val currentSone = deepMock() + private val requestHeaders = mutableMapOf() private val requestParameters = mutableMapOf() private val requestParts = mutableMapOf() private val localSones = mutableMapOf() private val remoteSones = mutableMapOf() + private val posts = mutableMapOf() private val newPosts = mutableMapOf() private val newReplies = mutableMapOf() private val linkedElements = mutableMapOf() @@ -54,6 +65,7 @@ open class JsonPageTest(pageSupplier: (WebInterface) -> JsonPage = { _ -> mock JsonPage = { _ -> mock JsonPage = { _ -> mock(0).toLowerCase()] } whenever(httpRequest.getParam(anyString())).thenAnswer { requestParameters[it.getArgument(0)] ?: "" } whenever(httpRequest.getParam(anyString(), anyString())).thenAnswer { requestParameters[it.getArgument(0)] ?: it.getArgument(1) } whenever(httpRequest.getParam(anyString(), isNull())).thenAnswer { requestParameters[it.getArgument(0)] } @@ -102,6 +116,8 @@ open class JsonPageTest(pageSupplier: (WebInterface) -> JsonPage = { _ -> mock JsonPage = { _ -> mock JsonPage = { _ -> mock().apply { whenever(this.id).thenReturn(id) @@ -158,4 +187,19 @@ open class JsonPageTest(pageSupplier: (WebInterface) -> JsonPage = { _ -> mock