You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

LocaleServiceTest.java 38KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027
  1. package com.vaadin.server;
  2. import static org.junit.Assert.assertEquals;
  3. import java.util.HashMap;
  4. import java.util.HashSet;
  5. import java.util.Locale;
  6. import java.util.Map;
  7. import java.util.Set;
  8. import org.junit.Before;
  9. import org.junit.Test;
  10. import org.mockito.Mockito;
  11. import com.vaadin.shared.ui.ui.UIState.LocaleData;
  12. import com.vaadin.shared.ui.ui.UIState.LocaleServiceState;
  13. import com.vaadin.ui.UI;
  14. public class LocaleServiceTest {
  15. private static Set<String> JAVA8_SUPPORTED_LOCALES = new HashSet<String>();
  16. static {
  17. // From
  18. // http://www.oracle.com/technetwork/java/javase/java8locales-2095355.html
  19. JAVA8_SUPPORTED_LOCALES.add("sq-AL");
  20. JAVA8_SUPPORTED_LOCALES.add("ar-DZ");
  21. JAVA8_SUPPORTED_LOCALES.add("ar-BH");
  22. JAVA8_SUPPORTED_LOCALES.add("ar-EG");
  23. JAVA8_SUPPORTED_LOCALES.add("ar-IQ");
  24. JAVA8_SUPPORTED_LOCALES.add("ar-JO");
  25. JAVA8_SUPPORTED_LOCALES.add("ar-KW");
  26. JAVA8_SUPPORTED_LOCALES.add("ar-LB");
  27. JAVA8_SUPPORTED_LOCALES.add("ar-LY");
  28. JAVA8_SUPPORTED_LOCALES.add("ar-MA");
  29. JAVA8_SUPPORTED_LOCALES.add("ar-OM");
  30. JAVA8_SUPPORTED_LOCALES.add("ar-QA");
  31. JAVA8_SUPPORTED_LOCALES.add("ar-SA");
  32. JAVA8_SUPPORTED_LOCALES.add("ar-SD");
  33. JAVA8_SUPPORTED_LOCALES.add("ar-SY");
  34. JAVA8_SUPPORTED_LOCALES.add("ar-TN");
  35. JAVA8_SUPPORTED_LOCALES.add("ar-AE");
  36. JAVA8_SUPPORTED_LOCALES.add("ar-YE");
  37. JAVA8_SUPPORTED_LOCALES.add("be-BY");
  38. JAVA8_SUPPORTED_LOCALES.add("bg-BG");
  39. JAVA8_SUPPORTED_LOCALES.add("ca-ES");
  40. JAVA8_SUPPORTED_LOCALES.add("zh-CN");
  41. JAVA8_SUPPORTED_LOCALES.add("zh-SG");
  42. JAVA8_SUPPORTED_LOCALES.add("zh-HK");
  43. JAVA8_SUPPORTED_LOCALES.add("zh-TW");
  44. JAVA8_SUPPORTED_LOCALES.add("hr-HR");
  45. JAVA8_SUPPORTED_LOCALES.add("cs-CZ");
  46. JAVA8_SUPPORTED_LOCALES.add("da-DK");
  47. JAVA8_SUPPORTED_LOCALES.add("nl-BE");
  48. JAVA8_SUPPORTED_LOCALES.add("nl-NL");
  49. JAVA8_SUPPORTED_LOCALES.add("en-AU");
  50. JAVA8_SUPPORTED_LOCALES.add("en-CA");
  51. JAVA8_SUPPORTED_LOCALES.add("en-IN");
  52. JAVA8_SUPPORTED_LOCALES.add("en-IE");
  53. JAVA8_SUPPORTED_LOCALES.add("en-MT");
  54. JAVA8_SUPPORTED_LOCALES.add("en-NZ");
  55. JAVA8_SUPPORTED_LOCALES.add("en-PH");
  56. JAVA8_SUPPORTED_LOCALES.add("en-SG");
  57. JAVA8_SUPPORTED_LOCALES.add("en-ZA");
  58. JAVA8_SUPPORTED_LOCALES.add("en-GB");
  59. JAVA8_SUPPORTED_LOCALES.add("en-US");
  60. JAVA8_SUPPORTED_LOCALES.add("et-EE");
  61. JAVA8_SUPPORTED_LOCALES.add("fi-FI");
  62. JAVA8_SUPPORTED_LOCALES.add("fr-BE");
  63. JAVA8_SUPPORTED_LOCALES.add("fr-CA");
  64. JAVA8_SUPPORTED_LOCALES.add("fr-FR");
  65. JAVA8_SUPPORTED_LOCALES.add("fr-LU");
  66. JAVA8_SUPPORTED_LOCALES.add("fr-CH");
  67. JAVA8_SUPPORTED_LOCALES.add("de-AT");
  68. JAVA8_SUPPORTED_LOCALES.add("de-DE");
  69. JAVA8_SUPPORTED_LOCALES.add("de-LU");
  70. JAVA8_SUPPORTED_LOCALES.add("de-CH");
  71. JAVA8_SUPPORTED_LOCALES.add("el-CY");
  72. JAVA8_SUPPORTED_LOCALES.add("el-GR");
  73. JAVA8_SUPPORTED_LOCALES.add("iw-IL");
  74. JAVA8_SUPPORTED_LOCALES.add("hi-IN");
  75. JAVA8_SUPPORTED_LOCALES.add("hu-HU");
  76. JAVA8_SUPPORTED_LOCALES.add("is-IS");
  77. JAVA8_SUPPORTED_LOCALES.add("in-ID");
  78. JAVA8_SUPPORTED_LOCALES.add("ga-IE");
  79. JAVA8_SUPPORTED_LOCALES.add("it-IT");
  80. JAVA8_SUPPORTED_LOCALES.add("it-CH");
  81. JAVA8_SUPPORTED_LOCALES.add("ja-JP");
  82. JAVA8_SUPPORTED_LOCALES.add("ja-JP-u-ca-japanese");
  83. JAVA8_SUPPORTED_LOCALES.add("ja-JP-x-lvariant-JP");
  84. JAVA8_SUPPORTED_LOCALES.add("ko-KR");
  85. JAVA8_SUPPORTED_LOCALES.add("lv-LV");
  86. JAVA8_SUPPORTED_LOCALES.add("lt-LT");
  87. JAVA8_SUPPORTED_LOCALES.add("mk-MK");
  88. JAVA8_SUPPORTED_LOCALES.add("ms-MY");
  89. JAVA8_SUPPORTED_LOCALES.add("mt-MT");
  90. JAVA8_SUPPORTED_LOCALES.add("no-NO");
  91. JAVA8_SUPPORTED_LOCALES.add("nb-NO");
  92. JAVA8_SUPPORTED_LOCALES.add("nn-NO");
  93. JAVA8_SUPPORTED_LOCALES.add("no-NO-x-lvariant-NY");
  94. JAVA8_SUPPORTED_LOCALES.add("pl-PL");
  95. JAVA8_SUPPORTED_LOCALES.add("pt-BR");
  96. JAVA8_SUPPORTED_LOCALES.add("pt-PT");
  97. JAVA8_SUPPORTED_LOCALES.add("ro-RO");
  98. JAVA8_SUPPORTED_LOCALES.add("ru-RU");
  99. JAVA8_SUPPORTED_LOCALES.add("sr-BA");
  100. JAVA8_SUPPORTED_LOCALES.add("sr-ME");
  101. JAVA8_SUPPORTED_LOCALES.add("sr-RS");
  102. JAVA8_SUPPORTED_LOCALES.add("sr-Latn-BA");
  103. JAVA8_SUPPORTED_LOCALES.add("sr-Latn-ME");
  104. JAVA8_SUPPORTED_LOCALES.add("sr-Latn-RS");
  105. JAVA8_SUPPORTED_LOCALES.add("sk-SK");
  106. JAVA8_SUPPORTED_LOCALES.add("sl-SI");
  107. JAVA8_SUPPORTED_LOCALES.add("es-AR");
  108. JAVA8_SUPPORTED_LOCALES.add("es-BO");
  109. JAVA8_SUPPORTED_LOCALES.add("es-CL");
  110. JAVA8_SUPPORTED_LOCALES.add("es-CO");
  111. JAVA8_SUPPORTED_LOCALES.add("es-CR");
  112. JAVA8_SUPPORTED_LOCALES.add("es-DO");
  113. JAVA8_SUPPORTED_LOCALES.add("es-EC");
  114. JAVA8_SUPPORTED_LOCALES.add("es-SV");
  115. JAVA8_SUPPORTED_LOCALES.add("es-GT");
  116. JAVA8_SUPPORTED_LOCALES.add("es-HN");
  117. JAVA8_SUPPORTED_LOCALES.add("es-MX");
  118. JAVA8_SUPPORTED_LOCALES.add("es-NI");
  119. JAVA8_SUPPORTED_LOCALES.add("es-PA");
  120. JAVA8_SUPPORTED_LOCALES.add("es-PY");
  121. JAVA8_SUPPORTED_LOCALES.add("es-PE");
  122. JAVA8_SUPPORTED_LOCALES.add("es-PR");
  123. JAVA8_SUPPORTED_LOCALES.add("es-ES");
  124. JAVA8_SUPPORTED_LOCALES.add("es-US");
  125. JAVA8_SUPPORTED_LOCALES.add("es-UY");
  126. JAVA8_SUPPORTED_LOCALES.add("es-VE");
  127. JAVA8_SUPPORTED_LOCALES.add("sv-SE");
  128. JAVA8_SUPPORTED_LOCALES.add("th-TH");
  129. JAVA8_SUPPORTED_LOCALES.add("th-TH-u-ca-buddhist");
  130. JAVA8_SUPPORTED_LOCALES.add("th-TH-u-ca-buddhist-nu-thai");
  131. JAVA8_SUPPORTED_LOCALES.add("th-TH-x-lvariant-TH");
  132. JAVA8_SUPPORTED_LOCALES.add("tr-TR");
  133. JAVA8_SUPPORTED_LOCALES.add("uk-UA");
  134. JAVA8_SUPPORTED_LOCALES.add("vi-VN");
  135. }
  136. private static Map<Locale, LocaleData> expectedLocaleData = new HashMap<Locale, LocaleData>();
  137. static {
  138. LocaleData en_IE = new LocaleData();
  139. en_IE.dateFormat = "dd/MM/yy";
  140. en_IE.twelveHourClock = false;
  141. en_IE.hourMinuteDelimiter = ":";
  142. expectedLocaleData.put(new Locale("en", "IE"), en_IE);
  143. LocaleData ar_KW = new LocaleData();
  144. ar_KW.dateFormat = "dd/MM/yy";
  145. ar_KW.twelveHourClock = true;
  146. ar_KW.hourMinuteDelimiter = ":";
  147. ar_KW.am = "ص";
  148. ar_KW.pm = "م";
  149. expectedLocaleData.put(new Locale("ar", "KW"), ar_KW);
  150. LocaleData ms_MY = new LocaleData();
  151. ms_MY.dateFormat = "dd/MM/yyyy";
  152. ms_MY.twelveHourClock = false;
  153. ms_MY.hourMinuteDelimiter = ":";
  154. expectedLocaleData.put(new Locale("ms", "MY"), ms_MY);
  155. LocaleData en_IN = new LocaleData();
  156. en_IN.dateFormat = "d/M/yy";
  157. en_IN.twelveHourClock = true;
  158. en_IN.hourMinuteDelimiter = ":";
  159. en_IN.am = "AM";
  160. en_IN.pm = "PM";
  161. expectedLocaleData.put(new Locale("en", "IN"), en_IN);
  162. LocaleData es_BO = new LocaleData();
  163. es_BO.dateFormat = "dd-MM-yy";
  164. es_BO.twelveHourClock = true;
  165. es_BO.hourMinuteDelimiter = ":";
  166. es_BO.am = "AM";
  167. es_BO.pm = "PM";
  168. expectedLocaleData.put(new Locale("es", "BO"), es_BO);
  169. LocaleData ar_SY = new LocaleData();
  170. ar_SY.dateFormat = "dd/MM/yy";
  171. ar_SY.twelveHourClock = true;
  172. ar_SY.hourMinuteDelimiter = ":";
  173. ar_SY.am = "ص";
  174. ar_SY.pm = "م";
  175. expectedLocaleData.put(new Locale("ar", "SY"), ar_SY);
  176. LocaleData en_ZA = new LocaleData();
  177. en_ZA.dateFormat = "yyyy/MM/dd";
  178. en_ZA.twelveHourClock = true;
  179. en_ZA.hourMinuteDelimiter = ":";
  180. en_ZA.am = "AM";
  181. en_ZA.pm = "PM";
  182. expectedLocaleData.put(new Locale("en", "ZA"), en_ZA);
  183. LocaleData no_NO = new LocaleData();
  184. no_NO.dateFormat = "dd.MM.yy";
  185. no_NO.twelveHourClock = false;
  186. no_NO.hourMinuteDelimiter = ":";
  187. expectedLocaleData.put(new Locale("no", "NO"), no_NO);
  188. LocaleData sr_LATN_BA = new LocaleData();
  189. sr_LATN_BA.dateFormat = "d.M.yy.";
  190. sr_LATN_BA.twelveHourClock = false;
  191. sr_LATN_BA.hourMinuteDelimiter = ".";
  192. expectedLocaleData.put(new Locale("sr", "LATN", "BA"), sr_LATN_BA);
  193. LocaleData el_GR = new LocaleData();
  194. el_GR.dateFormat = "d/M/yyyy";
  195. el_GR.twelveHourClock = true;
  196. el_GR.hourMinuteDelimiter = ":";
  197. el_GR.am = "πμ";
  198. el_GR.pm = "μμ";
  199. expectedLocaleData.put(new Locale("el", "GR"), el_GR);
  200. LocaleData sr_LATN_RS = new LocaleData();
  201. sr_LATN_RS.dateFormat = "d.M.yy.";
  202. sr_LATN_RS.twelveHourClock = false;
  203. sr_LATN_RS.hourMinuteDelimiter = ".";
  204. expectedLocaleData.put(new Locale("sr", "LATN", "RS"), sr_LATN_RS);
  205. LocaleData nl_NL = new LocaleData();
  206. nl_NL.dateFormat = "d-M-yy";
  207. nl_NL.twelveHourClock = false;
  208. nl_NL.hourMinuteDelimiter = ":";
  209. expectedLocaleData.put(new Locale("nl", "NL"), nl_NL);
  210. LocaleData ar_LB = new LocaleData();
  211. ar_LB.dateFormat = "dd/MM/yy";
  212. ar_LB.twelveHourClock = true;
  213. ar_LB.hourMinuteDelimiter = ":";
  214. ar_LB.am = "ص";
  215. ar_LB.pm = "م";
  216. expectedLocaleData.put(new Locale("ar", "LB"), ar_LB);
  217. LocaleData en_AU = new LocaleData();
  218. en_AU.dateFormat = "d/MM/yy";
  219. en_AU.twelveHourClock = true;
  220. en_AU.hourMinuteDelimiter = ":";
  221. en_AU.am = "AM";
  222. en_AU.pm = "PM";
  223. expectedLocaleData.put(new Locale("en", "AU"), en_AU);
  224. LocaleData mk_MK = new LocaleData();
  225. mk_MK.dateFormat = "d.M.yy";
  226. mk_MK.twelveHourClock = false;
  227. mk_MK.hourMinuteDelimiter = ":";
  228. expectedLocaleData.put(new Locale("mk", "MK"), mk_MK);
  229. LocaleData ar_TN = new LocaleData();
  230. ar_TN.dateFormat = "dd/MM/yy";
  231. ar_TN.twelveHourClock = true;
  232. ar_TN.hourMinuteDelimiter = ":";
  233. ar_TN.am = "ص";
  234. ar_TN.pm = "م";
  235. expectedLocaleData.put(new Locale("ar", "TN"), ar_TN);
  236. LocaleData ar_LY = new LocaleData();
  237. ar_LY.dateFormat = "dd/MM/yy";
  238. ar_LY.twelveHourClock = true;
  239. ar_LY.hourMinuteDelimiter = ":";
  240. ar_LY.am = "ص";
  241. ar_LY.pm = "م";
  242. expectedLocaleData.put(new Locale("ar", "LY"), ar_LY);
  243. LocaleData hu_HU = new LocaleData();
  244. hu_HU.dateFormat = "yyyy.MM.dd.";
  245. hu_HU.twelveHourClock = false;
  246. hu_HU.hourMinuteDelimiter = ":";
  247. expectedLocaleData.put(new Locale("hu", "HU"), hu_HU);
  248. LocaleData es_SV = new LocaleData();
  249. es_SV.dateFormat = "MM-dd-yy";
  250. es_SV.twelveHourClock = true;
  251. es_SV.hourMinuteDelimiter = ":";
  252. es_SV.am = "AM";
  253. es_SV.pm = "PM";
  254. expectedLocaleData.put(new Locale("es", "SV"), es_SV);
  255. LocaleData es_CR = new LocaleData();
  256. es_CR.dateFormat = "dd/MM/yy";
  257. es_CR.twelveHourClock = true;
  258. es_CR.hourMinuteDelimiter = ":";
  259. es_CR.am = "AM";
  260. es_CR.pm = "PM";
  261. expectedLocaleData.put(new Locale("es", "CR"), es_CR);
  262. LocaleData es_CL = new LocaleData();
  263. es_CL.dateFormat = "dd-MM-yy";
  264. es_CL.twelveHourClock = false;
  265. es_CL.hourMinuteDelimiter = ":";
  266. expectedLocaleData.put(new Locale("es", "CL"), es_CL);
  267. LocaleData fr_CA = new LocaleData();
  268. fr_CA.dateFormat = "yy-MM-dd";
  269. fr_CA.twelveHourClock = false;
  270. fr_CA.hourMinuteDelimiter = ":";
  271. expectedLocaleData.put(new Locale("fr", "CA"), fr_CA);
  272. LocaleData es_CO = new LocaleData();
  273. es_CO.dateFormat = "d/MM/yy";
  274. es_CO.twelveHourClock = true;
  275. es_CO.hourMinuteDelimiter = ":";
  276. es_CO.am = "AM";
  277. es_CO.pm = "PM";
  278. expectedLocaleData.put(new Locale("es", "CO"), es_CO);
  279. LocaleData pl_PL = new LocaleData();
  280. pl_PL.dateFormat = "dd.MM.yy";
  281. pl_PL.twelveHourClock = false;
  282. pl_PL.hourMinuteDelimiter = ":";
  283. expectedLocaleData.put(new Locale("pl", "PL"), pl_PL);
  284. LocaleData pt_PT = new LocaleData();
  285. pt_PT.dateFormat = "dd-MM-yyyy";
  286. pt_PT.twelveHourClock = false;
  287. pt_PT.hourMinuteDelimiter = ":";
  288. expectedLocaleData.put(new Locale("pt", "PT"), pt_PT);
  289. LocaleData ar_EG = new LocaleData();
  290. ar_EG.dateFormat = "dd/MM/yy";
  291. ar_EG.twelveHourClock = true;
  292. ar_EG.hourMinuteDelimiter = ":";
  293. ar_EG.am = "ص";
  294. ar_EG.pm = "م";
  295. expectedLocaleData.put(new Locale("ar", "EG"), ar_EG);
  296. LocaleData fr_BE = new LocaleData();
  297. fr_BE.dateFormat = "d/MM/yy";
  298. fr_BE.twelveHourClock = false;
  299. fr_BE.hourMinuteDelimiter = ":";
  300. expectedLocaleData.put(new Locale("fr", "BE"), fr_BE);
  301. LocaleData ga_IE = new LocaleData();
  302. ga_IE.dateFormat = "dd/MM/yyyy";
  303. ga_IE.twelveHourClock = false;
  304. ga_IE.hourMinuteDelimiter = ":";
  305. expectedLocaleData.put(new Locale("ga", "IE"), ga_IE);
  306. LocaleData ar_DZ = new LocaleData();
  307. ar_DZ.dateFormat = "dd/MM/yy";
  308. ar_DZ.twelveHourClock = true;
  309. ar_DZ.hourMinuteDelimiter = ":";
  310. ar_DZ.am = "ص";
  311. ar_DZ.pm = "م";
  312. expectedLocaleData.put(new Locale("ar", "DZ"), ar_DZ);
  313. LocaleData en_SG = new LocaleData();
  314. en_SG.dateFormat = "d/M/yy";
  315. en_SG.twelveHourClock = true;
  316. en_SG.hourMinuteDelimiter = ":";
  317. en_SG.am = "AM";
  318. en_SG.pm = "PM";
  319. expectedLocaleData.put(new Locale("en", "SG"), en_SG);
  320. LocaleData in_ID = new LocaleData();
  321. in_ID.dateFormat = "dd/MM/yy";
  322. in_ID.twelveHourClock = false;
  323. in_ID.hourMinuteDelimiter = ":";
  324. expectedLocaleData.put(new Locale("in", "ID"), in_ID);
  325. LocaleData ar_MA = new LocaleData();
  326. ar_MA.dateFormat = "dd/MM/yy";
  327. ar_MA.twelveHourClock = true;
  328. ar_MA.hourMinuteDelimiter = ":";
  329. ar_MA.am = "ص";
  330. ar_MA.pm = "م";
  331. expectedLocaleData.put(new Locale("ar", "MA"), ar_MA);
  332. LocaleData th_TH_u_ca_buddhist_nu_thai = new LocaleData();
  333. th_TH_u_ca_buddhist_nu_thai.dateFormat = "d/M/yyyy";
  334. th_TH_u_ca_buddhist_nu_thai.twelveHourClock = false;
  335. th_TH_u_ca_buddhist_nu_thai.hourMinuteDelimiter = ".";
  336. expectedLocaleData.put(new Locale("th", "TH", "u-ca-buddhist-nu-thai"),
  337. th_TH_u_ca_buddhist_nu_thai);
  338. LocaleData nb_NO = new LocaleData();
  339. nb_NO.dateFormat = "dd.MM.yy";
  340. nb_NO.twelveHourClock = false;
  341. nb_NO.hourMinuteDelimiter = ":";
  342. expectedLocaleData.put(new Locale("nb", "NO"), nb_NO);
  343. LocaleData es_HN = new LocaleData();
  344. es_HN.dateFormat = "MM-dd-yy";
  345. es_HN.twelveHourClock = true;
  346. es_HN.hourMinuteDelimiter = ":";
  347. es_HN.am = "AM";
  348. es_HN.pm = "PM";
  349. expectedLocaleData.put(new Locale("es", "HN"), es_HN);
  350. LocaleData hr_HR = new LocaleData();
  351. hr_HR.dateFormat = "dd.MM.yy.";
  352. hr_HR.twelveHourClock = false;
  353. hr_HR.hourMinuteDelimiter = ":";
  354. expectedLocaleData.put(new Locale("hr", "HR"), hr_HR);
  355. LocaleData es_PR = new LocaleData();
  356. es_PR.dateFormat = "MM-dd-yy";
  357. es_PR.twelveHourClock = true;
  358. es_PR.hourMinuteDelimiter = ":";
  359. es_PR.am = "AM";
  360. es_PR.pm = "PM";
  361. expectedLocaleData.put(new Locale("es", "PR"), es_PR);
  362. LocaleData es_PY = new LocaleData();
  363. es_PY.dateFormat = "dd/MM/yy";
  364. es_PY.twelveHourClock = true;
  365. es_PY.hourMinuteDelimiter = ":";
  366. es_PY.am = "AM";
  367. es_PY.pm = "PM";
  368. expectedLocaleData.put(new Locale("es", "PY"), es_PY);
  369. LocaleData sr_ME = new LocaleData();
  370. sr_ME.dateFormat = "d.M.yy.";
  371. sr_ME.twelveHourClock = false;
  372. sr_ME.hourMinuteDelimiter = ".";
  373. expectedLocaleData.put(new Locale("sr", "ME"), sr_ME);
  374. LocaleData de_AT = new LocaleData();
  375. de_AT.dateFormat = "dd.MM.yy";
  376. de_AT.twelveHourClock = false;
  377. de_AT.hourMinuteDelimiter = ":";
  378. expectedLocaleData.put(new Locale("de", "AT"), de_AT);
  379. LocaleData is_IS = new LocaleData();
  380. is_IS.dateFormat = "d.M.yyyy";
  381. is_IS.twelveHourClock = false;
  382. is_IS.hourMinuteDelimiter = ":";
  383. expectedLocaleData.put(new Locale("is", "IS"), is_IS);
  384. LocaleData bg_BG = new LocaleData();
  385. bg_BG.dateFormat = "dd.MM.yy";
  386. bg_BG.twelveHourClock = false;
  387. bg_BG.hourMinuteDelimiter = ":";
  388. expectedLocaleData.put(new Locale("bg", "BG"), bg_BG);
  389. LocaleData cs_CZ = new LocaleData();
  390. cs_CZ.dateFormat = "d.M.yy";
  391. cs_CZ.twelveHourClock = false;
  392. cs_CZ.hourMinuteDelimiter = ":";
  393. expectedLocaleData.put(new Locale("cs", "CZ"), cs_CZ);
  394. LocaleData en_PH = new LocaleData();
  395. en_PH.dateFormat = "M/d/yy";
  396. en_PH.twelveHourClock = true;
  397. en_PH.hourMinuteDelimiter = ":";
  398. en_PH.am = "AM";
  399. en_PH.pm = "PM";
  400. expectedLocaleData.put(new Locale("en", "PH"), en_PH);
  401. LocaleData zh_TW = new LocaleData();
  402. zh_TW.dateFormat = "yyyy/M/d";
  403. zh_TW.twelveHourClock = true;
  404. zh_TW.hourMinuteDelimiter = ":";
  405. zh_TW.am = "上午";
  406. zh_TW.pm = "下午";
  407. expectedLocaleData.put(new Locale("zh", "TW"), zh_TW);
  408. LocaleData ko_KR = new LocaleData();
  409. ko_KR.dateFormat = "yy. M. d";
  410. ko_KR.twelveHourClock = true;
  411. ko_KR.hourMinuteDelimiter = ":";
  412. ko_KR.am = "오전";
  413. ko_KR.pm = "오후";
  414. expectedLocaleData.put(new Locale("ko", "KR"), ko_KR);
  415. LocaleData sk_SK = new LocaleData();
  416. sk_SK.dateFormat = "d.M.yyyy";
  417. sk_SK.twelveHourClock = false;
  418. sk_SK.hourMinuteDelimiter = ":";
  419. expectedLocaleData.put(new Locale("sk", "SK"), sk_SK);
  420. LocaleData sr_LATN_ME = new LocaleData();
  421. sr_LATN_ME.dateFormat = "d.M.yy.";
  422. sr_LATN_ME.twelveHourClock = false;
  423. sr_LATN_ME.hourMinuteDelimiter = ".";
  424. expectedLocaleData.put(new Locale("sr", "LATN", "ME"), sr_LATN_ME);
  425. LocaleData ar_OM = new LocaleData();
  426. ar_OM.dateFormat = "dd/MM/yy";
  427. ar_OM.twelveHourClock = true;
  428. ar_OM.hourMinuteDelimiter = ":";
  429. ar_OM.am = "ص";
  430. ar_OM.pm = "م";
  431. expectedLocaleData.put(new Locale("ar", "OM"), ar_OM);
  432. LocaleData ru_RU = new LocaleData();
  433. ru_RU.dateFormat = "dd.MM.yy";
  434. ru_RU.twelveHourClock = false;
  435. ru_RU.hourMinuteDelimiter = ":";
  436. expectedLocaleData.put(new Locale("ru", "RU"), ru_RU);
  437. LocaleData sq_AL = new LocaleData();
  438. sq_AL.dateFormat = "yy-MM-dd";
  439. sq_AL.twelveHourClock = true;
  440. sq_AL.hourMinuteDelimiter = ".";
  441. sq_AL.am = "PD";
  442. sq_AL.pm = "MD";
  443. expectedLocaleData.put(new Locale("sq", "AL"), sq_AL);
  444. LocaleData es_AR = new LocaleData();
  445. es_AR.dateFormat = "dd/MM/yy";
  446. es_AR.twelveHourClock = false;
  447. es_AR.hourMinuteDelimiter = ":";
  448. expectedLocaleData.put(new Locale("es", "AR"), es_AR);
  449. LocaleData sv_SE = new LocaleData();
  450. sv_SE.dateFormat = "yyyy-MM-dd";
  451. sv_SE.twelveHourClock = false;
  452. sv_SE.hourMinuteDelimiter = ":";
  453. expectedLocaleData.put(new Locale("sv", "SE"), sv_SE);
  454. LocaleData ja_JP_x_lvariant_JP = new LocaleData();
  455. ja_JP_x_lvariant_JP.dateFormat = "yy/MM/dd";
  456. ja_JP_x_lvariant_JP.twelveHourClock = false;
  457. ja_JP_x_lvariant_JP.hourMinuteDelimiter = ":";
  458. expectedLocaleData.put(new Locale("ja", "JP", "x-lvariant-JP"),
  459. ja_JP_x_lvariant_JP);
  460. LocaleData da_DK = new LocaleData();
  461. da_DK.dateFormat = "dd-MM-yy";
  462. da_DK.twelveHourClock = false;
  463. da_DK.hourMinuteDelimiter = ":";
  464. expectedLocaleData.put(new Locale("da", "DK"), da_DK);
  465. LocaleData uk_UA = new LocaleData();
  466. uk_UA.dateFormat = "dd.MM.yy";
  467. uk_UA.twelveHourClock = false;
  468. uk_UA.hourMinuteDelimiter = ":";
  469. expectedLocaleData.put(new Locale("uk", "UA"), uk_UA);
  470. LocaleData th_TH_u_ca_buddhist = new LocaleData();
  471. th_TH_u_ca_buddhist.dateFormat = "d/M/yyyy";
  472. th_TH_u_ca_buddhist.twelveHourClock = false;
  473. th_TH_u_ca_buddhist.hourMinuteDelimiter = ".";
  474. expectedLocaleData.put(new Locale("th", "TH", "u-ca-buddhist"),
  475. th_TH_u_ca_buddhist);
  476. LocaleData en_US = new LocaleData();
  477. en_US.dateFormat = "M/d/yy";
  478. en_US.twelveHourClock = true;
  479. en_US.hourMinuteDelimiter = ":";
  480. en_US.am = "AM";
  481. en_US.pm = "PM";
  482. expectedLocaleData.put(new Locale("en", "US"), en_US);
  483. LocaleData lv_LV = new LocaleData();
  484. lv_LV.dateFormat = "yy.d.M";
  485. lv_LV.twelveHourClock = false;
  486. lv_LV.hourMinuteDelimiter = ":";
  487. expectedLocaleData.put(new Locale("lv", "LV"), lv_LV);
  488. LocaleData ja_JP_u_ca_japanese = new LocaleData();
  489. ja_JP_u_ca_japanese.dateFormat = "yy/MM/dd";
  490. ja_JP_u_ca_japanese.twelveHourClock = false;
  491. ja_JP_u_ca_japanese.hourMinuteDelimiter = ":";
  492. expectedLocaleData.put(new Locale("ja", "JP", "u-ca-japanese"),
  493. ja_JP_u_ca_japanese);
  494. LocaleData en_MT = new LocaleData();
  495. en_MT.dateFormat = "dd/MM/yyyy";
  496. en_MT.twelveHourClock = false;
  497. en_MT.hourMinuteDelimiter = ":";
  498. expectedLocaleData.put(new Locale("en", "MT"), en_MT);
  499. LocaleData zh_CN = new LocaleData();
  500. zh_CN.dateFormat = "yy-M-d";
  501. zh_CN.twelveHourClock = true;
  502. zh_CN.hourMinuteDelimiter = ":";
  503. zh_CN.am = "上午";
  504. zh_CN.pm = "下午";
  505. expectedLocaleData.put(new Locale("zh", "CN"), zh_CN);
  506. LocaleData nl_BE = new LocaleData();
  507. nl_BE.dateFormat = "d/MM/yy";
  508. nl_BE.twelveHourClock = false;
  509. nl_BE.hourMinuteDelimiter = ":";
  510. expectedLocaleData.put(new Locale("nl", "BE"), nl_BE);
  511. LocaleData hi_IN = new LocaleData();
  512. hi_IN.dateFormat = "d/M/yy";
  513. hi_IN.twelveHourClock = true;
  514. hi_IN.hourMinuteDelimiter = ":";
  515. hi_IN.am = "पूर्वाह्न";
  516. hi_IN.pm = "अपराह्न";
  517. expectedLocaleData.put(new Locale("hi", "IN"), hi_IN);
  518. LocaleData el_CY = new LocaleData();
  519. el_CY.dateFormat = "dd/MM/yyyy";
  520. el_CY.twelveHourClock = true;
  521. el_CY.hourMinuteDelimiter = ":";
  522. el_CY.am = "ΠΜ";
  523. el_CY.pm = "ΜΜ";
  524. expectedLocaleData.put(new Locale("el", "CY"), el_CY);
  525. LocaleData de_CH = new LocaleData();
  526. de_CH.dateFormat = "dd.MM.yy";
  527. de_CH.twelveHourClock = false;
  528. de_CH.hourMinuteDelimiter = ":";
  529. expectedLocaleData.put(new Locale("de", "CH"), de_CH);
  530. LocaleData ja_JP = new LocaleData();
  531. ja_JP.dateFormat = "yy/MM/dd";
  532. ja_JP.twelveHourClock = false;
  533. ja_JP.hourMinuteDelimiter = ":";
  534. expectedLocaleData.put(new Locale("ja", "JP"), ja_JP);
  535. LocaleData ar_YE = new LocaleData();
  536. ar_YE.dateFormat = "dd/MM/yy";
  537. ar_YE.twelveHourClock = true;
  538. ar_YE.hourMinuteDelimiter = ":";
  539. ar_YE.am = "ص";
  540. ar_YE.pm = "م";
  541. expectedLocaleData.put(new Locale("ar", "YE"), ar_YE);
  542. LocaleData ar_QA = new LocaleData();
  543. ar_QA.dateFormat = "dd/MM/yy";
  544. ar_QA.twelveHourClock = true;
  545. ar_QA.hourMinuteDelimiter = ":";
  546. ar_QA.am = "ص";
  547. ar_QA.pm = "م";
  548. expectedLocaleData.put(new Locale("ar", "QA"), ar_QA);
  549. LocaleData es_GT = new LocaleData();
  550. es_GT.dateFormat = "d/MM/yy";
  551. es_GT.twelveHourClock = true;
  552. es_GT.hourMinuteDelimiter = ":";
  553. es_GT.am = "AM";
  554. es_GT.pm = "PM";
  555. expectedLocaleData.put(new Locale("es", "GT"), es_GT);
  556. LocaleData nn_NO = new LocaleData();
  557. nn_NO.dateFormat = "dd.MM.yy";
  558. nn_NO.twelveHourClock = false;
  559. nn_NO.hourMinuteDelimiter = ":";
  560. expectedLocaleData.put(new Locale("nn", "NO"), nn_NO);
  561. LocaleData es_PE = new LocaleData();
  562. es_PE.dateFormat = "dd/MM/yy";
  563. es_PE.twelveHourClock = true;
  564. es_PE.hourMinuteDelimiter = ":";
  565. es_PE.am = "AM";
  566. es_PE.pm = "PM";
  567. expectedLocaleData.put(new Locale("es", "PE"), es_PE);
  568. LocaleData en_NZ = new LocaleData();
  569. en_NZ.dateFormat = "d/MM/yy";
  570. en_NZ.twelveHourClock = true;
  571. en_NZ.hourMinuteDelimiter = ":";
  572. en_NZ.am = "AM";
  573. en_NZ.pm = "PM";
  574. expectedLocaleData.put(new Locale("en", "NZ"), en_NZ);
  575. LocaleData be_BY = new LocaleData();
  576. be_BY.dateFormat = "d.M.yy";
  577. be_BY.twelveHourClock = false;
  578. be_BY.hourMinuteDelimiter = ".";
  579. expectedLocaleData.put(new Locale("be", "BY"), be_BY);
  580. LocaleData zh_SG = new LocaleData();
  581. zh_SG.dateFormat = "dd/MM/yy";
  582. zh_SG.twelveHourClock = true;
  583. zh_SG.hourMinuteDelimiter = ":";
  584. zh_SG.am = "上午";
  585. zh_SG.pm = "下午";
  586. expectedLocaleData.put(new Locale("zh", "SG"), zh_SG);
  587. LocaleData ro_RO = new LocaleData();
  588. ro_RO.dateFormat = "dd.MM.yyyy";
  589. ro_RO.twelveHourClock = false;
  590. ro_RO.hourMinuteDelimiter = ":";
  591. expectedLocaleData.put(new Locale("ro", "RO"), ro_RO);
  592. LocaleData es_PA = new LocaleData();
  593. es_PA.dateFormat = "MM/dd/yy";
  594. es_PA.twelveHourClock = true;
  595. es_PA.hourMinuteDelimiter = ":";
  596. es_PA.am = "AM";
  597. es_PA.pm = "PM";
  598. expectedLocaleData.put(new Locale("es", "PA"), es_PA);
  599. LocaleData mt_MT = new LocaleData();
  600. mt_MT.dateFormat = "dd/MM/yyyy";
  601. mt_MT.twelveHourClock = false;
  602. mt_MT.hourMinuteDelimiter = ":";
  603. expectedLocaleData.put(new Locale("mt", "MT"), mt_MT);
  604. LocaleData et_EE = new LocaleData();
  605. et_EE.dateFormat = "d.MM.yy";
  606. et_EE.twelveHourClock = false;
  607. et_EE.hourMinuteDelimiter = ":";
  608. expectedLocaleData.put(new Locale("et", "EE"), et_EE);
  609. LocaleData it_CH = new LocaleData();
  610. it_CH.dateFormat = "dd.MM.yy";
  611. it_CH.twelveHourClock = false;
  612. it_CH.hourMinuteDelimiter = ":";
  613. expectedLocaleData.put(new Locale("it", "CH"), it_CH);
  614. LocaleData th_TH_x_lvariant_TH = new LocaleData();
  615. th_TH_x_lvariant_TH.dateFormat = "d/M/yyyy";
  616. th_TH_x_lvariant_TH.twelveHourClock = false;
  617. th_TH_x_lvariant_TH.hourMinuteDelimiter = ".";
  618. expectedLocaleData.put(new Locale("th", "TH", "x-lvariant-TH"),
  619. th_TH_x_lvariant_TH);
  620. LocaleData tr_TR = new LocaleData();
  621. tr_TR.dateFormat = "dd.MM.yyyy";
  622. tr_TR.twelveHourClock = false;
  623. tr_TR.hourMinuteDelimiter = ":";
  624. expectedLocaleData.put(new Locale("tr", "TR"), tr_TR);
  625. LocaleData fr_FR = new LocaleData();
  626. fr_FR.dateFormat = "dd/MM/yy";
  627. fr_FR.twelveHourClock = false;
  628. fr_FR.hourMinuteDelimiter = ":";
  629. expectedLocaleData.put(new Locale("fr", "FR"), fr_FR);
  630. LocaleData vi_VN = new LocaleData();
  631. vi_VN.dateFormat = "dd/MM/yyyy";
  632. vi_VN.twelveHourClock = false;
  633. vi_VN.hourMinuteDelimiter = ":";
  634. expectedLocaleData.put(new Locale("vi", "VN"), vi_VN);
  635. LocaleData en_GB = new LocaleData();
  636. en_GB.dateFormat = "dd/MM/yy";
  637. en_GB.twelveHourClock = false;
  638. en_GB.hourMinuteDelimiter = ":";
  639. expectedLocaleData.put(new Locale("en", "GB"), en_GB);
  640. LocaleData fi_FI = new LocaleData();
  641. fi_FI.dateFormat = "d.M.yyyy";
  642. fi_FI.twelveHourClock = false;
  643. fi_FI.hourMinuteDelimiter = ":";
  644. expectedLocaleData.put(new Locale("fi", "FI"), fi_FI);
  645. LocaleData en_CA = new LocaleData();
  646. en_CA.dateFormat = "dd/MM/yy";
  647. en_CA.twelveHourClock = true;
  648. en_CA.hourMinuteDelimiter = ":";
  649. en_CA.am = "AM";
  650. en_CA.pm = "PM";
  651. expectedLocaleData.put(new Locale("en", "CA"), en_CA);
  652. LocaleData lt_LT = new LocaleData();
  653. lt_LT.dateFormat = "yy.M.d";
  654. lt_LT.twelveHourClock = false;
  655. lt_LT.hourMinuteDelimiter = ".";
  656. expectedLocaleData.put(new Locale("lt", "LT"), lt_LT);
  657. LocaleData ar_AE = new LocaleData();
  658. ar_AE.dateFormat = "dd/MM/yy";
  659. ar_AE.twelveHourClock = true;
  660. ar_AE.hourMinuteDelimiter = ":";
  661. ar_AE.am = "ص";
  662. ar_AE.pm = "م";
  663. expectedLocaleData.put(new Locale("ar", "AE"), ar_AE);
  664. LocaleData sl_SI = new LocaleData();
  665. sl_SI.dateFormat = "d.M.y";
  666. sl_SI.twelveHourClock = false;
  667. sl_SI.hourMinuteDelimiter = ":";
  668. expectedLocaleData.put(new Locale("sl", "SI"), sl_SI);
  669. LocaleData es_DO = new LocaleData();
  670. es_DO.dateFormat = "dd/MM/yy";
  671. es_DO.twelveHourClock = true;
  672. es_DO.hourMinuteDelimiter = ":";
  673. es_DO.am = "AM";
  674. es_DO.pm = "PM";
  675. expectedLocaleData.put(new Locale("es", "DO"), es_DO);
  676. LocaleData ar_IQ = new LocaleData();
  677. ar_IQ.dateFormat = "dd/MM/yy";
  678. ar_IQ.twelveHourClock = true;
  679. ar_IQ.hourMinuteDelimiter = ":";
  680. ar_IQ.am = "ص";
  681. ar_IQ.pm = "م";
  682. expectedLocaleData.put(new Locale("ar", "IQ"), ar_IQ);
  683. LocaleData fr_CH = new LocaleData();
  684. fr_CH.dateFormat = "dd.MM.yy";
  685. fr_CH.twelveHourClock = false;
  686. fr_CH.hourMinuteDelimiter = ":";
  687. expectedLocaleData.put(new Locale("fr", "CH"), fr_CH);
  688. LocaleData es_EC = new LocaleData();
  689. es_EC.dateFormat = "dd/MM/yy";
  690. es_EC.twelveHourClock = false;
  691. es_EC.hourMinuteDelimiter = ":";
  692. expectedLocaleData.put(new Locale("es", "EC"), es_EC);
  693. LocaleData es_US = new LocaleData();
  694. es_US.dateFormat = "M/d/yy";
  695. es_US.twelveHourClock = true;
  696. es_US.hourMinuteDelimiter = ":";
  697. es_US.am = "a.m.";
  698. es_US.pm = "p.m.";
  699. expectedLocaleData.put(new Locale("es", "US"), es_US);
  700. LocaleData iw_IL = new LocaleData();
  701. iw_IL.dateFormat = "dd/MM/yy";
  702. iw_IL.twelveHourClock = false;
  703. iw_IL.hourMinuteDelimiter = ":";
  704. expectedLocaleData.put(new Locale("iw", "IL"), iw_IL);
  705. LocaleData ar_SA = new LocaleData();
  706. ar_SA.dateFormat = "dd/MM/yy";
  707. ar_SA.twelveHourClock = true;
  708. ar_SA.hourMinuteDelimiter = ":";
  709. ar_SA.am = "ص";
  710. ar_SA.pm = "م";
  711. expectedLocaleData.put(new Locale("ar", "SA"), ar_SA);
  712. LocaleData ca_ES = new LocaleData();
  713. ca_ES.dateFormat = "dd/MM/yy";
  714. ca_ES.twelveHourClock = false;
  715. ca_ES.hourMinuteDelimiter = ":";
  716. expectedLocaleData.put(new Locale("ca", "ES"), ca_ES);
  717. LocaleData de_DE = new LocaleData();
  718. de_DE.dateFormat = "dd.MM.yy";
  719. de_DE.twelveHourClock = false;
  720. de_DE.hourMinuteDelimiter = ":";
  721. expectedLocaleData.put(new Locale("de", "DE"), de_DE);
  722. LocaleData sr_BA = new LocaleData();
  723. sr_BA.dateFormat = "yy-MM-dd";
  724. sr_BA.twelveHourClock = false;
  725. sr_BA.hourMinuteDelimiter = ":";
  726. expectedLocaleData.put(new Locale("sr", "BA"), sr_BA);
  727. LocaleData zh_HK = new LocaleData();
  728. zh_HK.dateFormat = "yy'年'M'月'd'日'";
  729. zh_HK.twelveHourClock = true;
  730. zh_HK.hourMinuteDelimiter = ":";
  731. zh_HK.am = "上午";
  732. zh_HK.pm = "下午";
  733. expectedLocaleData.put(new Locale("zh", "HK"), zh_HK);
  734. LocaleData ar_SD = new LocaleData();
  735. ar_SD.dateFormat = "dd/MM/yy";
  736. ar_SD.twelveHourClock = true;
  737. ar_SD.hourMinuteDelimiter = ":";
  738. ar_SD.am = "ص";
  739. ar_SD.pm = "م";
  740. expectedLocaleData.put(new Locale("ar", "SD"), ar_SD);
  741. LocaleData pt_BR = new LocaleData();
  742. pt_BR.dateFormat = "dd/MM/yy";
  743. pt_BR.twelveHourClock = false;
  744. pt_BR.hourMinuteDelimiter = ":";
  745. expectedLocaleData.put(new Locale("pt", "BR"), pt_BR);
  746. LocaleData sr_RS = new LocaleData();
  747. sr_RS.dateFormat = "d.M.yy.";
  748. sr_RS.twelveHourClock = false;
  749. sr_RS.hourMinuteDelimiter = ".";
  750. expectedLocaleData.put(new Locale("sr", "RS"), sr_RS);
  751. LocaleData es_UY = new LocaleData();
  752. es_UY.dateFormat = "dd/MM/yy";
  753. es_UY.twelveHourClock = true;
  754. es_UY.hourMinuteDelimiter = ":";
  755. es_UY.am = "AM";
  756. es_UY.pm = "PM";
  757. expectedLocaleData.put(new Locale("es", "UY"), es_UY);
  758. LocaleData ar_BH = new LocaleData();
  759. ar_BH.dateFormat = "dd/MM/yy";
  760. ar_BH.twelveHourClock = true;
  761. ar_BH.hourMinuteDelimiter = ":";
  762. ar_BH.am = "ص";
  763. ar_BH.pm = "م";
  764. expectedLocaleData.put(new Locale("ar", "BH"), ar_BH);
  765. LocaleData es_ES = new LocaleData();
  766. es_ES.dateFormat = "d/MM/yy";
  767. es_ES.twelveHourClock = false;
  768. es_ES.hourMinuteDelimiter = ":";
  769. expectedLocaleData.put(new Locale("es", "ES"), es_ES);
  770. LocaleData ar_JO = new LocaleData();
  771. ar_JO.dateFormat = "dd/MM/yy";
  772. ar_JO.twelveHourClock = true;
  773. ar_JO.hourMinuteDelimiter = ":";
  774. ar_JO.am = "ص";
  775. ar_JO.pm = "م";
  776. expectedLocaleData.put(new Locale("ar", "JO"), ar_JO);
  777. LocaleData es_VE = new LocaleData();
  778. es_VE.dateFormat = "dd/MM/yy";
  779. es_VE.twelveHourClock = true;
  780. es_VE.hourMinuteDelimiter = ":";
  781. es_VE.am = "AM";
  782. es_VE.pm = "PM";
  783. expectedLocaleData.put(new Locale("es", "VE"), es_VE);
  784. LocaleData es_MX = new LocaleData();
  785. es_MX.dateFormat = "d/MM/yy";
  786. es_MX.twelveHourClock = true;
  787. es_MX.hourMinuteDelimiter = ":";
  788. es_MX.am = "AM";
  789. es_MX.pm = "PM";
  790. expectedLocaleData.put(new Locale("es", "MX"), es_MX);
  791. LocaleData it_IT = new LocaleData();
  792. it_IT.dateFormat = "dd/MM/yy";
  793. it_IT.twelveHourClock = false;
  794. it_IT.hourMinuteDelimiter = ".";
  795. expectedLocaleData.put(new Locale("it", "IT"), it_IT);
  796. LocaleData no_NO_x_lvariant_NY = new LocaleData();
  797. no_NO_x_lvariant_NY.dateFormat = "dd.MM.yy";
  798. no_NO_x_lvariant_NY.twelveHourClock = false;
  799. no_NO_x_lvariant_NY.hourMinuteDelimiter = ":";
  800. expectedLocaleData.put(new Locale("no", "NO", "x-lvariant-NY"),
  801. no_NO_x_lvariant_NY);
  802. LocaleData de_LU = new LocaleData();
  803. de_LU.dateFormat = "dd.MM.yy";
  804. de_LU.twelveHourClock = false;
  805. de_LU.hourMinuteDelimiter = ":";
  806. expectedLocaleData.put(new Locale("de", "LU"), de_LU);
  807. LocaleData fr_LU = new LocaleData();
  808. fr_LU.dateFormat = "dd/MM/yy";
  809. fr_LU.twelveHourClock = false;
  810. fr_LU.hourMinuteDelimiter = ":";
  811. expectedLocaleData.put(new Locale("fr", "LU"), fr_LU);
  812. LocaleData es_NI = new LocaleData();
  813. es_NI.dateFormat = "MM-dd-yy";
  814. es_NI.twelveHourClock = true;
  815. es_NI.hourMinuteDelimiter = ":";
  816. es_NI.am = "AM";
  817. es_NI.pm = "PM";
  818. expectedLocaleData.put(new Locale("es", "NI"), es_NI);
  819. LocaleData th_TH = new LocaleData();
  820. th_TH.dateFormat = "d/M/yyyy";
  821. th_TH.twelveHourClock = false;
  822. th_TH.hourMinuteDelimiter = ".";
  823. expectedLocaleData.put(new Locale("th", "TH"), th_TH);
  824. }
  825. private LocaleService localeService;
  826. @Before
  827. public void setup() {
  828. localeService = new LocaleService(Mockito.mock(UI.class),
  829. new LocaleServiceState());
  830. }
  831. @Test
  832. public void localeDateTimeFormat() {
  833. for (Locale l : expectedLocaleData.keySet()) {
  834. assertEquals("Error verifying locale " + l,
  835. expectedLocaleData.get(l).dateFormat,
  836. localeService.createLocaleData(l).dateFormat);
  837. assertEquals("Error verifying locale " + l,
  838. expectedLocaleData.get(l).twelveHourClock,
  839. localeService.createLocaleData(l).twelveHourClock);
  840. assertEquals("Error verifying locale " + l,
  841. expectedLocaleData.get(l).am,
  842. localeService.createLocaleData(l).am);
  843. assertEquals("Error verifying locale " + l,
  844. expectedLocaleData.get(l).pm,
  845. localeService.createLocaleData(l).pm);
  846. }
  847. }
  848. public static void main(String[] args) {
  849. for (String s : JAVA8_SUPPORTED_LOCALES) {
  850. String[] parts = s.split("-", 3);
  851. Locale l;
  852. if (parts.length == 1) {
  853. l = new Locale(parts[0]);
  854. } else if (parts.length == 2) {
  855. l = new Locale(parts[0], parts[1]);
  856. } else if (parts.length == 3) {
  857. l = new Locale(parts[0], parts[1], parts[2]);
  858. } else {
  859. throw new RuntimeException("Unexpected locale: " + s);
  860. }
  861. generateData(l);
  862. }
  863. }
  864. /**
  865. * Helper method for generating the above data using LocaleService.
  866. *
  867. * @param locale
  868. * the locale to generate data for
  869. */
  870. private static void generateData(Locale locale) {
  871. System.out.println();
  872. String id = locale.getLanguage();
  873. if (!locale.getCountry().isEmpty()) {
  874. id += "_" + locale.getCountry();
  875. if (!locale.getVariant().isEmpty()) {
  876. id += "_" + locale.getVariant();
  877. }
  878. }
  879. String field = id.replace('-', '_');
  880. LocaleService localeService = new LocaleService(Mockito.mock(UI.class),
  881. new LocaleServiceState());
  882. LocaleData localeData = localeService.createLocaleData(locale);
  883. System.out.println("LocaleData " + field + " = new LocaleData();");
  884. System.out.println(
  885. field + ".dateFormat = \"" + localeData.dateFormat + "\";");
  886. System.out.println(field + ".twelveHourClock = "
  887. + localeData.twelveHourClock + ";");
  888. System.out.println(field + ".hourMinuteDelimiter = \""
  889. + localeData.hourMinuteDelimiter + "\";");
  890. if (localeData.twelveHourClock) {
  891. System.out.println(field + ".am = \"" + localeData.am + "\";");
  892. System.out.println(field + ".pm = \"" + localeData.pm + "\";");
  893. }
  894. System.out.println("expectedLocaleData.put(new Locale(\""
  895. + id.replaceAll("_", "\",\"") + "\"), " + field + ");");
  896. }
  897. }