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 assertThat(json.isSuccess, equalTo(false))
16 assertThat(json.error, equalTo("invalid-field-id"))
20 fun `request with invalid direction results in invalid-direction`() {
21 val fieldId = profile.addField("someField").id
22 addRequestParameter("field", fieldId)
23 assertThat(json.isSuccess, equalTo(false))
24 assertThat(json.error, equalTo("invalid-direction"))
28 fun `moving first field up results in not-possible`() {
29 val fieldId = profile.addField("someField").id
30 addRequestParameter("field", fieldId)
31 addRequestParameter("direction", "up")
32 assertThat(json.isSuccess, equalTo(false))
33 assertThat(json.error, equalTo("not-possible"))
37 fun `moving only field down results in not-possible`() {
38 val fieldId = profile.addField("someField").id
39 addRequestParameter("field", fieldId)
40 addRequestParameter("direction", "down")
41 assertThat(json.isSuccess, equalTo(false))
42 assertThat(json.error, equalTo("not-possible"))
46 fun `moving second field up results in field being moved up`() {
47 profile.addField("firstField")
48 val fieldId = profile.addField("someField").id
49 addRequestParameter("field", fieldId)
50 addRequestParameter("direction", "up")
51 assertThat(json.isSuccess, equalTo(true))
52 assertThat(profile.fields[0].id, equalTo(fieldId))
53 verify(core).touchConfiguration()
54 verify(currentSone).profile = profile
58 fun `moving first field down results in field being moved down`() {
59 val fieldId = profile.addField("someField").id
60 profile.addField("firstField")
61 addRequestParameter("field", fieldId)
62 addRequestParameter("direction", "down")
63 assertThat(json.isSuccess, equalTo(true))
64 assertThat(profile.fields.last().id, equalTo(fieldId))
65 verify(core).touchConfiguration()
66 verify(currentSone).profile = profile