51160907e3c5cb240caea867b4e6a3207880ba53
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / ajax / EditProfileFieldAjaxPageTest.kt
1 package net.pterodactylus.sone.web.ajax
2
3 import org.hamcrest.MatcherAssert.assertThat
4 import org.hamcrest.Matchers.equalTo
5 import org.junit.Test
6 import org.mockito.Mockito.verify
7
8 /**
9  * Unit test for [EditProfileFieldAjaxPage].
10  */
11 class EditProfileFieldAjaxPageTest : JsonPageTest("editProfileField.ajax", pageSupplier = ::EditProfileFieldAjaxPage) {
12
13         @Test
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"))
17         }
18
19         @Test
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"))
26         }
27
28         @Test
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"))
36         }
37
38         @Test
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
47         }
48
49 }