summaryrefslogtreecommitdiffstats
path: root/luni/src/test
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2013-04-30 10:52:49 -0700
committerElliott Hughes <enh@google.com>2013-04-30 10:52:49 -0700
commit0604cf761b8717c025a5e78031fde1edf71c7757 (patch)
treeeb9b3dfc3d9fc526e2cdbc7efcdbfffb32a5224e /luni/src/test
parent6cc37941a936a9f054bdeed83b7ea3321c844182 (diff)
downloadlibcore-0604cf761b8717c025a5e78031fde1edf71c7757.zip
libcore-0604cf761b8717c025a5e78031fde1edf71c7757.tar.gz
libcore-0604cf761b8717c025a5e78031fde1edf71c7757.tar.bz2
Implement getDateFormatOrder.
I do wonder if we shouldn't generalize this, rather than hard-code yMd, but YAGNI. Bug: 7207103 Change-Id: Ib59191eee97c08913f9a0a4ea52fb6eb8c677918
Diffstat (limited to 'luni/src/test')
-rw-r--r--luni/src/test/java/libcore/icu/ICUTest.java133
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) {
}
+ }
}