Skip to content

Commit 7bb53fd

Browse files
committed
GRAILS-11574 Add support for LocaleResolver in unit tests
1 parent 400cef7 commit 7bb53fd

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

grails-plugin-testing/src/main/groovy/grails/test/mixin/web/ControllerUnitTestMixin.groovy

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ import org.springframework.util.ClassUtils
7373
import org.springframework.web.context.WebApplicationContext
7474
import org.springframework.web.context.request.RequestContextHolder
7575
import org.springframework.web.multipart.commons.CommonsMultipartResolver
76+
import org.springframework.web.servlet.DispatcherServlet
77+
import org.springframework.web.servlet.i18n.SessionLocaleResolver
7678

7779
/**
7880
* Applied to a unit test to test controllers.
@@ -238,6 +240,8 @@ class ControllerUnitTestMixin extends GrailsUnitTestMixin {
238240
}
239241

240242
filteringCodecsByContentTypeSettings(FilteringCodecsByContentTypeSettings, ref('grailsApplication'))
243+
244+
localeResolver(SessionLocaleResolver)
241245
}
242246
defineBeans(new CodecsGrailsPlugin().doWithSpring)
243247

@@ -282,6 +286,7 @@ class ControllerUnitTestMixin extends GrailsUnitTestMixin {
282286
ConvertersPluginSupport.enhanceApplication(grailsApplication,applicationContext)
283287

284288
request = new GrailsMockHttpServletRequest(requestMimeTypesApi: new TestRequestMimeTypesApi(grailsApplication: grailsApplication, applicationContext: applicationContext))
289+
request.setAttribute(DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE, applicationContext.getBean('localeResolver'))
285290
response = new GrailsMockHttpServletResponse(responseMimeTypesApi: new TestResponseMimeTypesApi(grailsApplication: grailsApplication, applicationContext: applicationContext))
286291
webRequest = GrailsWebUtil.bindMockWebRequest(applicationContext, request, response)
287292
request = (GrailsMockHttpServletRequest)webRequest.getCurrentRequest()

grails-test-suite-uber/src/test/groovy/grails/test/mixin/ControllerTestForTests.groovy

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package grails.test.mixin
22

33
import org.junit.Test
4+
import org.springframework.web.servlet.support.RequestContextUtils
45

56
@TestFor(SimpleController)
67
@Mock(Simple)
@@ -29,6 +30,19 @@ class ControllerTestForTests {
2930
mockService.verify()
3031
assert response.text == 'goodbye'
3132
}
33+
34+
@Test
35+
void testLocaleResolver() {
36+
def localeResolver = applicationContext.localeResolver
37+
request.addPreferredLocale(Locale.FRANCE)
38+
assert localeResolver.resolveLocale(request) == Locale.FRANCE
39+
}
40+
41+
@Test
42+
void testLocaleResolverAttribute() {
43+
assert RequestContextUtils.getLocaleResolver(request) == applicationContext.localeResolver
44+
}
45+
3246
}
3347
class SimpleController {
3448
def index = {

0 commit comments

Comments
 (0)