xref: /trunk/test/testuno/source/api/i18n/XLocaleDataTest.java (revision 3309286857f19787ae62bd793a98b5af4edd2ad3)
1de76a5adSDamjan Jovanovic /**************************************************************
2de76a5adSDamjan Jovanovic  *
3de76a5adSDamjan Jovanovic  * Licensed to the Apache Software Foundation (ASF) under one
4de76a5adSDamjan Jovanovic  * or more contributor license agreements.  See the NOTICE file
5de76a5adSDamjan Jovanovic  * distributed with this work for additional information
6de76a5adSDamjan Jovanovic  * regarding copyright ownership.  The ASF licenses this file
7de76a5adSDamjan Jovanovic  * to you under the Apache License, Version 2.0 (the
8de76a5adSDamjan Jovanovic  * "License"); you may not use this file except in compliance
9de76a5adSDamjan Jovanovic  * with the License.  You may obtain a copy of the License at
10de76a5adSDamjan Jovanovic  *
11de76a5adSDamjan Jovanovic  *   http://www.apache.org/licenses/LICENSE-2.0
12de76a5adSDamjan Jovanovic  *
13de76a5adSDamjan Jovanovic  * Unless required by applicable law or agreed to in writing,
14de76a5adSDamjan Jovanovic  * software distributed under the License is distributed on an
15de76a5adSDamjan Jovanovic  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16de76a5adSDamjan Jovanovic  * KIND, either express or implied.  See the License for the
17de76a5adSDamjan Jovanovic  * specific language governing permissions and limitations
18de76a5adSDamjan Jovanovic  * under the License.
19de76a5adSDamjan Jovanovic  *
20de76a5adSDamjan Jovanovic  *************************************************************/
21de76a5adSDamjan Jovanovic 
22de76a5adSDamjan Jovanovic 
23de76a5adSDamjan Jovanovic 
24*2f709283SDamjan Jovanovic package api.i18n;
25de76a5adSDamjan Jovanovic 
26de76a5adSDamjan Jovanovic import com.sun.star.i18n.Calendar;
27de76a5adSDamjan Jovanovic import com.sun.star.i18n.Currency;
28de76a5adSDamjan Jovanovic import com.sun.star.i18n.ForbiddenCharacters;
29de76a5adSDamjan Jovanovic import com.sun.star.i18n.FormatElement;
30de76a5adSDamjan Jovanovic import com.sun.star.i18n.Implementation;
31de76a5adSDamjan Jovanovic import com.sun.star.i18n.LanguageCountryInfo;
32de76a5adSDamjan Jovanovic import com.sun.star.i18n.LocaleDataItem;
33de76a5adSDamjan Jovanovic import com.sun.star.i18n.XLocaleData;
34de76a5adSDamjan Jovanovic import com.sun.star.lang.Locale;
35*2f709283SDamjan Jovanovic import com.sun.star.uno.UnoRuntime;
36*2f709283SDamjan Jovanovic import com.sun.star.uno.XComponentContext;
37*2f709283SDamjan Jovanovic import org.junit.AfterClass;
38*2f709283SDamjan Jovanovic import org.junit.Before;
39*2f709283SDamjan Jovanovic import org.junit.BeforeClass;
40*2f709283SDamjan Jovanovic import org.junit.Assert;
41*2f709283SDamjan Jovanovic import org.junit.Test;
42*2f709283SDamjan Jovanovic import org.openoffice.test.uno.UnoApp;
43de76a5adSDamjan Jovanovic 
44de76a5adSDamjan Jovanovic /**
45de76a5adSDamjan Jovanovic * Testing <code>com.sun.star.i18n.XLocaleData</code>
46de76a5adSDamjan Jovanovic * interface methods:
47de76a5adSDamjan Jovanovic * <ul>
48de76a5adSDamjan Jovanovic *  <li><code> getLanguageCountryInfo() </code></li>
49de76a5adSDamjan Jovanovic *  <li><code> getLocaleItem() </code></li>
50de76a5adSDamjan Jovanovic *  <li><code> getAllCalendars() </code></li>
51de76a5adSDamjan Jovanovic *  <li><code> getAllCurrencies() </code></li>
52de76a5adSDamjan Jovanovic *  <li><code> getAllFormats() </code></li>
53de76a5adSDamjan Jovanovic *  <li><code> getCollatorImplementations() </code></li>
54de76a5adSDamjan Jovanovic *  <li><code> getSearchOptions() </code></li>
55de76a5adSDamjan Jovanovic *  <li><code> getCollationOptions() </code></li>
56de76a5adSDamjan Jovanovic *  <li><code> getTransliterations() </code></li>
57de76a5adSDamjan Jovanovic *  <li><code> getForbiddenCharacters() </code></li>
58de76a5adSDamjan Jovanovic *  <li><code> getReservedWord() </code></li>
59de76a5adSDamjan Jovanovic *  <li><code> getAllInstalledLocaleNames() </code></li>
60de76a5adSDamjan Jovanovic * </ul><p>
61de76a5adSDamjan Jovanovic * Test is <b> NOT </b> multithread compliant. <p>
62de76a5adSDamjan Jovanovic * @see com.sun.star.i18n.XLocaleData
63de76a5adSDamjan Jovanovic */
64*2f709283SDamjan Jovanovic public class XLocaleDataTest {
65*2f709283SDamjan Jovanovic     private static final UnoApp app = new UnoApp();
66*2f709283SDamjan Jovanovic 
67*2f709283SDamjan Jovanovic     private XComponentContext xContext = null;
68de76a5adSDamjan Jovanovic     public XLocaleData oObj = null;
69de76a5adSDamjan Jovanovic     public String[] languages = new String[]{"de","en","es","fr","ja","ko","ko"};
70de76a5adSDamjan Jovanovic     public String[] countries = new String[]{"DE","US","ES","FR","JP","KR","KR"};
71de76a5adSDamjan Jovanovic 
72*2f709283SDamjan Jovanovic     // setup and close connections
73*2f709283SDamjan Jovanovic     @BeforeClass
setUpConnection()74*2f709283SDamjan Jovanovic     public static void setUpConnection() throws Exception
75*2f709283SDamjan Jovanovic     {
76*2f709283SDamjan Jovanovic         app.start();
77*2f709283SDamjan Jovanovic     }
78*2f709283SDamjan Jovanovic 
79*2f709283SDamjan Jovanovic     @AfterClass
tearDownConnection()80*2f709283SDamjan Jovanovic     public static void tearDownConnection() throws InterruptedException, com.sun.star.uno.Exception
81*2f709283SDamjan Jovanovic     {
82*2f709283SDamjan Jovanovic         app.close();
83*2f709283SDamjan Jovanovic     }
84*2f709283SDamjan Jovanovic 
85*2f709283SDamjan Jovanovic     @Before
before()86*2f709283SDamjan Jovanovic     public void before() throws Exception, java.lang.Exception
87*2f709283SDamjan Jovanovic     {
88*2f709283SDamjan Jovanovic         xContext = app.getComponentContext();
89*2f709283SDamjan Jovanovic         final Object object = xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.LocaleData", xContext);
90*2f709283SDamjan Jovanovic         oObj = UnoRuntime.queryInterface(XLocaleData.class, object);
91*2f709283SDamjan Jovanovic     }
92de76a5adSDamjan Jovanovic 
93de76a5adSDamjan Jovanovic     /**
94de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
95de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if structure, returned by the method includes
96de76a5adSDamjan Jovanovic     * correct values of fields 'Language' and 'Country' for all given locales.
97de76a5adSDamjan Jovanovic     */
98*2f709283SDamjan Jovanovic     @Test
_getLanguageCountryInfo()99de76a5adSDamjan Jovanovic     public void _getLanguageCountryInfo() {
100de76a5adSDamjan Jovanovic         boolean res = true;
101de76a5adSDamjan Jovanovic         LanguageCountryInfo lci = null;
102de76a5adSDamjan Jovanovic 
103de76a5adSDamjan Jovanovic         for (int i=0;i<7;i++) {
104de76a5adSDamjan Jovanovic             lci = oObj.getLanguageCountryInfo(getLocale(i));
105de76a5adSDamjan Jovanovic             /* For debug purposes
106*2f709283SDamjan Jovanovic             System.out.println("Using: language="+languages[i]+" ; country="+countries[i]);
107*2f709283SDamjan Jovanovic             System.out.println("Getting: ");
108*2f709283SDamjan Jovanovic             System.out.println("\t Language="+lci.Language);
109*2f709283SDamjan Jovanovic             System.out.println("\t LanguageDefaultName="+lci.LanguageDefaultName);
110*2f709283SDamjan Jovanovic             System.out.println("\t Country="+lci.Country);
111*2f709283SDamjan Jovanovic             System.out.println("\t CountryDefaultName="+lci.CountryDefaultName);
112de76a5adSDamjan Jovanovic             boolean lang = ( lci.Language.equals(languages[i]) );
113*2f709283SDamjan Jovanovic             if (!lang) System.out.println("getting false for language: "+lci.LanguageDefaultName);
114de76a5adSDamjan Jovanovic             lang = ( lci.Country.equals(countries[i]) );
115*2f709283SDamjan Jovanovic             if (!lang) System.out.println("getting false for country: "+lci.CountryDefaultName);
116de76a5adSDamjan Jovanovic             */
117de76a5adSDamjan Jovanovic             res &= ( ( lci.Language.equals(languages[i]) ) && ( lci.Country.equals(countries[i]) ) );
118de76a5adSDamjan Jovanovic         }
119*2f709283SDamjan Jovanovic         Assert.assertTrue("getLanguageCountryInfo()",res);
120de76a5adSDamjan Jovanovic     }
121de76a5adSDamjan Jovanovic 
122de76a5adSDamjan Jovanovic     /**
123de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
124de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if structure, returned by the method consists of
125de76a5adSDamjan Jovanovic     * non empty strings for all given locales.
126de76a5adSDamjan Jovanovic     */
127*2f709283SDamjan Jovanovic     @Test
_getLocaleItem()128de76a5adSDamjan Jovanovic     public void _getLocaleItem() {
129de76a5adSDamjan Jovanovic         boolean res = true;
130de76a5adSDamjan Jovanovic         LocaleDataItem ldi = null;
131de76a5adSDamjan Jovanovic 
132de76a5adSDamjan Jovanovic         for (int i=0;i<7;i++) {
133de76a5adSDamjan Jovanovic             ldi = oObj.getLocaleItem(getLocale(i));
134de76a5adSDamjan Jovanovic 
135de76a5adSDamjan Jovanovic             boolean locRes = true ;
136de76a5adSDamjan Jovanovic 
137de76a5adSDamjan Jovanovic             locRes &= (! ldi.dateSeparator.equals(""));
138de76a5adSDamjan Jovanovic             locRes &= (! ldi.decimalSeparator.equals(""));
139de76a5adSDamjan Jovanovic             locRes &= (! ldi.doubleQuotationEnd.equals(""));
140de76a5adSDamjan Jovanovic             locRes &= (! ldi.doubleQuotationStart.equals(""));
141de76a5adSDamjan Jovanovic             locRes &= (! ldi.listSeparator.equals(""));
142de76a5adSDamjan Jovanovic             locRes &= (! ldi.LongDateDayOfWeekSeparator.equals(""));
143de76a5adSDamjan Jovanovic             locRes &= (! ldi.LongDateDaySeparator.equals(""));
144de76a5adSDamjan Jovanovic             locRes &= (! ldi.LongDateMonthSeparator.equals(""));
145de76a5adSDamjan Jovanovic             locRes &= (! ldi.LongDateYearSeparator.equals(""));
146de76a5adSDamjan Jovanovic             locRes &= (! ldi.measurementSystem.equals(""));
147de76a5adSDamjan Jovanovic             locRes &= (! ldi.quotationEnd.equals(""));
148de76a5adSDamjan Jovanovic             locRes &= (! ldi.quotationStart.equals(""));
149de76a5adSDamjan Jovanovic             locRes &= (! ldi.thousandSeparator.equals(""));
150de76a5adSDamjan Jovanovic             locRes &= (! ldi.time100SecSeparator.equals(""));
151de76a5adSDamjan Jovanovic             locRes &= (! ldi.timeAM.equals(""));
152de76a5adSDamjan Jovanovic             locRes &= (! ldi.timePM.equals(""));
153de76a5adSDamjan Jovanovic             locRes &= (! ldi.timeSeparator.equals(""));
154de76a5adSDamjan Jovanovic             locRes &= (! ldi.unoID.equals(""));
155de76a5adSDamjan Jovanovic 
156de76a5adSDamjan Jovanovic             if (!locRes) {
157de76a5adSDamjan Jovanovic                 /* for debugging puposes
158*2f709283SDamjan Jovanovic                 System.out.println("FAILED for: language="+languages[i]+" ; country="+countries[i]);
159*2f709283SDamjan Jovanovic                 System.out.println("Getting: ");
160*2f709283SDamjan Jovanovic                 System.out.println("\t DateSeparator="+ldi.dateSeparator);
161*2f709283SDamjan Jovanovic                 System.out.println("\t decimalSeparator="+ldi.decimalSeparator);
162*2f709283SDamjan Jovanovic                 System.out.println("\t doubleQuotationEnd="+ldi.doubleQuotationEnd);
163*2f709283SDamjan Jovanovic                 System.out.println("\t doubleQuotationStart="+ldi.doubleQuotationStart);
164*2f709283SDamjan Jovanovic                 System.out.println("\t listSeparator="+ldi.listSeparator);
165*2f709283SDamjan Jovanovic                 System.out.println("\t LongDateDayOfWeekSeparator="+ldi.LongDateDayOfWeekSeparator+"end");
166*2f709283SDamjan Jovanovic                 System.out.println("\t LongDateDaySeparator="+ldi.LongDateDaySeparator+"end");
167*2f709283SDamjan Jovanovic                 System.out.println("\t LongDateMonthSeparator="+ldi.LongDateMonthSeparator+"end");
168*2f709283SDamjan Jovanovic                 System.out.println("\t LongDateYearSeparator="+ldi.LongDateYearSeparator+"end");
169*2f709283SDamjan Jovanovic                 System.out.println("\t measurementSystem="+ldi.measurementSystem);
170*2f709283SDamjan Jovanovic                 System.out.println("\t quotationEnd="+ldi.quotationEnd);
171*2f709283SDamjan Jovanovic                 System.out.println("\t quotationStart="+ldi.quotationStart);
172*2f709283SDamjan Jovanovic                 System.out.println("\t thousandSeparator="+ldi.thousandSeparator);
173*2f709283SDamjan Jovanovic                 System.out.println("\t time100SecSeparator="+ldi.time100SecSeparator);
174*2f709283SDamjan Jovanovic                 System.out.println("\t timeAM="+ldi.timeAM);
175*2f709283SDamjan Jovanovic                 System.out.println("\t timePM="+ldi.timePM);
176*2f709283SDamjan Jovanovic                 System.out.println("\t timeSeparator="+ldi.timeSeparator);
177*2f709283SDamjan Jovanovic                 System.out.println("\t unoID="+ldi.unoID);
178de76a5adSDamjan Jovanovic                  */
179de76a5adSDamjan Jovanovic             }
180de76a5adSDamjan Jovanovic         }
181*2f709283SDamjan Jovanovic         Assert.assertTrue("getLocaleItem()",res);
182de76a5adSDamjan Jovanovic     }
183de76a5adSDamjan Jovanovic 
184de76a5adSDamjan Jovanovic     /**
185de76a5adSDamjan Jovanovic     * Test calls the method for several locales; result is checked
186de76a5adSDamjan Jovanovic     * after each call. <p>
187de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if all elements of the returned sequence are
188de76a5adSDamjan Jovanovic     * correct for all given locales. (boolean method goodCalendar() with a
189de76a5adSDamjan Jovanovic     * calendar as an argument returns true)
190de76a5adSDamjan Jovanovic     */
191*2f709283SDamjan Jovanovic     @Test
_getAllCalendars()192de76a5adSDamjan Jovanovic     public void _getAllCalendars() {
193de76a5adSDamjan Jovanovic         boolean res = true;
194de76a5adSDamjan Jovanovic         boolean printit = false;
195de76a5adSDamjan Jovanovic         Calendar[] calendar = new Calendar[1];
196de76a5adSDamjan Jovanovic 
197de76a5adSDamjan Jovanovic         for (int i=0;i<7;i++) {
198de76a5adSDamjan Jovanovic             calendar = oObj.getAllCalendars(getLocale(i));
199de76a5adSDamjan Jovanovic             for (int j=0;j<calendar.length;j++) {
200de76a5adSDamjan Jovanovic                 if (! goodCalendar(calendar[j]) ) {
201de76a5adSDamjan Jovanovic                     printit = true;
202de76a5adSDamjan Jovanovic                 }
203de76a5adSDamjan Jovanovic                 res &= goodCalendar(calendar[j]);
204de76a5adSDamjan Jovanovic             }
205*2f709283SDamjan Jovanovic             if (printit) System.out.println("FAILED for: language="+languages[i]+" ; country="+countries[i]);
206de76a5adSDamjan Jovanovic             printit = false;
207de76a5adSDamjan Jovanovic         }
208*2f709283SDamjan Jovanovic         Assert.assertTrue("getAllCalendars()", res);
209de76a5adSDamjan Jovanovic     }
210de76a5adSDamjan Jovanovic 
211de76a5adSDamjan Jovanovic     /**
212de76a5adSDamjan Jovanovic     * Test calls the method for several locales; result is checked
213de76a5adSDamjan Jovanovic     * after each call. <p>
214de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if all elements of the returned sequence are
215de76a5adSDamjan Jovanovic     * correct for all given locales. (boolean method goodCurrency() with a
216de76a5adSDamjan Jovanovic     * currency as an argument returns true)
217de76a5adSDamjan Jovanovic     */
218*2f709283SDamjan Jovanovic     @Test
_getAllCurrencies()219de76a5adSDamjan Jovanovic     public void _getAllCurrencies() {
220de76a5adSDamjan Jovanovic         boolean res = true;
221de76a5adSDamjan Jovanovic         boolean printit = false;
222de76a5adSDamjan Jovanovic         Currency[] currency = new Currency[1];
223de76a5adSDamjan Jovanovic 
224de76a5adSDamjan Jovanovic         for (int i=0;i<7;i++) {
225de76a5adSDamjan Jovanovic             currency = oObj.getAllCurrencies(getLocale(i));
226de76a5adSDamjan Jovanovic             for (int j=0;j<currency.length;j++) {
227de76a5adSDamjan Jovanovic                 if (! goodCurrency(currency[j]) ) {
228de76a5adSDamjan Jovanovic                     printit=true;
229de76a5adSDamjan Jovanovic                 }
230de76a5adSDamjan Jovanovic                 res &= goodCurrency(currency[j]);
231de76a5adSDamjan Jovanovic             }
232*2f709283SDamjan Jovanovic             if (printit) System.out.println("FAILED for: language="+languages[i]+" ; country="+countries[i]);
233de76a5adSDamjan Jovanovic             printit =false;
234de76a5adSDamjan Jovanovic         }
235*2f709283SDamjan Jovanovic         Assert.assertTrue("getAllCurrencies()",res);
236de76a5adSDamjan Jovanovic     }
237de76a5adSDamjan Jovanovic 
238de76a5adSDamjan Jovanovic     /**
239de76a5adSDamjan Jovanovic     * Test calls the method for several locales; result is checked
240de76a5adSDamjan Jovanovic     * after each call. <p>
241de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if all elements of the returned sequence are
242de76a5adSDamjan Jovanovic     * correct for all given locales. (boolean method goodFormat() with a
243de76a5adSDamjan Jovanovic     * format as an argument returns true)
244de76a5adSDamjan Jovanovic     */
245*2f709283SDamjan Jovanovic     @Test
_getAllFormats()246de76a5adSDamjan Jovanovic     public void _getAllFormats() {
247de76a5adSDamjan Jovanovic         boolean res = true;
248de76a5adSDamjan Jovanovic         boolean printit = false;
249de76a5adSDamjan Jovanovic         FormatElement[] format = new FormatElement[1];
250de76a5adSDamjan Jovanovic 
251de76a5adSDamjan Jovanovic         for (int i=0;i<7;i++) {
252de76a5adSDamjan Jovanovic             format = oObj.getAllFormats(getLocale(i));
253de76a5adSDamjan Jovanovic             for (int j=0;j<format.length;j++) {
254de76a5adSDamjan Jovanovic                 if (! goodFormat(format[j]) ) {
255de76a5adSDamjan Jovanovic                     printit = true;
256de76a5adSDamjan Jovanovic                 }
257de76a5adSDamjan Jovanovic                 res &= goodFormat(format[j]);
258de76a5adSDamjan Jovanovic             }
259*2f709283SDamjan Jovanovic             if (printit) System.out.println("FAILED for: language="+languages[i]+" ; country="+countries[i]);
260de76a5adSDamjan Jovanovic             printit =false;
261de76a5adSDamjan Jovanovic         }
262*2f709283SDamjan Jovanovic         Assert.assertTrue("getAllFormats()",res);
263de76a5adSDamjan Jovanovic     }
264de76a5adSDamjan Jovanovic 
265de76a5adSDamjan Jovanovic     /**
266de76a5adSDamjan Jovanovic     * Test calls the method for several locales; result is checked
267de76a5adSDamjan Jovanovic     * after each call. <p>
268de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if all structs, returned by the method have non
269de76a5adSDamjan Jovanovic     * empty field 'UnoID' for all given locales.
270de76a5adSDamjan Jovanovic     */
271*2f709283SDamjan Jovanovic     @Test
_getCollatorImplementations()272de76a5adSDamjan Jovanovic     public void _getCollatorImplementations() {
273de76a5adSDamjan Jovanovic         boolean res = true;
274de76a5adSDamjan Jovanovic         boolean printit = false;
275de76a5adSDamjan Jovanovic         Implementation[] impl = new Implementation[1];
276de76a5adSDamjan Jovanovic 
277de76a5adSDamjan Jovanovic         for (int i=0;i<7;i++) {
278de76a5adSDamjan Jovanovic             impl = oObj.getCollatorImplementations(getLocale(i));
279de76a5adSDamjan Jovanovic             for (int j=0;j<impl.length;j++) {
280de76a5adSDamjan Jovanovic                 if ((impl[j].unoID.equals(""))) {
281de76a5adSDamjan Jovanovic                     printit = true;
282de76a5adSDamjan Jovanovic                 }
283de76a5adSDamjan Jovanovic                 res &= (!impl[j].unoID.equals(""));
284de76a5adSDamjan Jovanovic             }
285*2f709283SDamjan Jovanovic             if (printit) System.out.println("FAILED for: language=" + languages[i]
286de76a5adSDamjan Jovanovic                 + " ; country=" + countries[i]);
287de76a5adSDamjan Jovanovic             printit = false;
288de76a5adSDamjan Jovanovic         }
289*2f709283SDamjan Jovanovic         Assert.assertTrue("getCollatorImplementations()", res);
290de76a5adSDamjan Jovanovic     }
291de76a5adSDamjan Jovanovic 
292de76a5adSDamjan Jovanovic     /**
293de76a5adSDamjan Jovanovic     * Test calls the method for several locales; result is checked
294de76a5adSDamjan Jovanovic     * after each call. <p>
295de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if all strings, returned by the method are not
296de76a5adSDamjan Jovanovic     * empty for all given locales.
297de76a5adSDamjan Jovanovic     */
298*2f709283SDamjan Jovanovic     @Test
_getSearchOptions()299de76a5adSDamjan Jovanovic     public void _getSearchOptions() {
300de76a5adSDamjan Jovanovic         boolean res = true;
301de76a5adSDamjan Jovanovic         boolean printit = false;
302de76a5adSDamjan Jovanovic         String[] str = new String[1];
303de76a5adSDamjan Jovanovic 
304de76a5adSDamjan Jovanovic         for (int i=0;i<7;i++) {
305de76a5adSDamjan Jovanovic             str = oObj.getSearchOptions(getLocale(i));
306de76a5adSDamjan Jovanovic             for (int j=0;j<str.length;j++) {
307de76a5adSDamjan Jovanovic                 if ((str[j].equals(""))) {
308de76a5adSDamjan Jovanovic                     printit = true;
309de76a5adSDamjan Jovanovic                 }
310de76a5adSDamjan Jovanovic                 res &= (!str.equals(""));
311de76a5adSDamjan Jovanovic             }
312*2f709283SDamjan Jovanovic             if (printit) System.out.println("FAILED for: language=" + languages[i]
313de76a5adSDamjan Jovanovic                 + " ; country=" + countries[i]);
314de76a5adSDamjan Jovanovic             printit = false;
315de76a5adSDamjan Jovanovic         }
316*2f709283SDamjan Jovanovic         Assert.assertTrue("getSearchOptions()",res);
317de76a5adSDamjan Jovanovic     }
318de76a5adSDamjan Jovanovic 
319de76a5adSDamjan Jovanovic     /**
320de76a5adSDamjan Jovanovic     * Test calls the method for several locales; result is checked
321de76a5adSDamjan Jovanovic     * after each call. <p>
322de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if all strings, returned by the method are not
323de76a5adSDamjan Jovanovic     * empty for all given locales.
324de76a5adSDamjan Jovanovic     */
325*2f709283SDamjan Jovanovic     @Test
_getCollationOptions()326de76a5adSDamjan Jovanovic     public void _getCollationOptions() {
327de76a5adSDamjan Jovanovic         boolean res = true;
328de76a5adSDamjan Jovanovic         boolean printit = false;
329de76a5adSDamjan Jovanovic         String[] str = new String[1];
330de76a5adSDamjan Jovanovic 
331de76a5adSDamjan Jovanovic         for (int i=0;i<7;i++) {
332de76a5adSDamjan Jovanovic             str = oObj.getCollationOptions(getLocale(i));
333de76a5adSDamjan Jovanovic             for (int j=0;j<str.length;j++) {
334de76a5adSDamjan Jovanovic                 if ((str[j].equals(""))) {
335de76a5adSDamjan Jovanovic                     printit = true;
336de76a5adSDamjan Jovanovic                 }
337de76a5adSDamjan Jovanovic                 res &= (!str.equals(""));
338de76a5adSDamjan Jovanovic             }
339*2f709283SDamjan Jovanovic             if (printit) System.out.println("FAILED for: language=" + languages[i]
340de76a5adSDamjan Jovanovic                 + " ; country=" + countries[i]);
341de76a5adSDamjan Jovanovic             printit = false;
342de76a5adSDamjan Jovanovic         }
343*2f709283SDamjan Jovanovic         Assert.assertTrue("getCollationOptions()", res);
344de76a5adSDamjan Jovanovic     }
345de76a5adSDamjan Jovanovic 
346de76a5adSDamjan Jovanovic     /**
347de76a5adSDamjan Jovanovic     * Test calls the method for several locales; result is checked
348de76a5adSDamjan Jovanovic     * after each call. <p>
349de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if all strings, returned by the method are not
350de76a5adSDamjan Jovanovic     * empty for all given locales.
351de76a5adSDamjan Jovanovic     */
352*2f709283SDamjan Jovanovic     @Test
_getTransliterations()353de76a5adSDamjan Jovanovic     public void _getTransliterations() {
354de76a5adSDamjan Jovanovic         boolean res = true;
355de76a5adSDamjan Jovanovic         boolean printit = false;
356de76a5adSDamjan Jovanovic         String[] str = new String[1];
357de76a5adSDamjan Jovanovic 
358de76a5adSDamjan Jovanovic         for (int i=0;i<7;i++) {
359de76a5adSDamjan Jovanovic             str = oObj.getTransliterations(getLocale(i));
360de76a5adSDamjan Jovanovic             for (int j=0;j<str.length;j++) {
361de76a5adSDamjan Jovanovic                 if ((str[j].equals(""))) {
362de76a5adSDamjan Jovanovic                     printit = true;
363de76a5adSDamjan Jovanovic                 }
364de76a5adSDamjan Jovanovic                 res &= (!str.equals(""));
365de76a5adSDamjan Jovanovic             }
366*2f709283SDamjan Jovanovic             if (printit) System.out.println("FAILED for: language=" + languages[i]
367de76a5adSDamjan Jovanovic                 + " ; country=" + countries[i]);
368de76a5adSDamjan Jovanovic             printit = false;
369de76a5adSDamjan Jovanovic         }
370*2f709283SDamjan Jovanovic         Assert.assertTrue("getTransliterations()", res);
371de76a5adSDamjan Jovanovic     }
372de76a5adSDamjan Jovanovic 
373de76a5adSDamjan Jovanovic     /**
374de76a5adSDamjan Jovanovic     * Test calls the method for several locales; result is checked
375de76a5adSDamjan Jovanovic     * after each call. <p>
376de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method returns structure with non-empty
377de76a5adSDamjan Jovanovic     * fields for all given locales.
378de76a5adSDamjan Jovanovic     */
379*2f709283SDamjan Jovanovic     @Test
_getForbiddenCharacters()380de76a5adSDamjan Jovanovic     public void _getForbiddenCharacters() {
381de76a5adSDamjan Jovanovic         boolean res = true;
382de76a5adSDamjan Jovanovic         ForbiddenCharacters fc = null;
383de76a5adSDamjan Jovanovic 
384de76a5adSDamjan Jovanovic         //the forbidden characters are only available for the asian languages
385de76a5adSDamjan Jovanovic         for (int i=4;i<7;i++) {
386de76a5adSDamjan Jovanovic             fc = oObj.getForbiddenCharacters(getLocale(i));
387de76a5adSDamjan Jovanovic             res &= !( fc.beginLine.equals("") || fc.endLine.equals("") );
388de76a5adSDamjan Jovanovic             if ( !res ) {
389*2f709283SDamjan Jovanovic                 System.out.println("FAILED for: language="+languages[i]+" ; country="+countries[i]);
390de76a5adSDamjan Jovanovic             }
391de76a5adSDamjan Jovanovic         }
392*2f709283SDamjan Jovanovic         Assert.assertTrue("getForbiddenCharacters()", res);
393de76a5adSDamjan Jovanovic     }
394de76a5adSDamjan Jovanovic 
395de76a5adSDamjan Jovanovic 
396de76a5adSDamjan Jovanovic     /**
397de76a5adSDamjan Jovanovic     * Test calls the method for several locales; result is checked
398de76a5adSDamjan Jovanovic     * after each call. <p>
399de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if all strings, returned by the method are not
400de76a5adSDamjan Jovanovic     * empty for all given locales.
401de76a5adSDamjan Jovanovic     */
402*2f709283SDamjan Jovanovic     @Test
_getReservedWord()403de76a5adSDamjan Jovanovic     public void _getReservedWord() {
404de76a5adSDamjan Jovanovic         boolean res = true;
405de76a5adSDamjan Jovanovic         boolean printit = false;
406de76a5adSDamjan Jovanovic         String[] str = new String[1];
407de76a5adSDamjan Jovanovic 
408de76a5adSDamjan Jovanovic         for (int i=0;i<7;i++) {
409de76a5adSDamjan Jovanovic             str = oObj.getReservedWord(getLocale(i));
410de76a5adSDamjan Jovanovic             for (int j=0;j<str.length;j++) {
411de76a5adSDamjan Jovanovic                 if ((str[j].equals(""))) {
412de76a5adSDamjan Jovanovic                     printit = true;
413de76a5adSDamjan Jovanovic                 }
414de76a5adSDamjan Jovanovic                 res &= (!str.equals(""));
415de76a5adSDamjan Jovanovic             }
416*2f709283SDamjan Jovanovic             if (printit) System.out.println("FAILED for: language=" + languages[i]
417de76a5adSDamjan Jovanovic                 + " ; country=" + countries[i]);
418de76a5adSDamjan Jovanovic             printit = false;
419de76a5adSDamjan Jovanovic         }
420*2f709283SDamjan Jovanovic         Assert.assertTrue("getReservedWord()", res);
421de76a5adSDamjan Jovanovic     }
422de76a5adSDamjan Jovanovic 
423de76a5adSDamjan Jovanovic 
424de76a5adSDamjan Jovanovic     /**
425de76a5adSDamjan Jovanovic     * Test calls the method. Then result is checked for all given locales.<p>
426de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if locale sequence, returned by the method contains
427de76a5adSDamjan Jovanovic     * given locales.
428de76a5adSDamjan Jovanovic     */
429*2f709283SDamjan Jovanovic     @Test
_getAllInstalledLocaleNames()430de76a5adSDamjan Jovanovic     public void _getAllInstalledLocaleNames() {
431de76a5adSDamjan Jovanovic         boolean res = true;
432de76a5adSDamjan Jovanovic         Locale[] locs = oObj.getAllInstalledLocaleNames();
433de76a5adSDamjan Jovanovic 
434de76a5adSDamjan Jovanovic         //check if the languages used here are part of this array
435de76a5adSDamjan Jovanovic         for (int i=0;i<7;i++) {
436de76a5adSDamjan Jovanovic             res &= contains(locs, getLocale(i));
437de76a5adSDamjan Jovanovic         }
438*2f709283SDamjan Jovanovic         Assert.assertTrue("getAllInstalledLocaleNames()",res);
439de76a5adSDamjan Jovanovic     }
440de76a5adSDamjan Jovanovic 
441de76a5adSDamjan Jovanovic 
442de76a5adSDamjan Jovanovic     /**
443de76a5adSDamjan Jovanovic     * Method returns locale for a given language and country.
444de76a5adSDamjan Jovanovic     * @param k index of needed locale.
445de76a5adSDamjan Jovanovic     * @return Locale by the index from arrays defined above
446de76a5adSDamjan Jovanovic     */
getLocale(int k)447de76a5adSDamjan Jovanovic     public Locale getLocale(int k) {
448de76a5adSDamjan Jovanovic         return new Locale(languages[k],countries[k],"");
449de76a5adSDamjan Jovanovic     }
450de76a5adSDamjan Jovanovic 
451de76a5adSDamjan Jovanovic     /**
452de76a5adSDamjan Jovanovic     * Method checks given calendar for non empty fields.
453de76a5adSDamjan Jovanovic     * @param calendar Calendar to be checked
454de76a5adSDamjan Jovanovic     */
goodCalendar(Calendar calendar)455de76a5adSDamjan Jovanovic     public boolean goodCalendar(Calendar calendar) {
456de76a5adSDamjan Jovanovic         boolean good = true;
457de76a5adSDamjan Jovanovic         for (int i=0;i<calendar.Days.length;i++) {
458*2f709283SDamjan Jovanovic             //System.out.println("Day "+i+"(AbbrevName): "+calendar.Days[i].AbbrevName);
459de76a5adSDamjan Jovanovic             good &= (! calendar.Days[i].AbbrevName.equals("") );
460*2f709283SDamjan Jovanovic             //System.out.println("Day "+i+"(FullName): "+calendar.Days[i].FullName);
461de76a5adSDamjan Jovanovic             good &= (! calendar.Days[i].FullName.equals("") );
462*2f709283SDamjan Jovanovic             //System.out.println("Day "+i+"(ID): "+calendar.Days[i].ID);
463de76a5adSDamjan Jovanovic             good &= (! calendar.Days[i].ID.equals("") );
464de76a5adSDamjan Jovanovic         }
465de76a5adSDamjan Jovanovic         for (int i=0;i<calendar.Months.length;i++) {
466*2f709283SDamjan Jovanovic             //System.out.println("Day "+i+"(AbbrevName): "+calendar.Months[i].AbbrevName);
467de76a5adSDamjan Jovanovic             good &= (! calendar.Months[i].AbbrevName.equals("") );
468*2f709283SDamjan Jovanovic             //System.out.println("Day "+i+"(FullName): "+calendar.Months[i].FullName);
469de76a5adSDamjan Jovanovic             good &= (! calendar.Months[i].FullName.equals("") );
470*2f709283SDamjan Jovanovic             //System.out.println("Day "+i+"(ID): "+calendar.Months[i].ID);
471de76a5adSDamjan Jovanovic             good &= (! calendar.Months[i].ID.equals("") );
472de76a5adSDamjan Jovanovic         }
473de76a5adSDamjan Jovanovic         for (int i=0;i<calendar.Eras.length;i++) {
474*2f709283SDamjan Jovanovic             //System.out.println("Era "+i+"(AbbrevName): "+calendar.Eras[i].AbbrevName);
475de76a5adSDamjan Jovanovic             good &= (! calendar.Eras[i].AbbrevName.equals("") );
476*2f709283SDamjan Jovanovic             //System.out.println("Era "+i+"(FullName): "+calendar.Eras[i].FullName);
477de76a5adSDamjan Jovanovic             good &= (! calendar.Eras[i].FullName.equals("") );
478*2f709283SDamjan Jovanovic             //System.out.println("Era "+i+"(ID): "+calendar.Eras[i].ID);
479de76a5adSDamjan Jovanovic             good &= (! calendar.Eras[i].ID.equals("") );
480de76a5adSDamjan Jovanovic         }
481*2f709283SDamjan Jovanovic         //System.out.println("Start of Week: "+calendar.StartOfWeek);
482de76a5adSDamjan Jovanovic         good &= (! calendar.StartOfWeek.equals("") );
483*2f709283SDamjan Jovanovic         //System.out.println("MinimumNumberOfDaysForFirstWeek: "+calendar.MinimumNumberOfDaysForFirstWeek);
484*2f709283SDamjan Jovanovic         //System.out.println("Default: "+calendar.Default);
485*2f709283SDamjan Jovanovic         //System.out.println("Name: "+calendar.Name);
486de76a5adSDamjan Jovanovic         good &= (! calendar.Name.equals("") );
487de76a5adSDamjan Jovanovic         return good;
488de76a5adSDamjan Jovanovic     }
489de76a5adSDamjan Jovanovic 
490de76a5adSDamjan Jovanovic     /**
491de76a5adSDamjan Jovanovic     * Method checks given currency for non empty fields.
492de76a5adSDamjan Jovanovic     * @param currency Currency to be checked
493de76a5adSDamjan Jovanovic     */
goodCurrency(Currency currency)494de76a5adSDamjan Jovanovic     public boolean goodCurrency(Currency currency) {
495de76a5adSDamjan Jovanovic         boolean good = true;
496de76a5adSDamjan Jovanovic         good &= (!currency.BankSymbol.equals(""));
497de76a5adSDamjan Jovanovic         good &= (!currency.Name.equals(""));
498de76a5adSDamjan Jovanovic         good &= (!currency.Symbol.equals(""));
499de76a5adSDamjan Jovanovic         return good;
500de76a5adSDamjan Jovanovic     }
501de76a5adSDamjan Jovanovic 
502de76a5adSDamjan Jovanovic     /**
503de76a5adSDamjan Jovanovic     * Method checks given format for non empty fields.
504de76a5adSDamjan Jovanovic     * @param format Format to be checked
505de76a5adSDamjan Jovanovic     */
goodFormat(FormatElement format)506de76a5adSDamjan Jovanovic     public boolean goodFormat(FormatElement format) {
507de76a5adSDamjan Jovanovic         boolean good = true;
508de76a5adSDamjan Jovanovic         good &= (!format.formatCode.equals(""));
509de76a5adSDamjan Jovanovic         good &= (!format.formatKey.equals(""));
510de76a5adSDamjan Jovanovic         good &= (!format.formatType.equals(""));
511de76a5adSDamjan Jovanovic         good &= (!format.formatUsage.equals(""));
512de76a5adSDamjan Jovanovic         return good;
513de76a5adSDamjan Jovanovic     }
514de76a5adSDamjan Jovanovic 
515de76a5adSDamjan Jovanovic     /**
516de76a5adSDamjan Jovanovic     * Method checks that locale sequence contains given locale.
517de76a5adSDamjan Jovanovic     * @param locs Locale sequence
518de76a5adSDamjan Jovanovic     * @param oneLoc given locale
519de76a5adSDamjan Jovanovic     */
contains(Locale[] locs, Locale oneLoc)520de76a5adSDamjan Jovanovic     public boolean contains(Locale[] locs, Locale oneLoc) {
521de76a5adSDamjan Jovanovic         boolean cont = false;
522de76a5adSDamjan Jovanovic         for (int j=0;j<locs.length;j++) {
523de76a5adSDamjan Jovanovic             if ( (locs[j].Country.equals(oneLoc.Country)) &&
524de76a5adSDamjan Jovanovic                 (locs[j].Language.equals(oneLoc.Language)) ) {
525de76a5adSDamjan Jovanovic                     cont=true;
526de76a5adSDamjan Jovanovic                     break;
527de76a5adSDamjan Jovanovic             }
528de76a5adSDamjan Jovanovic         }
529*2f709283SDamjan Jovanovic         if (!cont) System.out.println("Not contained: " + oneLoc.Language);
530de76a5adSDamjan Jovanovic         return cont;
531de76a5adSDamjan Jovanovic     }
532de76a5adSDamjan Jovanovic 
533de76a5adSDamjan Jovanovic } // end XLocaleData
534