7eed9ace39ba63658b60f9d63e8b6385c28e36f5
[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                 assertThatJsonFailed("invalid-field-id")
16         }
17
18         @Test
19         fun `request with empty new name results in invalid-parameter-name`() {
20                 val field = currentSone.profile.addField("test-field")
21                 addRequestParameter("field", field.id)
22                 addRequestParameter("name", "  \t ")
23                 assertThatJsonFailed("invalid-parameter-name")
24         }
25
26         @Test
27         fun `request with duplicate new name results in duplicate-field-name`() {
28                 currentSone.profile.addField("other-field")
29                 val field = currentSone.profile.addField("test-field")
30                 addRequestParameter("field", field.id)
31                 addRequestParameter("name", "other-field")
32                 assertThatJsonFailed("duplicate-field-name")
33         }
34
35         @Test
36         fun `request with valid field name changes field name`() {
37                 val profile = currentSone.profile
38                 val field = profile.addField("test-field")
39                 addRequestParameter("field", field.id)
40                 addRequestParameter("name", "  new name ")
41                 assertThatJsonIsSuccessful()
42                 assertThat(field.name, equalTo("new name"))
43                 verify(currentSone).profile = profile
44         }
45
46 }