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