X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FEditProfilePageTest.kt;h=274f0fefdd1c66c577f46fe766ff7cf0ba0fa4dd;hb=05fb821e72072bde52f383bdc5a988da67f66d0c;hp=c79bbcfb995404a50670b9d557ef1c26250e673f;hpb=de7568a82eb4150bf6d2b0553841b7b69f84c968;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/web/pages/EditProfilePageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/pages/EditProfilePageTest.kt index c79bbcf..274f0fe 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/pages/EditProfilePageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/EditProfilePageTest.kt @@ -46,9 +46,25 @@ class EditProfilePageTest : WebPageTest() { } @Test + fun `page returns correct path`() { + assertThat(page.path, equalTo("editProfile.html")) + } + + @Test + fun `page requires login`() { + assertThat(page.requiresLogin(), equalTo(true)) + } + + @Test + fun `page returns correct title`() { + whenever(l10n.getString("Page.EditProfile.Title")).thenReturn("edit profile page title") + assertThat(page.getPageTitle(freenetRequest), equalTo("edit profile page title")) + } + + @Test fun `get request stores fields of current sone’s profile in template context`() { request("", GET) - page.handleRequest(freenetRequest, templateContext) + page.processTemplate(freenetRequest, templateContext) assertThat(templateContext["firstName"], equalTo("First")) assertThat(templateContext["middleName"], equalTo("Middle")) assertThat(templateContext["lastName"], equalTo("Last")) @@ -62,7 +78,7 @@ class EditProfilePageTest : WebPageTest() { @Test fun `post request without any command stores fields of current sone’s profile in template context`() { request("", POST) - page.handleRequest(freenetRequest, templateContext) + page.processTemplate(freenetRequest, templateContext) assertThat(templateContext["firstName"], equalTo("First")) assertThat(templateContext["middleName"], equalTo("Middle")) assertThat(templateContext["lastName"], equalTo("Last")) @@ -75,8 +91,8 @@ class EditProfilePageTest : WebPageTest() { private fun verifySingleFieldCanBeChanged(fieldName: String, newValue: T, expectedValue: T = newValue, fieldAccessor: () -> T) { request("", POST) - addHttpRequestParameter("save-profile", "true") - addHttpRequestParameter(fieldName, newValue.toString()) + addHttpRequestPart("save-profile", "true") + addHttpRequestPart(fieldName, newValue.toString()) verifyRedirect("editProfile.html") { verify(core).touchConfiguration() assertThat(fieldAccessor(), equalTo(expectedValue)) @@ -141,9 +157,9 @@ class EditProfilePageTest : WebPageTest() { fun `adding a field with a duplicate name sets error in template context`() { request("", POST) profile.addField("new-field") - addHttpRequestParameter("add-field", "true") - addHttpRequestParameter("field-name", "new-field") - page.handleRequest(freenetRequest, templateContext) + addHttpRequestPart("add-field", "true") + addHttpRequestPart("field-name", "new-field") + page.processTemplate(freenetRequest, templateContext) assertThat(templateContext["fieldName"], equalTo("new-field")) assertThat(templateContext["duplicateFieldName"], equalTo(true)) verify(core, never()).touchConfiguration() @@ -152,8 +168,8 @@ class EditProfilePageTest : WebPageTest() { @Test fun `adding a field with a new name sets adds field to profile and redirects to profile edit page`() { request("", POST) - addHttpRequestParameter("add-field", "true") - addHttpRequestParameter("field-name", "new-field") + addHttpRequestPart("add-field", "true") + addHttpRequestPart("field-name", "new-field") verifyRedirect("editProfile.html#profile-fields") { assertThat(profile.getFieldByName("new-field"), notNullValue()) verify(currentSone).profile = profile @@ -164,14 +180,14 @@ class EditProfilePageTest : WebPageTest() { @Test fun `deleting a field redirects to delete field page`() { request("", POST) - addHttpRequestParameter("delete-field-${firstField.id}", "true") + addHttpRequestPart("delete-field-${firstField.id}", "true") verifyRedirect("deleteProfileField.html?field=${firstField.id}") } @Test fun `moving a field up moves the field up and redirects to the edit profile page`() { request("", POST) - addHttpRequestParameter("move-up-field-${secondField.id}", "true") + addHttpRequestPart("move-up-field-${secondField.id}", "true") verifyRedirect("editProfile.html#profile-fields") { assertThat(profile.fields, contains(secondField, firstField)) verify(currentSone).profile = profile @@ -179,16 +195,16 @@ class EditProfilePageTest : WebPageTest() { } @Test - fun `moving an invalid field up redirects to the invalid page`() { + fun `moving an invalid field up does not redirect`() { request("", POST) - addHttpRequestParameter("move-up-field-foo", "true") - verifyRedirect("invalid.html") + addHttpRequestPart("move-up-field-foo", "true") + page.processTemplate(freenetRequest, templateContext) } @Test fun `moving a field down moves the field down and redirects to the edit profile page`() { request("", POST) - addHttpRequestParameter("move-down-field-${firstField.id}", "true") + addHttpRequestPart("move-down-field-${firstField.id}", "true") verifyRedirect("editProfile.html#profile-fields") { assertThat(profile.fields, contains(secondField, firstField)) verify(currentSone).profile = profile @@ -196,16 +212,16 @@ class EditProfilePageTest : WebPageTest() { } @Test - fun `moving an invalid field down redirects to the invalid page`() { + fun `moving an invalid field down does not redirect`() { request("", POST) - addHttpRequestParameter("move-down-field-foo", "true") - verifyRedirect("invalid.html") + addHttpRequestPart("move-down-field-foo", "true") + page.processTemplate(freenetRequest, templateContext) } @Test fun `editing a field redirects to the edit profile page`() { request("", POST) - addHttpRequestParameter("edit-field-${firstField.id}", "true") + addHttpRequestPart("edit-field-${firstField.id}", "true") verifyRedirect("editProfileField.html?field=${firstField.id}") }