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