diff --git a/grails-core/src/test/groovy/org/grails/spring/context/ResourceBundleMessageSourceSpec.groovy b/grails-core/src/test/groovy/org/grails/spring/context/ResourceBundleMessageSourceSpec.groovy index 7deed4e8fcd..b44734e0ff8 100644 --- a/grails-core/src/test/groovy/org/grails/spring/context/ResourceBundleMessageSourceSpec.groovy +++ b/grails-core/src/test/groovy/org/grails/spring/context/ResourceBundleMessageSourceSpec.groovy @@ -30,10 +30,12 @@ class ResourceBundleMessageSourceSpec extends Specification { void setup(){ messages = new TestResource('messages.properties','''\ foo=bar + shared.message=Messages Message '''.stripIndent().getBytes('UTF-8')) other = new TestResource('other.properties','''\ bar=foo + shared.message=Other Message '''.stripIndent().getBytes('UTF-8')) } @@ -49,11 +51,27 @@ class ResourceBundleMessageSourceSpec extends Specification { messageSource.setBasenames('messages','other') def locale = Locale.default expect: - messageSource.getBundleCodes(locale,'messages') == (['foo'] as Set) - messageSource.getBundleCodes(locale,'other') == (['bar'] as Set) - messageSource.getBundleCodes(locale,'messages','other') == (['foo','bar'] as Set) + messageSource.getBundleCodes(locale,'messages') == (['foo', 'shared.message'] as Set) + messageSource.getBundleCodes(locale,'other') == (['bar', 'shared.message'] as Set) + messageSource.getBundleCodes(locale,'messages','other') == (['foo','bar', 'shared.message'] as Set) } + void 'Check method to verify ResourceBundle ordering prioritizes application over plugin messages'(){ + given: + def messageSource = new ReloadableResourceBundleMessageSource( + resourceLoader: new DefaultResourceLoader(){ + Resource getResourceByPath(String path){ + path.startsWith('messages') ? messages:other + } + } + ) + messageSource.setBasenames('other', 'messages') + def locale = Locale.default + expect: "other messages override plugin messages" + messageSource.getMessage('shared.message', null, locale) == 'Other Message' + messageSource.getMessage('foo', null, locale) == 'bar' + } + class TestResource extends ByteArrayResource{ String filename