blob: 0ca60435cd0c30c85303c5f2bd47b923601d36fc [file] [log] [blame]
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -07001/*
2 * Copyright (C) 2007 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.util;
18
19import java.util.Locale;
20
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070021import android.test.AndroidTestCase;
22import dalvik.annotation.TestLevel;
23import dalvik.annotation.TestTargetNew;
24
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080025import static android.view.View.LAYOUT_DIRECTION_LTR;
26import static android.view.View.LAYOUT_DIRECTION_RTL;
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070027
28public class LocaleUtilTest extends AndroidTestCase {
29
30 @TestTargetNew(
31 level = TestLevel.COMPLETE,
32 method = "getLayoutDirectionFromLocale",
33 args = {Locale.class}
34 )
35 public void testGetLayoutDirectionFromLocale() {
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080036 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070037 LocaleUtil.getLayoutDirectionFromLocale(null));
38
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080039 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070040 LocaleUtil.getLayoutDirectionFromLocale(Locale.ENGLISH));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080041 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070042 LocaleUtil.getLayoutDirectionFromLocale(Locale.CANADA));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080043 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070044 LocaleUtil.getLayoutDirectionFromLocale(Locale.CANADA_FRENCH));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080045 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070046 LocaleUtil.getLayoutDirectionFromLocale(Locale.FRANCE));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080047 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070048 LocaleUtil.getLayoutDirectionFromLocale(Locale.FRENCH));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080049 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070050 LocaleUtil.getLayoutDirectionFromLocale(Locale.GERMAN));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080051 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070052 LocaleUtil.getLayoutDirectionFromLocale(Locale.GERMANY));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080053 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070054 LocaleUtil.getLayoutDirectionFromLocale(Locale.ITALIAN));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080055 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070056 LocaleUtil.getLayoutDirectionFromLocale(Locale.ITALY));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080057 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070058 LocaleUtil.getLayoutDirectionFromLocale(Locale.UK));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080059 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070060 LocaleUtil.getLayoutDirectionFromLocale(Locale.US));
61
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080062 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070063 LocaleUtil.getLayoutDirectionFromLocale(Locale.ROOT));
64
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080065 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070066 LocaleUtil.getLayoutDirectionFromLocale(Locale.CHINA));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080067 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070068 LocaleUtil.getLayoutDirectionFromLocale(Locale.CHINESE));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080069 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070070 LocaleUtil.getLayoutDirectionFromLocale(Locale.JAPAN));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080071 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070072 LocaleUtil.getLayoutDirectionFromLocale(Locale.JAPANESE));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080073 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070074 LocaleUtil.getLayoutDirectionFromLocale(Locale.KOREA));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080075 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070076 LocaleUtil.getLayoutDirectionFromLocale(Locale.KOREAN));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080077 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070078 LocaleUtil.getLayoutDirectionFromLocale(Locale.PRC));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080079 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070080 LocaleUtil.getLayoutDirectionFromLocale(Locale.SIMPLIFIED_CHINESE));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080081 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070082 LocaleUtil.getLayoutDirectionFromLocale(Locale.TAIWAN));
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080083 assertEquals(LAYOUT_DIRECTION_LTR,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070084 LocaleUtil.getLayoutDirectionFromLocale(Locale.TRADITIONAL_CHINESE));
85
86 Locale locale = new Locale("ar");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080087 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070088 LocaleUtil.getLayoutDirectionFromLocale(locale));
89 locale = new Locale("ar", "AE");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080090 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070091 LocaleUtil.getLayoutDirectionFromLocale(locale));
92 locale = new Locale("ar", "BH");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080093 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070094 LocaleUtil.getLayoutDirectionFromLocale(locale));
95 locale = new Locale("ar", "DZ");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080096 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -070097 LocaleUtil.getLayoutDirectionFromLocale(locale));
98 locale = new Locale("ar", "EG");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -080099 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700100 LocaleUtil.getLayoutDirectionFromLocale(locale));
101 locale = new Locale("ar", "IQ");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800102 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700103 LocaleUtil.getLayoutDirectionFromLocale(locale));
104 locale = new Locale("ar", "JO");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800105 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700106 LocaleUtil.getLayoutDirectionFromLocale(locale));
107 locale = new Locale("ar", "KW");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800108 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700109 LocaleUtil.getLayoutDirectionFromLocale(locale));
110 locale = new Locale("ar", "LB");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800111 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700112 LocaleUtil.getLayoutDirectionFromLocale(locale));
113 locale = new Locale("ar", "LY");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800114 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700115 LocaleUtil.getLayoutDirectionFromLocale(locale));
116 locale = new Locale("ar", "MA");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800117 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700118 LocaleUtil.getLayoutDirectionFromLocale(locale));
119 locale = new Locale("ar", "OM");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800120 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700121 LocaleUtil.getLayoutDirectionFromLocale(locale));
122 locale = new Locale("ar", "QA");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800123 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700124 LocaleUtil.getLayoutDirectionFromLocale(locale));
125 locale = new Locale("ar", "SA");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800126 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700127 LocaleUtil.getLayoutDirectionFromLocale(locale));
128 locale = new Locale("ar", "SD");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800129 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700130 LocaleUtil.getLayoutDirectionFromLocale(locale));
131 locale = new Locale("ar", "SY");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800132 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700133 LocaleUtil.getLayoutDirectionFromLocale(locale));
134 locale = new Locale("ar", "TN");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800135 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700136 LocaleUtil.getLayoutDirectionFromLocale(locale));
137 locale = new Locale("ar", "YE");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800138 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700139 LocaleUtil.getLayoutDirectionFromLocale(locale));
140
141 locale = new Locale("fa");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800142 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700143 LocaleUtil.getLayoutDirectionFromLocale(locale));
144 locale = new Locale("fa", "AF");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800145 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700146 LocaleUtil.getLayoutDirectionFromLocale(locale));
147 locale = new Locale("fa", "IR");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800148 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700149 LocaleUtil.getLayoutDirectionFromLocale(locale));
150
151 locale = new Locale("iw");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800152 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700153 LocaleUtil.getLayoutDirectionFromLocale(locale));
154 locale = new Locale("iw", "IL");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800155 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700156 LocaleUtil.getLayoutDirectionFromLocale(locale));
157 locale = new Locale("he");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800158 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700159 LocaleUtil.getLayoutDirectionFromLocale(locale));
160 locale = new Locale("he", "IL");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800161 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700162 LocaleUtil.getLayoutDirectionFromLocale(locale));
163
164 locale = new Locale("pa_Arab");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800165 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700166 LocaleUtil.getLayoutDirectionFromLocale(locale));
167 locale = new Locale("pa_Arab", "PK");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800168 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700169 LocaleUtil.getLayoutDirectionFromLocale(locale));
170
171 locale = new Locale("ps");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800172 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700173 LocaleUtil.getLayoutDirectionFromLocale(locale));
174 locale = new Locale("ps", "AF");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800175 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700176 LocaleUtil.getLayoutDirectionFromLocale(locale));
177
178 locale = new Locale("ur");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800179 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700180 LocaleUtil.getLayoutDirectionFromLocale(locale));
181 locale = new Locale("ur", "IN");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800182 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700183 LocaleUtil.getLayoutDirectionFromLocale(locale));
184 locale = new Locale("ur", "PK");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800185 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700186 LocaleUtil.getLayoutDirectionFromLocale(locale));
187
188 locale = new Locale("uz_Arab");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800189 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700190 LocaleUtil.getLayoutDirectionFromLocale(locale));
191 locale = new Locale("uz_Arab", "AF");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800192 assertEquals(LAYOUT_DIRECTION_RTL,
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700193 LocaleUtil.getLayoutDirectionFromLocale(locale));
Kenny Root49e3b372011-06-16 02:25:35 -0700194
195 // Locale without a real language
196 locale = new Locale("zz");
Fabrice Di Meglio3fb824b2012-02-28 17:58:31 -0800197 assertEquals(LAYOUT_DIRECTION_LTR,
Kenny Root49e3b372011-06-16 02:25:35 -0700198 LocaleUtil.getLayoutDirectionFromLocale(locale));
Fabrice Di Meglioa47f45e2011-06-15 14:22:12 -0700199 }
200}