package org.robolectric.shadows;
import java.util.Locale;
import libcore.icu.LocaleData;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.TestRunners;
import org.robolectric.annotation.Config;
import static android.os.Build.VERSION_CODES.*;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(TestRunners.MultiApiSelfTest.class)
public class ShadowLocaleDataTest {
@Test
public void shouldSupportLocaleEn_US() throws Exception {
LocaleData localeData = LocaleData.get(Locale.US);
assertThat(localeData.amPm).isEqualTo(new String[]{"AM", "PM"});
assertThat(localeData.eras).isEqualTo(new String[]{"BC", "AD"});
assertThat(localeData.firstDayOfWeek).isEqualTo(1);
assertThat(localeData.minimalDaysInFirstWeek).isEqualTo(1);
assertThat(localeData.longMonthNames).isEqualTo(new String[]{"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"});
assertThat(localeData.shortMonthNames).isEqualTo(new String[]{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"});
assertThat(localeData.longStandAloneMonthNames).isEqualTo(localeData.longMonthNames);
assertThat(localeData.shortStandAloneMonthNames).isEqualTo(localeData.shortMonthNames);
assertThat(localeData.longWeekdayNames).isEqualTo(new String[]{"", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"});
assertThat(localeData.shortWeekdayNames).isEqualTo(new String[]{"", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"});
assertThat(localeData.longStandAloneWeekdayNames).isEqualTo(localeData.longWeekdayNames);
assertThat(localeData.shortStandAloneWeekdayNames).isEqualTo(localeData.shortWeekdayNames);
assertThat(localeData.fullTimeFormat).isEqualTo("h:mm:ss a zzzz");
assertThat(localeData.longTimeFormat).isEqualTo("h:mm:ss a z");
assertThat(localeData.mediumTimeFormat).isEqualTo("h:mm:ss a");
assertThat(localeData.shortTimeFormat).isEqualTo("h:mm a");
assertThat(localeData.fullDateFormat).isEqualTo("EEEE, MMMM d, y");
assertThat(localeData.longDateFormat).isEqualTo("MMMM d, y");
assertThat(localeData.mediumDateFormat).isEqualTo("MMM d, y");
assertThat(localeData.shortDateFormat).isEqualTo("M/d/yy");
assertThat(localeData.zeroDigit).isEqualTo('0');
assertThat(localeData.decimalSeparator).isEqualTo('.');
assertThat(localeData.groupingSeparator).isEqualTo(',');
assertThat(localeData.patternSeparator).isEqualTo(';');
assertThat(localeData.perMill).isEqualTo('‰');
assertThat(localeData.monetarySeparator).isEqualTo('.');
assertThat(localeData.exponentSeparator).isEqualTo("E");
assertThat(localeData.infinity).isEqualTo("∞");
assertThat(localeData.NaN).isEqualTo("NaN");
assertThat(localeData.currencySymbol).isEqualTo("$");
assertThat(localeData.internationalCurrencySymbol).isEqualTo("USD");
assertThat(localeData.numberPattern).isEqualTo("#,##0.###");
assertThat(localeData.integerPattern).isEqualTo("#,##0");
assertThat(localeData.currencyPattern).isEqualTo("¤#,##0.00;(¤#,##0.00)");
assertThat(localeData.percentPattern).isEqualTo("#,##0%");
}
@Test
@Config(minSdk = LOLLIPOP_MR1)
public void shouldSupportLocaleEn_US_percentPost22() throws Exception {
LocaleData localeData = LocaleData.get(Locale.US);
assertThat(localeData.percent).isEqualTo("%");
}
@Test
@Config(minSdk = JELLY_BEAN_MR1)
public void shouldSupportLocaleEn_US_since_jelly_bean_mr1() throws Exception {
LocaleData localeData = LocaleData.get(Locale.US);
assertThat(localeData.tinyMonthNames).isEqualTo(new String[]{"J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"});
assertThat(localeData.tinyStandAloneMonthNames).isEqualTo(localeData.tinyMonthNames);
assertThat(localeData.tinyWeekdayNames).isEqualTo(new String[]{"", "S", "M", "T", "W", "T", "F", "S"});
assertThat(localeData.tinyStandAloneWeekdayNames).isEqualTo(localeData.tinyWeekdayNames);
assertThat(localeData.yesterday).isEqualTo("Yesterday");
assertThat(localeData.today).isEqualTo("Today");
assertThat(localeData.tomorrow).isEqualTo("Tomorrow");
}
@Test
@Config(minSdk = M)
public void shouldSupportLocaleEn_US_since_m() throws Exception {
LocaleData localeData = LocaleData.get(Locale.US);
assertThat(localeData.timeFormat_Hm).isEqualTo("HH:mm");
assertThat(localeData.timeFormat_hm).isEqualTo("h:mm a");
}
@Test
@Config(minSdk = LOLLIPOP)
public void shouldSupportLocaleEn_US_since_lollipop() throws Exception {
LocaleData localeData = LocaleData.get(Locale.US);
assertThat(localeData.minusSign).isEqualTo("-");
}
@Test
public void shouldDefaultToTheDefaultLocale() throws Exception {
Locale.setDefault(Locale.US);
LocaleData localeData = LocaleData.get(null);
assertThat(localeData.amPm).isEqualTo(new String[]{"AM", "PM"});
}
}