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 [MoveProfileFieldAjaxPage].
11 class MoveProfileFieldAjaxPageTest : JsonPageTest("moveProfileField.ajax", true, true, ::MoveProfileFieldAjaxPage) {
14 fun `request without field id results in invalid-field-id`() {
15 assertThatJsonFailed("invalid-field-id")
19 fun `request with invalid direction results in invalid-direction`() {
20 val fieldId = profile.addField("someField").id
21 addRequestParameter("field", fieldId)
22 assertThatJsonFailed("invalid-direction")
26 fun `moving first field up results in not-possible`() {
27 val fieldId = profile.addField("someField").id
28 addRequestParameter("field", fieldId)
29 addRequestParameter("direction", "up")
30 assertThatJsonFailed("not-possible")
34 fun `moving only field down results in not-possible`() {
35 val fieldId = profile.addField("someField").id
36 addRequestParameter("field", fieldId)
37 addRequestParameter("direction", "down")
38 assertThatJsonFailed("not-possible")
42 fun `moving second field up results in field being moved up`() {
43 profile.addField("firstField")
44 val fieldId = profile.addField("someField").id
45 addRequestParameter("field", fieldId)
46 addRequestParameter("direction", "up")
47 assertThatJsonIsSuccessful()
48 assertThat(profile.fields[0].id, equalTo(fieldId))
49 verify(core).touchConfiguration()
50 verify(currentSone).profile = profile
54 fun `moving first field down results in field being moved down`() {
55 val fieldId = profile.addField("someField").id
56 profile.addField("firstField")
57 addRequestParameter("field", fieldId)
58 addRequestParameter("direction", "down")
59 assertThatJsonIsSuccessful()
60 assertThat(profile.fields.last().id, equalTo(fieldId))
61 verify(core).touchConfiguration()
62 verify(currentSone).profile = profile