From 4588d890e2d7eae8f9ca727a4435ad388c172615 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Fri, 1 Sep 2017 22:43:54 +0200 Subject: [PATCH] Add test for delete profile field ajax page --- .../web/ajax/DeleteProfileFieldAjaxPageTest.kt | 31 ++++++++++++++++++++++ .../pterodactylus/sone/web/ajax/JsonPageTest.kt | 7 +++++ 2 files changed, 38 insertions(+) create mode 100644 src/test/kotlin/net/pterodactylus/sone/web/ajax/DeleteProfileFieldAjaxPageTest.kt diff --git a/src/test/kotlin/net/pterodactylus/sone/web/ajax/DeleteProfileFieldAjaxPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/ajax/DeleteProfileFieldAjaxPageTest.kt new file mode 100644 index 0000000..6ea28f3 --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/sone/web/ajax/DeleteProfileFieldAjaxPageTest.kt @@ -0,0 +1,31 @@ +package net.pterodactylus.sone.web.ajax + +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.equalTo +import org.hamcrest.Matchers.nullValue +import org.junit.Test +import org.mockito.Mockito.verify + +/** + * Unit test for [DeleteProfileFieldAjaxPage]. + */ +class DeleteProfileFieldAjaxPageTest : JsonPageTest("deleteProfileField.ajax", pageSupplier = ::DeleteProfileFieldAjaxPage) { + + @Test + fun `request without field id results in invalid field id error`() { + assertThat(json.isSuccess, equalTo(false)) + assertThat(json.error, equalTo("invalid-field-id")) + } + + @Test + fun `request with valid field id results in field deletion`() { + profile.addField("foo") + val fieldId = profile.getFieldByName("foo")!!.id + addRequestParameter("field", fieldId) + assertThat(json.isSuccess, equalTo(true)) + assertThat(profile.getFieldByName("foo"), nullValue()) + verify(currentSone).profile = profile + verify(core).touchConfiguration() + } + +} 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 5d43a1e..afa9b17 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/ajax/JsonPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/ajax/JsonPageTest.kt @@ -8,6 +8,7 @@ import net.pterodactylus.sone.core.ElementLoader import net.pterodactylus.sone.core.LinkedElement 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 @@ -51,6 +52,7 @@ abstract class JsonPageTest( protected val freenetRequest = mock() protected val httpRequest = mock() protected val currentSone = deepMock() + protected val profile = Profile(currentSone) private val requestHeaders = mutableMapOf() private val requestParameters = mutableMapOf() @@ -116,6 +118,11 @@ abstract class JsonPageTest( whenever(httpRequest.isPartSet(anyString())).thenAnswer { it.getArgument(0) in requestParts } } + @Before + fun setupProfile() { + whenever(currentSone.profile).thenReturn(profile) + } + protected val JsonReturnObject.error get() = if (this is JsonErrorReturnObject) this.error else null protected fun Sone.mock(id: String, name: String, local: Boolean = false, time: Long, status: SoneStatus = idle) = apply { -- 2.7.4