ReloadableResourceBundleMessageSource correctly calculates filenames for locales with variant but without country now (SPR-5716)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2008 the original author or authors.
|
||||
* Copyright 2002-2009 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.springframework.context.support;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Properties;
|
||||
|
||||
@@ -267,4 +268,36 @@ public class ResourceBundleMessageSourceTests extends TestCase {
|
||||
assertEquals("message2", ms.getMessage("code2", null, Locale.GERMAN));
|
||||
}
|
||||
|
||||
public void testReloadableResourceBundleMessageSourceFileNameCalculation() {
|
||||
ReloadableResourceBundleMessageSource ms = new ReloadableResourceBundleMessageSource();
|
||||
|
||||
List<String> filenames = ms.calculateFilenamesForLocale("messages", Locale.ENGLISH);
|
||||
assertEquals(1, filenames.size());
|
||||
assertEquals("messages_en", filenames.get(0));
|
||||
|
||||
filenames = ms.calculateFilenamesForLocale("messages", Locale.UK);
|
||||
assertEquals(2, filenames.size());
|
||||
assertEquals("messages_en", filenames.get(1));
|
||||
assertEquals("messages_en_GB", filenames.get(0));
|
||||
|
||||
filenames = ms.calculateFilenamesForLocale("messages", new Locale("en", "GB", "POSIX"));
|
||||
assertEquals(3, filenames.size());
|
||||
assertEquals("messages_en", filenames.get(2));
|
||||
assertEquals("messages_en_GB", filenames.get(1));
|
||||
assertEquals("messages_en_GB_POSIX", filenames.get(0));
|
||||
|
||||
filenames = ms.calculateFilenamesForLocale("messages", new Locale("en", "", "POSIX"));
|
||||
assertEquals(2, filenames.size());
|
||||
assertEquals("messages_en", filenames.get(1));
|
||||
assertEquals("messages_en__POSIX", filenames.get(0));
|
||||
|
||||
filenames = ms.calculateFilenamesForLocale("messages", new Locale("", "UK", "POSIX"));
|
||||
assertEquals(2, filenames.size());
|
||||
assertEquals("messages__UK", filenames.get(1));
|
||||
assertEquals("messages__UK_POSIX", filenames.get(0));
|
||||
|
||||
filenames = ms.calculateFilenamesForLocale("messages", new Locale("", "", "POSIX"));
|
||||
assertEquals(0, filenames.size());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user