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