1 package net.pterodactylus.sone.web.ajax
3 import org.hamcrest.MatcherAssert.assertThat
4 import org.hamcrest.Matchers.equalTo
6 import org.mockito.Mockito.verify
9 * Unit test for [EditProfileFieldAjaxPage].
11 class EditProfileFieldAjaxPageTest : JsonPageTest("editProfileField.ajax", pageSupplier = ::EditProfileFieldAjaxPage) {
14 fun `request without field id results in invalid-field-id`() {
15 assertThat(json.isSuccess, equalTo(false))
16 assertThat(json.error, equalTo("invalid-field-id"))
20 fun `request with empty new name results in invalid-parameter-name`() {
21 val field = currentSone.profile.addField("test-field")
22 addRequestParameter("field", field.id)
23 addRequestParameter("name", " \t ")
24 assertThat(json.isSuccess, equalTo(false))
25 assertThat(json.error, equalTo("invalid-parameter-name"))
29 fun `request with duplicate new name results in duplicate-field-name`() {
30 currentSone.profile.addField("other-field")
31 val field = currentSone.profile.addField("test-field")
32 addRequestParameter("field", field.id)
33 addRequestParameter("name", "other-field")
34 assertThat(json.isSuccess, equalTo(false))
35 assertThat(json.error, equalTo("duplicate-field-name"))
39 fun `request with valid field name changes field name`() {
40 val profile = currentSone.profile
41 val field = profile.addField("test-field")
42 addRequestParameter("field", field.id)
43 addRequestParameter("name", " new name ")
44 assertThat(json.isSuccess, equalTo(true))
45 assertThat(field.name, equalTo("new name"))
46 verify(currentSone).profile = profile