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