diff options
author | Elliott Hughes <enh@google.com> | 2013-04-30 11:27:23 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-04-30 11:27:23 -0700 |
commit | 51377dcfd7cb06cb25d55ec818a941304eb0a11e (patch) | |
tree | 7056cb264fda8d4525bc36f1680e7c090d34f320 /luni/src/test | |
parent | 033c85712e2d91657e2f5df8743d2fd0ddbf5a2d (diff) | |
parent | 87b4b0f88fe0b5fa5c271593e483fb5bd306a6a4 (diff) | |
download | libcore-51377dcfd7cb06cb25d55ec818a941304eb0a11e.zip libcore-51377dcfd7cb06cb25d55ec818a941304eb0a11e.tar.gz libcore-51377dcfd7cb06cb25d55ec818a941304eb0a11e.tar.bz2 |
am 87b4b0f8: Merge "Implement getDateFormatOrder."
* commit '87b4b0f88fe0b5fa5c271593e483fb5bd306a6a4':
Implement getDateFormatOrder.
Diffstat (limited to 'luni/src/test')
-rw-r--r-- | luni/src/test/java/libcore/icu/ICUTest.java | 133 |
1 files changed, 91 insertions, 42 deletions
diff --git a/luni/src/test/java/libcore/icu/ICUTest.java b/luni/src/test/java/libcore/icu/ICUTest.java index 9d9892c..7da7519 100644 --- a/luni/src/test/java/libcore/icu/ICUTest.java +++ b/luni/src/test/java/libcore/icu/ICUTest.java @@ -16,58 +16,107 @@ package libcore.icu; +import java.util.Arrays; import java.util.Locale; public class ICUTest extends junit.framework.TestCase { - public void test_getISOLanguages() throws Exception { - // Check that corrupting our array doesn't affect other callers. - assertNotNull(ICU.getISOLanguages()[0]); - ICU.getISOLanguages()[0] = null; - assertNotNull(ICU.getISOLanguages()[0]); - } + public void test_getISOLanguages() throws Exception { + // Check that corrupting our array doesn't affect other callers. + assertNotNull(ICU.getISOLanguages()[0]); + ICU.getISOLanguages()[0] = null; + assertNotNull(ICU.getISOLanguages()[0]); + } - public void test_getISOCountries() throws Exception { - // Check that corrupting our array doesn't affect other callers. - assertNotNull(ICU.getISOCountries()[0]); - ICU.getISOCountries()[0] = null; - assertNotNull(ICU.getISOCountries()[0]); - } + public void test_getISOCountries() throws Exception { + // Check that corrupting our array doesn't affect other callers. + assertNotNull(ICU.getISOCountries()[0]); + ICU.getISOCountries()[0] = null; + assertNotNull(ICU.getISOCountries()[0]); + } + + public void test_getAvailableLocales() throws Exception { + // Check that corrupting our array doesn't affect other callers. + assertNotNull(ICU.getAvailableLocales()[0]); + ICU.getAvailableLocales()[0] = null; + assertNotNull(ICU.getAvailableLocales()[0]); + } + + public void test_getBestDateTimePattern() throws Exception { + assertEquals("d MMMM", ICU.getBestDateTimePattern("MMMMd", "ca_ES")); + assertEquals("d 'de' MMMM", ICU.getBestDateTimePattern("MMMMd", "es_ES")); + assertEquals("d. MMMM", ICU.getBestDateTimePattern("MMMMd", "de_CH")); + assertEquals("MMMM d", ICU.getBestDateTimePattern("MMMMd", "en_US")); + assertEquals("d LLLL", ICU.getBestDateTimePattern("MMMMd", "fa_IR")); + assertEquals("M月d日", ICU.getBestDateTimePattern("MMMMd", "ja_JP")); + } + + public void test_localeFromString() throws Exception { + // localeFromString is pretty lenient. Some of these can't be round-tripped + // through Locale.toString. + assertEquals(Locale.ENGLISH, ICU.localeFromString("en")); + assertEquals(Locale.ENGLISH, ICU.localeFromString("en_")); + assertEquals(Locale.ENGLISH, ICU.localeFromString("en__")); + assertEquals(Locale.US, ICU.localeFromString("en_US")); + assertEquals(Locale.US, ICU.localeFromString("en_US_")); + assertEquals(new Locale("", "US", ""), ICU.localeFromString("_US")); + assertEquals(new Locale("", "US", ""), ICU.localeFromString("_US_")); + assertEquals(new Locale("", "", "POSIX"), ICU.localeFromString("__POSIX")); + assertEquals(new Locale("aa", "BB", "CC"), ICU.localeFromString("aa_BB_CC")); + } + + public void test_getScript_addLikelySubtags() throws Exception { + assertEquals("Latn", ICU.getScript(ICU.addLikelySubtags("en_US"))); + assertEquals("Hebr", ICU.getScript(ICU.addLikelySubtags("he"))); + assertEquals("Hebr", ICU.getScript(ICU.addLikelySubtags("he_IL"))); + assertEquals("Hebr", ICU.getScript(ICU.addLikelySubtags("iw"))); + assertEquals("Hebr", ICU.getScript(ICU.addLikelySubtags("iw_IL"))); + } + + private String best(Locale l, String skeleton) { + return ICU.getBestDateTimePattern(skeleton, l.toString()); + } + + public void test_getDateFormatOrder() throws Exception { + // lv and fa use differing orders depending on whether you're using numeric or textual months. + Locale lv = new Locale("lv"); + assertEquals("[d, M, y]", Arrays.toString(ICU.getDateFormatOrder(best(lv, "yyyy-M-dd")))); + assertEquals("[y, d, M]", Arrays.toString(ICU.getDateFormatOrder(best(lv, "yyyy-MMM-dd")))); + Locale fa = new Locale("fa"); + assertEquals("[y, M, d]", Arrays.toString(ICU.getDateFormatOrder(best(fa, "yyyy-M-dd")))); + assertEquals("[d, M, y]", Arrays.toString(ICU.getDateFormatOrder(best(fa, "yyyy-MMM-dd")))); + + // English differs on each side of the Atlantic. + Locale en_US = Locale.US; + assertEquals("[M, d, y]", Arrays.toString(ICU.getDateFormatOrder(best(en_US, "yyyy-M-dd")))); + assertEquals("[M, d, y]", Arrays.toString(ICU.getDateFormatOrder(best(en_US, "yyyy-MMM-dd")))); + Locale en_GB = Locale.UK; + assertEquals("[d, M, y]", Arrays.toString(ICU.getDateFormatOrder(best(en_GB, "yyyy-M-dd")))); + assertEquals("[d, M, y]", Arrays.toString(ICU.getDateFormatOrder(best(en_GB, "yyyy-MMM-dd")))); + + assertEquals("[y, M, d]", Arrays.toString(ICU.getDateFormatOrder("yyyy - 'why' '' 'ddd' MMM-dd"))); - public void test_getAvailableLocales() throws Exception { - // Check that corrupting our array doesn't affect other callers. - assertNotNull(ICU.getAvailableLocales()[0]); - ICU.getAvailableLocales()[0] = null; - assertNotNull(ICU.getAvailableLocales()[0]); + try { + ICU.getDateFormatOrder("the quick brown fox jumped over the lazy dog"); + fail(); + } catch (IllegalArgumentException expected) { } - public void test_getBestDateTimePattern() throws Exception { - assertEquals("d MMMM", ICU.getBestDateTimePattern("MMMMd", "ca_ES")); - assertEquals("d 'de' MMMM", ICU.getBestDateTimePattern("MMMMd", "es_ES")); - assertEquals("d. MMMM", ICU.getBestDateTimePattern("MMMMd", "de_CH")); - assertEquals("MMMM d", ICU.getBestDateTimePattern("MMMMd", "en_US")); - assertEquals("d LLLL", ICU.getBestDateTimePattern("MMMMd", "fa_IR")); - assertEquals("M月d日", ICU.getBestDateTimePattern("MMMMd", "ja_JP")); + try { + ICU.getDateFormatOrder("'"); + fail(); + } catch (IllegalArgumentException expected) { } - public void test_localeFromString() throws Exception { - // localeFromString is pretty lenient. Some of these can't be round-tripped - // through Locale.toString. - assertEquals(Locale.ENGLISH, ICU.localeFromString("en")); - assertEquals(Locale.ENGLISH, ICU.localeFromString("en_")); - assertEquals(Locale.ENGLISH, ICU.localeFromString("en__")); - assertEquals(Locale.US, ICU.localeFromString("en_US")); - assertEquals(Locale.US, ICU.localeFromString("en_US_")); - assertEquals(new Locale("", "US", ""), ICU.localeFromString("_US")); - assertEquals(new Locale("", "US", ""), ICU.localeFromString("_US_")); - assertEquals(new Locale("", "", "POSIX"), ICU.localeFromString("__POSIX")); - assertEquals(new Locale("aa", "BB", "CC"), ICU.localeFromString("aa_BB_CC")); + try { + ICU.getDateFormatOrder("yyyy'"); + fail(); + } catch (IllegalArgumentException expected) { } - public void test_getScript_addLikelySubtags() throws Exception { - assertEquals("Latn", ICU.getScript(ICU.addLikelySubtags("en_US"))); - assertEquals("Hebr", ICU.getScript(ICU.addLikelySubtags("he"))); - assertEquals("Hebr", ICU.getScript(ICU.addLikelySubtags("he_IL"))); - assertEquals("Hebr", ICU.getScript(ICU.addLikelySubtags("iw"))); - assertEquals("Hebr", ICU.getScript(ICU.addLikelySubtags("iw_IL"))); + try { + ICU.getDateFormatOrder("yyyy'MMM"); + fail(); + } catch (IllegalArgumentException expected) { } + } } |