Index: grails-app/controllers/com/lemans/correspondence/forms/FormSubmitController.groovy =================================================================== diff -u -r75c1874d6dd0213527d1449d619d18ef22f15263 -r4850680cffa805f405493fa8429c46cf45391cee --- grails-app/controllers/com/lemans/correspondence/forms/FormSubmitController.groovy (.../FormSubmitController.groovy) (revision 75c1874d6dd0213527d1449d619d18ef22f15263) +++ grails-app/controllers/com/lemans/correspondence/forms/FormSubmitController.groovy (.../FormSubmitController.groovy) (revision 4850680cffa805f405493fa8429c46cf45391cee) @@ -35,7 +35,7 @@ sortedData?.collectEntries { if (it.key?.startsWith('form_')) { String key = "${it.key?.split('_').last()}" - [(key): URLDecoder.decode(it.value, 'UTF-8')] + [(key): URLDecoder.decode(it.value.toString().replaceAll('%', '%25'), 'UTF-8')] } else { [:] } Index: src/integration-test/groovy/com/lemans/correspondence/forms/DomainFormFuncSpec.groovy =================================================================== diff -u -r75c1874d6dd0213527d1449d619d18ef22f15263 -r4850680cffa805f405493fa8429c46cf45391cee --- src/integration-test/groovy/com/lemans/correspondence/forms/DomainFormFuncSpec.groovy (.../DomainFormFuncSpec.groovy) (revision 75c1874d6dd0213527d1449d619d18ef22f15263) +++ src/integration-test/groovy/com/lemans/correspondence/forms/DomainFormFuncSpec.groovy (.../DomainFormFuncSpec.groovy) (revision 4850680cffa805f405493fa8429c46cf45391cee) @@ -1,28 +1,28 @@ package com.lemans.correspondence.forms import com.lemans.correspondence.CorrespondenceFuncSpec +import spock.lang.Shared class DomainFormFuncSpec extends CorrespondenceFuncSpec { @Override String resourceName() { 'form' } + + @Shared + private static final String KEY = 'zzz_' + new Date() - private static final String UPDATE_FORMKEY = 'THOR_CU' - private static final String DELETE_FORMKEY = 'THOR_CU___OLD' - def 'can create a valid DomainForm'() { given: int domain = 18 int typeId = 1 - String key = 'zzz_' + new Date() String name = 'Thor Contact Us' path(domain: domain) String json = -""" + """ { "domainFormTypeId": "$typeId", "formName": "$name", - "formKey": "$key", + "formKey": "$KEY", "form": { "fields": [ { "name": "firstName", "required": false }, @@ -37,16 +37,16 @@ } """ ok() - + when: post(json) - + then: with(payload.results) { domainId == domain domainFormTypeId == typeId formName == name - formKey == key + formKey == KEY form.fields.size() == 3 form.recipients.size() == 2 } @@ -80,7 +80,7 @@ ''' { "domainFormTypeId": 1, - "formKey": "whatever", + "formKey": "whatever ", "formName": "what ever", "form": { "fields": [ @@ -111,13 +111,13 @@ def 'can NOT update an invalid DomainForm'() { given: - path(domain: 18, UPDATE_FORMKEY) + path(domain: 18, KEY) String json = '{ "formName": "01234567890123456789012345678901234567890123456789______" }' invalid() - + when: put(json) - + then: with(payload.messages[0]) { type == 'error' @@ -131,7 +131,7 @@ given: int domain = 18 String name = 'XYZ_' + new Date() - path(domain: domain, UPDATE_FORMKEY) + path(domain: domain, KEY) String json = """{ "formName": "$name" }""" ok() @@ -141,14 +141,14 @@ then: with(payload.results) { formName == name - formKey == UPDATE_FORMKEY + formKey == KEY domainId == domain } } def 'can delete a DomainForm'() { given: - path(domain: 18, DELETE_FORMKEY) + path(domain: 18, KEY) ok() when: Index: src/integration-test/groovy/com/lemans/correspondence/forms/DomainFormQueryFuncSpec.groovy =================================================================== diff -u -r75c1874d6dd0213527d1449d619d18ef22f15263 -r4850680cffa805f405493fa8429c46cf45391cee --- src/integration-test/groovy/com/lemans/correspondence/forms/DomainFormQueryFuncSpec.groovy (.../DomainFormQueryFuncSpec.groovy) (revision 75c1874d6dd0213527d1449d619d18ef22f15263) +++ src/integration-test/groovy/com/lemans/correspondence/forms/DomainFormQueryFuncSpec.groovy (.../DomainFormQueryFuncSpec.groovy) (revision 4850680cffa805f405493fa8429c46cf45391cee) @@ -31,13 +31,13 @@ def 'can find a form for a domain by formKey'() { given: int theDomainId = 18 - String key = 'THOR_CU' + String key = 'TESST123' path(domain: theDomainId, "$key") ok() - + when: get() - + then: with(payload.results) { domainId == theDomainId