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.CalendarDisplayIndex; 29*de76a5adSDamjan Jovanovic import com.sun.star.i18n.CalendarFieldIndex; 30*de76a5adSDamjan Jovanovic import com.sun.star.i18n.CalendarItem; 31*de76a5adSDamjan Jovanovic import com.sun.star.i18n.XCalendar; 32*de76a5adSDamjan Jovanovic import com.sun.star.i18n.XLocaleData; 33*de76a5adSDamjan Jovanovic import com.sun.star.lang.Locale; 34*de76a5adSDamjan Jovanovic import com.sun.star.lang.XMultiServiceFactory; 35*de76a5adSDamjan Jovanovic import com.sun.star.uno.UnoRuntime; 36*de76a5adSDamjan Jovanovic 37*de76a5adSDamjan Jovanovic /** 38*de76a5adSDamjan Jovanovic * Testing <code>com.sun.star.i18n.XCalendar</code> 39*de76a5adSDamjan Jovanovic * interface methods : 40*de76a5adSDamjan Jovanovic * <ul> 41*de76a5adSDamjan Jovanovic * <li><code> loadDefaultCalendar()</code></li> 42*de76a5adSDamjan Jovanovic * <li><code> loadCalendar()</code></li> 43*de76a5adSDamjan Jovanovic * <li><code> getLoadedCalendar()</code></li> 44*de76a5adSDamjan Jovanovic * <li><code> getAllCalendars()</code></li> 45*de76a5adSDamjan Jovanovic * <li><code> getUniqueID()</code></li> 46*de76a5adSDamjan Jovanovic * <li><code> setDateTime()</code></li> 47*de76a5adSDamjan Jovanovic * <li><code> getDateTime()</code></li> 48*de76a5adSDamjan Jovanovic * <li><code> setValue()</code></li> 49*de76a5adSDamjan Jovanovic * <li><code> getValue()</code></li> 50*de76a5adSDamjan Jovanovic * <li><code> isValid()</code></li> 51*de76a5adSDamjan Jovanovic * <li><code> addValue()</code></li> 52*de76a5adSDamjan Jovanovic * <li><code> getFirstDayOfWeek()</code></li> 53*de76a5adSDamjan Jovanovic * <li><code> setFirstDayOfWeek()</code></li> 54*de76a5adSDamjan Jovanovic * <li><code> setMinimumNumberOfDaysForFirstWeek()</code></li> 55*de76a5adSDamjan Jovanovic * <li><code> getMinimumNumberOfDaysForFirstWeek()</code></li> 56*de76a5adSDamjan Jovanovic * <li><code> getNumberOfMonthsInYear()</code></li> 57*de76a5adSDamjan Jovanovic * <li><code> getNumberOfDaysInWeek()</code></li> 58*de76a5adSDamjan Jovanovic * <li><code> getMonths()</code></li> 59*de76a5adSDamjan Jovanovic * <li><code> getDays()</code></li> 60*de76a5adSDamjan Jovanovic * <li><code> getDisplayName()</code></li> 61*de76a5adSDamjan Jovanovic * </ul> <p> 62*de76a5adSDamjan Jovanovic * Test is <b> NOT </b> multithread compliant. <p> 63*de76a5adSDamjan Jovanovic * @see com.sun.star.i18n.XCalendar 64*de76a5adSDamjan Jovanovic */ 65*de76a5adSDamjan Jovanovic public class _XCalendar extends MultiMethodTest { 66*de76a5adSDamjan Jovanovic private boolean debug = false; 67*de76a5adSDamjan Jovanovic public XCalendar oObj = null; 68*de76a5adSDamjan Jovanovic public String[][] calendars; 69*de76a5adSDamjan Jovanovic public int[] count; 70*de76a5adSDamjan Jovanovic public double newDTime = 1000.75; 71*de76a5adSDamjan Jovanovic public short newValue = 2; 72*de76a5adSDamjan Jovanovic public short firstDay = 2; 73*de76a5adSDamjan Jovanovic public short mdfw = 3; 74*de76a5adSDamjan Jovanovic double aOriginalDTime = 0; 75*de76a5adSDamjan Jovanovic Locale[] installed_locales; 76*de76a5adSDamjan Jovanovic 77*de76a5adSDamjan Jovanovic public void before() { 78*de76a5adSDamjan Jovanovic XLocaleData locData = null; 79*de76a5adSDamjan Jovanovic try { 80*de76a5adSDamjan Jovanovic locData = (XLocaleData) UnoRuntime.queryInterface( 81*de76a5adSDamjan Jovanovic XLocaleData.class, 82*de76a5adSDamjan Jovanovic ((XMultiServiceFactory)tParam.getMSF()).createInstance( 83*de76a5adSDamjan Jovanovic "com.sun.star.i18n.LocaleData")); 84*de76a5adSDamjan Jovanovic } catch (com.sun.star.uno.Exception e) { 85*de76a5adSDamjan Jovanovic 86*de76a5adSDamjan Jovanovic } 87*de76a5adSDamjan Jovanovic installed_locales = locData.getAllInstalledLocaleNames(); 88*de76a5adSDamjan Jovanovic calendars = new String[installed_locales.length][]; 89*de76a5adSDamjan Jovanovic count = new int[installed_locales.length]; 90*de76a5adSDamjan Jovanovic oObj.loadDefaultCalendar(installed_locales[0]); 91*de76a5adSDamjan Jovanovic aOriginalDTime = oObj.getDateTime(); 92*de76a5adSDamjan Jovanovic 93*de76a5adSDamjan Jovanovic debug = tParam.getBool("DebugIsActive"); 94*de76a5adSDamjan Jovanovic } 95*de76a5adSDamjan Jovanovic 96*de76a5adSDamjan Jovanovic /** 97*de76a5adSDamjan Jovanovic * Restore the changed time during the test to the original value of the 98*de76a5adSDamjan Jovanovic * machine: has to be correct for the following interface tests. 99*de76a5adSDamjan Jovanovic */ 100*de76a5adSDamjan Jovanovic public void after() { 101*de76a5adSDamjan Jovanovic oObj.loadDefaultCalendar(installed_locales[0]); 102*de76a5adSDamjan Jovanovic oObj.setDateTime(aOriginalDTime); 103*de76a5adSDamjan Jovanovic } 104*de76a5adSDamjan Jovanovic 105*de76a5adSDamjan Jovanovic /** 106*de76a5adSDamjan Jovanovic * Loads default calendar for different locales. <p> 107*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if method loads calendar, that is 108*de76a5adSDamjan Jovanovic * default for a given locale. 109*de76a5adSDamjan Jovanovic */ 110*de76a5adSDamjan Jovanovic public void _loadDefaultCalendar() { 111*de76a5adSDamjan Jovanovic boolean res = true; 112*de76a5adSDamjan Jovanovic 113*de76a5adSDamjan Jovanovic for (int i=0; i<installed_locales.length; i++) { 114*de76a5adSDamjan Jovanovic String lang = "Language: "+installed_locales[i].Language + 115*de76a5adSDamjan Jovanovic ", Country: "+ installed_locales[i].Country + 116*de76a5adSDamjan Jovanovic ", Variant: "+ installed_locales[i].Country; 117*de76a5adSDamjan Jovanovic oObj.loadDefaultCalendar(installed_locales[i]); 118*de76a5adSDamjan Jovanovic if (oObj.getLoadedCalendar().Default) { 119*de76a5adSDamjan Jovanovic //log.println(lang + " ... OK"); 120*de76a5adSDamjan Jovanovic } else { 121*de76a5adSDamjan Jovanovic log.println(lang + " ... FAILED"); 122*de76a5adSDamjan Jovanovic } 123*de76a5adSDamjan Jovanovic res &= oObj.getLoadedCalendar().Default; 124*de76a5adSDamjan Jovanovic } 125*de76a5adSDamjan Jovanovic 126*de76a5adSDamjan Jovanovic tRes.tested("loadDefaultCalendar()", res); 127*de76a5adSDamjan Jovanovic } 128*de76a5adSDamjan Jovanovic 129*de76a5adSDamjan Jovanovic /** 130*de76a5adSDamjan Jovanovic * Tries to obtain calendars for a number of locales. <p> 131*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if the method returns more than zero calendars for 132*de76a5adSDamjan Jovanovic * every locale. 133*de76a5adSDamjan Jovanovic */ 134*de76a5adSDamjan Jovanovic public void _getAllCalendars() { 135*de76a5adSDamjan Jovanovic boolean res = true; 136*de76a5adSDamjan Jovanovic 137*de76a5adSDamjan Jovanovic for (int i=0; i<installed_locales.length; i++) { 138*de76a5adSDamjan Jovanovic String lang = "Language: "+installed_locales[i].Language + 139*de76a5adSDamjan Jovanovic ", Country: "+ installed_locales[i].Country + 140*de76a5adSDamjan Jovanovic ", Variant: "+ installed_locales[i].Country; 141*de76a5adSDamjan Jovanovic calendars[i] = oObj.getAllCalendars(installed_locales[i]); 142*de76a5adSDamjan Jovanovic count[i] = calendars[i].length-1; 143*de76a5adSDamjan Jovanovic if (calendars[i].length > 0) { 144*de76a5adSDamjan Jovanovic //log.println(lang + " ... OK"); 145*de76a5adSDamjan Jovanovic } else { 146*de76a5adSDamjan Jovanovic log.println(lang + " ... FAILED"); 147*de76a5adSDamjan Jovanovic } 148*de76a5adSDamjan Jovanovic res &= (calendars[i].length > 0); 149*de76a5adSDamjan Jovanovic } 150*de76a5adSDamjan Jovanovic tRes.tested("getAllCalendars()", res); 151*de76a5adSDamjan Jovanovic } 152*de76a5adSDamjan Jovanovic 153*de76a5adSDamjan Jovanovic /** 154*de76a5adSDamjan Jovanovic * Loads calendars for a number of locales. <p> 155*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if loaded calendar names are equal to gotten 156*de76a5adSDamjan Jovanovic * calendar names after loading.<p> 157*de76a5adSDamjan Jovanovic * The following method tests are to be completed successfully before : 158*de76a5adSDamjan Jovanovic * <ul> 159*de76a5adSDamjan Jovanovic * <li> <code> getAllCalendars() </code> : gets all calendars for a given 160*de76a5adSDamjan Jovanovic * locale </li> 161*de76a5adSDamjan Jovanovic * </ul> 162*de76a5adSDamjan Jovanovic */ 163*de76a5adSDamjan Jovanovic public void _loadCalendar() { 164*de76a5adSDamjan Jovanovic boolean res = true; 165*de76a5adSDamjan Jovanovic requiredMethod("getAllCalendars()"); 166*de76a5adSDamjan Jovanovic 167*de76a5adSDamjan Jovanovic for (int i=0; i<installed_locales.length; i++) { 168*de76a5adSDamjan Jovanovic String lang = "Language: "+installed_locales[i].Language + 169*de76a5adSDamjan Jovanovic ", Country: "+ installed_locales[i].Country + 170*de76a5adSDamjan Jovanovic ", Variant: "+ installed_locales[i].Country; 171*de76a5adSDamjan Jovanovic oObj.loadCalendar(calendars[i][0], installed_locales[i]); 172*de76a5adSDamjan Jovanovic if (calendars[i][0].equals(oObj.getLoadedCalendar().Name)) { 173*de76a5adSDamjan Jovanovic //log.println(lang + " ... OK"); 174*de76a5adSDamjan Jovanovic } else { 175*de76a5adSDamjan Jovanovic log.println(lang + " ... FAILED"); 176*de76a5adSDamjan Jovanovic } 177*de76a5adSDamjan Jovanovic res &= calendars[i][0].equals(oObj.getLoadedCalendar().Name); 178*de76a5adSDamjan Jovanovic } 179*de76a5adSDamjan Jovanovic 180*de76a5adSDamjan Jovanovic tRes.tested("loadCalendar()", res); 181*de76a5adSDamjan Jovanovic } 182*de76a5adSDamjan Jovanovic 183*de76a5adSDamjan Jovanovic /** 184*de76a5adSDamjan Jovanovic * Test calls the method, then result is checked. <p> 185*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if loaded calendar names are equal to gotten 186*de76a5adSDamjan Jovanovic * calendar names after loading.<p> 187*de76a5adSDamjan Jovanovic * The following method tests are to be completed successfully before : 188*de76a5adSDamjan Jovanovic * <ul> 189*de76a5adSDamjan Jovanovic * <li> <code> loadCalendar() </code> : loads calendar using a given name 190*de76a5adSDamjan Jovanovic * and locale </li> 191*de76a5adSDamjan Jovanovic * </ul> 192*de76a5adSDamjan Jovanovic */ 193*de76a5adSDamjan Jovanovic public void _getLoadedCalendar() { 194*de76a5adSDamjan Jovanovic boolean res = true; 195*de76a5adSDamjan Jovanovic 196*de76a5adSDamjan Jovanovic requiredMethod("loadCalendar()"); 197*de76a5adSDamjan Jovanovic for (int i=0; i<installed_locales.length; i++) { 198*de76a5adSDamjan Jovanovic String lang = "Language: "+installed_locales[i].Language + 199*de76a5adSDamjan Jovanovic ", Country: "+ installed_locales[i].Country + 200*de76a5adSDamjan Jovanovic ", Variant: "+ installed_locales[i].Country; 201*de76a5adSDamjan Jovanovic oObj.loadCalendar(calendars[i][0], installed_locales[i]); 202*de76a5adSDamjan Jovanovic if (calendars[i][0].equals(oObj.getLoadedCalendar().Name)) { 203*de76a5adSDamjan Jovanovic //log.println(lang + " ... OK"); 204*de76a5adSDamjan Jovanovic } else { 205*de76a5adSDamjan Jovanovic log.println(lang + " ... FAILED"); 206*de76a5adSDamjan Jovanovic } 207*de76a5adSDamjan Jovanovic res &= calendars[i][0].equals(oObj.getLoadedCalendar().Name); 208*de76a5adSDamjan Jovanovic } 209*de76a5adSDamjan Jovanovic tRes.tested("getLoadedCalendar()", res); 210*de76a5adSDamjan Jovanovic } 211*de76a5adSDamjan Jovanovic 212*de76a5adSDamjan Jovanovic /** 213*de76a5adSDamjan Jovanovic * Test calls the method, then result is checked. <p> 214*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if the method returns value that's equal to a 215*de76a5adSDamjan Jovanovic * calendar name. <p> 216*de76a5adSDamjan Jovanovic * The following method tests are to be completed successfully before : 217*de76a5adSDamjan Jovanovic * <ul> 218*de76a5adSDamjan Jovanovic * <li> <code> loadCalendar() </code> : loads calendar using a given name 219*de76a5adSDamjan Jovanovic * and locale </li> 220*de76a5adSDamjan Jovanovic * </ul> 221*de76a5adSDamjan Jovanovic */ 222*de76a5adSDamjan Jovanovic public void _getUniqueID() { 223*de76a5adSDamjan Jovanovic boolean res = true; 224*de76a5adSDamjan Jovanovic for (int i=0; i<installed_locales.length; i++) { 225*de76a5adSDamjan Jovanovic String lang = "Language: "+installed_locales[i].Language + 226*de76a5adSDamjan Jovanovic ", Country: "+ installed_locales[i].Country + 227*de76a5adSDamjan Jovanovic ", Variant: "+ installed_locales[i].Country; 228*de76a5adSDamjan Jovanovic oObj.loadCalendar(calendars[i][0], installed_locales[i]); 229*de76a5adSDamjan Jovanovic String uID = oObj.getUniqueID(); 230*de76a5adSDamjan Jovanovic if (uID.equals(calendars[i][0])) { 231*de76a5adSDamjan Jovanovic //log.println(lang + " ... OK"); 232*de76a5adSDamjan Jovanovic } else { 233*de76a5adSDamjan Jovanovic log.println(lang + " ... FAILED"); 234*de76a5adSDamjan Jovanovic } 235*de76a5adSDamjan Jovanovic res &= uID.equals(calendars[i][0]); 236*de76a5adSDamjan Jovanovic } 237*de76a5adSDamjan Jovanovic 238*de76a5adSDamjan Jovanovic tRes.tested("getUniqueID()",res); 239*de76a5adSDamjan Jovanovic } 240*de76a5adSDamjan Jovanovic 241*de76a5adSDamjan Jovanovic /** 242*de76a5adSDamjan Jovanovic * Test calls the method, then result is checked. <p> 243*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if the method returns value, that's equal to 244*de76a5adSDamjan Jovanovic * value set before. <p> 245*de76a5adSDamjan Jovanovic */ 246*de76a5adSDamjan Jovanovic 247*de76a5adSDamjan Jovanovic public void _setDateTime() { 248*de76a5adSDamjan Jovanovic boolean res = true; 249*de76a5adSDamjan Jovanovic 250*de76a5adSDamjan Jovanovic for (int i=0; i<installed_locales.length; i++) { 251*de76a5adSDamjan Jovanovic String lang = "Language: "+installed_locales[i].Language + 252*de76a5adSDamjan Jovanovic ", Country: "+ installed_locales[i].Country + 253*de76a5adSDamjan Jovanovic ", Variant: "+ installed_locales[i].Country; 254*de76a5adSDamjan Jovanovic oObj.setDateTime(newDTime); 255*de76a5adSDamjan Jovanovic double aDTime = oObj.getDateTime(); 256*de76a5adSDamjan Jovanovic if (aDTime == newDTime) { 257*de76a5adSDamjan Jovanovic //log.println(lang + " ... OK"); 258*de76a5adSDamjan Jovanovic } else { 259*de76a5adSDamjan Jovanovic log.println(lang + " ... FAILED"); 260*de76a5adSDamjan Jovanovic } 261*de76a5adSDamjan Jovanovic res &= (aDTime == newDTime); 262*de76a5adSDamjan Jovanovic } 263*de76a5adSDamjan Jovanovic 264*de76a5adSDamjan Jovanovic tRes.tested("setDateTime()", res); 265*de76a5adSDamjan Jovanovic } 266*de76a5adSDamjan Jovanovic 267*de76a5adSDamjan Jovanovic /** 268*de76a5adSDamjan Jovanovic * Test calls the method, then result is checked. <p> 269*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if the method returns value, that's equal to 270*de76a5adSDamjan Jovanovic * value set before. <p> 271*de76a5adSDamjan Jovanovic */ 272*de76a5adSDamjan Jovanovic 273*de76a5adSDamjan Jovanovic public void _getDateTime() { 274*de76a5adSDamjan Jovanovic boolean res = true; 275*de76a5adSDamjan Jovanovic 276*de76a5adSDamjan Jovanovic for (int i=0; i<installed_locales.length; i++) { 277*de76a5adSDamjan Jovanovic String lang = "Language: "+installed_locales[i].Language + 278*de76a5adSDamjan Jovanovic ", Country: "+ installed_locales[i].Country + 279*de76a5adSDamjan Jovanovic ", Variant: "+ installed_locales[i].Country; 280*de76a5adSDamjan Jovanovic oObj.setDateTime(newDTime); 281*de76a5adSDamjan Jovanovic double aDTime = oObj.getDateTime(); 282*de76a5adSDamjan Jovanovic if (aDTime == newDTime) { 283*de76a5adSDamjan Jovanovic //log.println(lang + " ... OK"); 284*de76a5adSDamjan Jovanovic } else { 285*de76a5adSDamjan Jovanovic log.println(lang + " ... FAILED"); 286*de76a5adSDamjan Jovanovic } 287*de76a5adSDamjan Jovanovic res &= (aDTime == newDTime); 288*de76a5adSDamjan Jovanovic } 289*de76a5adSDamjan Jovanovic tRes.tested("getDateTime()", res); 290*de76a5adSDamjan Jovanovic } 291*de76a5adSDamjan Jovanovic 292*de76a5adSDamjan Jovanovic /** 293*de76a5adSDamjan Jovanovic * Test calls the method, then result is checked. <p> 294*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if the method returns value, that's equal to 295*de76a5adSDamjan Jovanovic * value set before. <p> 296*de76a5adSDamjan Jovanovic */ 297*de76a5adSDamjan Jovanovic 298*de76a5adSDamjan Jovanovic public void _setValue() { 299*de76a5adSDamjan Jovanovic boolean res = true; 300*de76a5adSDamjan Jovanovic for (int i=0; i<installed_locales.length; i++) { 301*de76a5adSDamjan Jovanovic String error = ""; 302*de76a5adSDamjan Jovanovic String lang = "Language: "+installed_locales[i].Language + 303*de76a5adSDamjan Jovanovic ", Country: "+ installed_locales[i].Country + 304*de76a5adSDamjan Jovanovic ", Variant: "+ installed_locales[i].Variant + 305*de76a5adSDamjan Jovanovic ", Name: "+calendars[i][count[i]]; 306*de76a5adSDamjan Jovanovic String[] names = new String[]{"DAY_OF_MONTH", 307*de76a5adSDamjan Jovanovic "HOUR","MINUTE","SECOND","MILLISECOND", 308*de76a5adSDamjan Jovanovic "YEAR","MONTH"}; 309*de76a5adSDamjan Jovanovic oObj.loadCalendar(calendars[i][count[i]],installed_locales[i]); 310*de76a5adSDamjan Jovanovic short[] fields = new short[]{CalendarFieldIndex.DAY_OF_MONTH, 311*de76a5adSDamjan Jovanovic CalendarFieldIndex.HOUR, 312*de76a5adSDamjan Jovanovic CalendarFieldIndex.MINUTE, 313*de76a5adSDamjan Jovanovic CalendarFieldIndex.SECOND, 314*de76a5adSDamjan Jovanovic CalendarFieldIndex.MILLISECOND, 315*de76a5adSDamjan Jovanovic CalendarFieldIndex.YEAR, 316*de76a5adSDamjan Jovanovic CalendarFieldIndex.MONTH 317*de76a5adSDamjan Jovanovic }; 318*de76a5adSDamjan Jovanovic for (int k=0; k<fields.length;k++) { 319*de76a5adSDamjan Jovanovic 320*de76a5adSDamjan Jovanovic oObj.setDateTime(0.0); 321*de76a5adSDamjan Jovanovic 322*de76a5adSDamjan Jovanovic // save the current values for debug purposes 323*de76a5adSDamjan Jovanovic short[] oldValues = new short[fields.length]; 324*de76a5adSDamjan Jovanovic for (int n=0; n < oldValues.length; n++){ 325*de76a5adSDamjan Jovanovic oldValues[n] = oObj.getValue(fields[n]); 326*de76a5adSDamjan Jovanovic } 327*de76a5adSDamjan Jovanovic 328*de76a5adSDamjan Jovanovic short set = oObj.getValue(fields[k]); 329*de76a5adSDamjan Jovanovic if (fields[k] == CalendarFieldIndex.MONTH) set = newValue; 330*de76a5adSDamjan Jovanovic oObj.setValue(fields[k],set); 331*de76a5adSDamjan Jovanovic short get = oObj.getValue(fields[k]); 332*de76a5adSDamjan Jovanovic if (get != set) { 333*de76a5adSDamjan Jovanovic if (debug) 334*de76a5adSDamjan Jovanovic log.println("ERROR occur: tried to set " + names[k] + " to value " + set); 335*de76a5adSDamjan Jovanovic log.println("list of values BEFORE set " + names[k] + " to value " + set + ":"); 336*de76a5adSDamjan Jovanovic for (int n=0; n < oldValues.length; n++){ 337*de76a5adSDamjan Jovanovic log.println(names[n] + ":" + oldValues[n]); 338*de76a5adSDamjan Jovanovic } 339*de76a5adSDamjan Jovanovic log.println("list of values AFTER set " + names[k] + " to value " + set + ":"); 340*de76a5adSDamjan Jovanovic for (int n=0; n < fields.length;n++){ 341*de76a5adSDamjan Jovanovic log.println(names[n] + ":" + oObj.getValue(fields[n])); 342*de76a5adSDamjan Jovanovic } 343*de76a5adSDamjan Jovanovic 344*de76a5adSDamjan Jovanovic error += "failed for "+names[k]+" expected "+ 345*de76a5adSDamjan Jovanovic set+" gained "+get+" ; \n"; 346*de76a5adSDamjan Jovanovic } 347*de76a5adSDamjan Jovanovic } 348*de76a5adSDamjan Jovanovic if (error.equals("")) { 349*de76a5adSDamjan Jovanovic log.println(lang + " ... OK"); 350*de76a5adSDamjan Jovanovic } else { 351*de76a5adSDamjan Jovanovic log.println("*** "+lang + " ... FAILED ***"); 352*de76a5adSDamjan Jovanovic log.println(error); 353*de76a5adSDamjan Jovanovic } 354*de76a5adSDamjan Jovanovic res &= (error.equals("")); 355*de76a5adSDamjan Jovanovic } 356*de76a5adSDamjan Jovanovic 357*de76a5adSDamjan Jovanovic tRes.tested("setValue()", res); 358*de76a5adSDamjan Jovanovic } 359*de76a5adSDamjan Jovanovic 360*de76a5adSDamjan Jovanovic /** 361*de76a5adSDamjan Jovanovic * Test calls the method, then result is checked. <p> 362*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if the method returns value, that's equal to 363*de76a5adSDamjan Jovanovic * value set before. <p> 364*de76a5adSDamjan Jovanovic */ 365*de76a5adSDamjan Jovanovic 366*de76a5adSDamjan Jovanovic public void _getValue() { 367*de76a5adSDamjan Jovanovic boolean res = true; 368*de76a5adSDamjan Jovanovic 369*de76a5adSDamjan Jovanovic requiredMethod("setValue()"); 370*de76a5adSDamjan Jovanovic short aValue = oObj.getValue(CalendarFieldIndex.MONTH); 371*de76a5adSDamjan Jovanovic res &= (aValue == newValue); 372*de76a5adSDamjan Jovanovic if (!res){ 373*de76a5adSDamjan Jovanovic log.println("the returned value is not the expected value:"); 374*de76a5adSDamjan Jovanovic log.println("expexted: " + newValue + " returned value: " + aValue); 375*de76a5adSDamjan Jovanovic } 376*de76a5adSDamjan Jovanovic tRes.tested("getValue()", res); 377*de76a5adSDamjan Jovanovic } 378*de76a5adSDamjan Jovanovic 379*de76a5adSDamjan Jovanovic /** 380*de76a5adSDamjan Jovanovic * Test calls the method, then result is checked. <p> 381*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if value, added by the method is greater than 382*de76a5adSDamjan Jovanovic * previously defined "newValue". 383*de76a5adSDamjan Jovanovic * <p> 384*de76a5adSDamjan Jovanovic * The following method tests are to be completed successfully before : 385*de76a5adSDamjan Jovanovic * <ul> 386*de76a5adSDamjan Jovanovic * <li> <code> getValue() </code> : gets the value of a field </li> 387*de76a5adSDamjan Jovanovic * </ul> 388*de76a5adSDamjan Jovanovic */ 389*de76a5adSDamjan Jovanovic public void _addValue() { 390*de76a5adSDamjan Jovanovic boolean res = true; 391*de76a5adSDamjan Jovanovic 392*de76a5adSDamjan Jovanovic requiredMethod("getValue()"); 393*de76a5adSDamjan Jovanovic oObj.addValue(CalendarFieldIndex.MONTH, 1); 394*de76a5adSDamjan Jovanovic short aValue = oObj.getValue(CalendarFieldIndex.MONTH); 395*de76a5adSDamjan Jovanovic res &= (aValue > newValue); 396*de76a5adSDamjan Jovanovic if (!res){ 397*de76a5adSDamjan Jovanovic log.println("the returned value is not the expected value:"); 398*de76a5adSDamjan Jovanovic log.println("expexted: " + newValue + " returned value: " + aValue); 399*de76a5adSDamjan Jovanovic } 400*de76a5adSDamjan Jovanovic tRes.tested("addValue()", res); 401*de76a5adSDamjan Jovanovic } 402*de76a5adSDamjan Jovanovic 403*de76a5adSDamjan Jovanovic /** 404*de76a5adSDamjan Jovanovic * Test calls the method. <p> 405*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if the method successfully returns 406*de76a5adSDamjan Jovanovic * and no exceptions were thrown. 407*de76a5adSDamjan Jovanovic */ 408*de76a5adSDamjan Jovanovic public void _setFirstDayOfWeek() { 409*de76a5adSDamjan Jovanovic boolean res = true; 410*de76a5adSDamjan Jovanovic 411*de76a5adSDamjan Jovanovic oObj.setFirstDayOfWeek(firstDay); 412*de76a5adSDamjan Jovanovic res &= true; 413*de76a5adSDamjan Jovanovic tRes.tested("setFirstDayOfWeek()", res); 414*de76a5adSDamjan Jovanovic } 415*de76a5adSDamjan Jovanovic 416*de76a5adSDamjan Jovanovic /** 417*de76a5adSDamjan Jovanovic * Test calls the method, then result is checked. <p> 418*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if the method returns value that is equal to 419*de76a5adSDamjan Jovanovic * value set before. <p> 420*de76a5adSDamjan Jovanovic * The following method tests are to be completed successfully before : 421*de76a5adSDamjan Jovanovic * <ul> 422*de76a5adSDamjan Jovanovic * <li> <code> setFirstDayOfWeek() </code> : set the first day of a 423*de76a5adSDamjan Jovanovic * week</li> 424*de76a5adSDamjan Jovanovic * </ul> 425*de76a5adSDamjan Jovanovic */ 426*de76a5adSDamjan Jovanovic public void _getFirstDayOfWeek() { 427*de76a5adSDamjan Jovanovic boolean res = true; 428*de76a5adSDamjan Jovanovic 429*de76a5adSDamjan Jovanovic requiredMethod("setFirstDayOfWeek()"); 430*de76a5adSDamjan Jovanovic short aFirstDayOfWeek = oObj.getFirstDayOfWeek(); 431*de76a5adSDamjan Jovanovic res &= (aFirstDayOfWeek == firstDay); 432*de76a5adSDamjan Jovanovic tRes.tested("getFirstDayOfWeek()", res); 433*de76a5adSDamjan Jovanovic } 434*de76a5adSDamjan Jovanovic 435*de76a5adSDamjan Jovanovic /** 436*de76a5adSDamjan Jovanovic * Test calls the method. <p> 437*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if the method successfully returns 438*de76a5adSDamjan Jovanovic * and no exceptions were thrown. 439*de76a5adSDamjan Jovanovic */ 440*de76a5adSDamjan Jovanovic public void _setMinimumNumberOfDaysForFirstWeek() { 441*de76a5adSDamjan Jovanovic boolean res = true; 442*de76a5adSDamjan Jovanovic 443*de76a5adSDamjan Jovanovic oObj.setMinimumNumberOfDaysForFirstWeek(mdfw); 444*de76a5adSDamjan Jovanovic res &= true; 445*de76a5adSDamjan Jovanovic tRes.tested("setMinimumNumberOfDaysForFirstWeek()", res); 446*de76a5adSDamjan Jovanovic } 447*de76a5adSDamjan Jovanovic 448*de76a5adSDamjan Jovanovic /** 449*de76a5adSDamjan Jovanovic * Test calls the method, then result is checked. <p> 450*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if the method returns value that is equal to 451*de76a5adSDamjan Jovanovic * value set before. <p> 452*de76a5adSDamjan Jovanovic * The following method tests are to be completed successfully before : 453*de76a5adSDamjan Jovanovic * <ul> 454*de76a5adSDamjan Jovanovic * <li> <code> setMinimumNumberOfDaysForFirstWeek() </code> : sets how 455*de76a5adSDamjan Jovanovic * many days of a week must reside in the first week of a year</li> 456*de76a5adSDamjan Jovanovic * </ul> 457*de76a5adSDamjan Jovanovic */ 458*de76a5adSDamjan Jovanovic public void _getMinimumNumberOfDaysForFirstWeek() { 459*de76a5adSDamjan Jovanovic boolean res = true; 460*de76a5adSDamjan Jovanovic 461*de76a5adSDamjan Jovanovic requiredMethod("setMinimumNumberOfDaysForFirstWeek()"); 462*de76a5adSDamjan Jovanovic short aShort = oObj.getMinimumNumberOfDaysForFirstWeek(); 463*de76a5adSDamjan Jovanovic res &= (aShort == mdfw); 464*de76a5adSDamjan Jovanovic tRes.tested("getMinimumNumberOfDaysForFirstWeek()", res); 465*de76a5adSDamjan Jovanovic } 466*de76a5adSDamjan Jovanovic 467*de76a5adSDamjan Jovanovic /** 468*de76a5adSDamjan Jovanovic * Test calls the method, then result is checked. <p> 469*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if the method returns 12. 470*de76a5adSDamjan Jovanovic */ 471*de76a5adSDamjan Jovanovic public void _getNumberOfMonthsInYear() { 472*de76a5adSDamjan Jovanovic boolean res = true; 473*de76a5adSDamjan Jovanovic short aShort = oObj.getNumberOfMonthsInYear(); 474*de76a5adSDamjan Jovanovic 475*de76a5adSDamjan Jovanovic res &= (aShort == (short) 12); 476*de76a5adSDamjan Jovanovic tRes.tested("getNumberOfMonthsInYear()", res); 477*de76a5adSDamjan Jovanovic } 478*de76a5adSDamjan Jovanovic 479*de76a5adSDamjan Jovanovic /** 480*de76a5adSDamjan Jovanovic * Test calls the method, then result is checked. <p> 481*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if the method returns 7. 482*de76a5adSDamjan Jovanovic */ 483*de76a5adSDamjan Jovanovic public void _getNumberOfDaysInWeek() { 484*de76a5adSDamjan Jovanovic boolean res = true; 485*de76a5adSDamjan Jovanovic short aShort = oObj.getNumberOfDaysInWeek(); 486*de76a5adSDamjan Jovanovic 487*de76a5adSDamjan Jovanovic res &= (aShort == (short) 7); 488*de76a5adSDamjan Jovanovic tRes.tested("getNumberOfDaysInWeek()", res); 489*de76a5adSDamjan Jovanovic } 490*de76a5adSDamjan Jovanovic 491*de76a5adSDamjan Jovanovic /** 492*de76a5adSDamjan Jovanovic * Test calls the method, then result is checked. <p> 493*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if length of array, returned by the method is 12. 494*de76a5adSDamjan Jovanovic */ 495*de76a5adSDamjan Jovanovic public void _getMonths() { 496*de76a5adSDamjan Jovanovic boolean res = true; 497*de76a5adSDamjan Jovanovic CalendarItem[] months = oObj.getMonths(); 498*de76a5adSDamjan Jovanovic 499*de76a5adSDamjan Jovanovic res &= (months.length == 12); 500*de76a5adSDamjan Jovanovic tRes.tested("getMonths()", res); 501*de76a5adSDamjan Jovanovic } 502*de76a5adSDamjan Jovanovic 503*de76a5adSDamjan Jovanovic /** 504*de76a5adSDamjan Jovanovic * Test calls the method, then result is checked. <p> 505*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if length of array, returned by the method is 7. 506*de76a5adSDamjan Jovanovic */ 507*de76a5adSDamjan Jovanovic public void _getDays() { 508*de76a5adSDamjan Jovanovic boolean res = true; 509*de76a5adSDamjan Jovanovic CalendarItem[] Days = oObj.getDays(); 510*de76a5adSDamjan Jovanovic 511*de76a5adSDamjan Jovanovic res &= (Days.length == 7); 512*de76a5adSDamjan Jovanovic tRes.tested("getDays()", res); 513*de76a5adSDamjan Jovanovic } 514*de76a5adSDamjan Jovanovic 515*de76a5adSDamjan Jovanovic /** 516*de76a5adSDamjan Jovanovic * After loading calendar, test calls the method, then result is checked.<p> 517*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if length of string, returned by the method is 3. 518*de76a5adSDamjan Jovanovic */ 519*de76a5adSDamjan Jovanovic public void _getDisplayName() { 520*de76a5adSDamjan Jovanovic boolean res = true; 521*de76a5adSDamjan Jovanovic 522*de76a5adSDamjan Jovanovic oObj.loadCalendar(calendars[0][0],installed_locales[0]); 523*de76a5adSDamjan Jovanovic String DisplayName = oObj.getDisplayName(CalendarDisplayIndex.MONTH, 524*de76a5adSDamjan Jovanovic newValue, (short) 0); 525*de76a5adSDamjan Jovanovic res &= (DisplayName.length() == 3); 526*de76a5adSDamjan Jovanovic tRes.tested("getDisplayName()", res); 527*de76a5adSDamjan Jovanovic } 528*de76a5adSDamjan Jovanovic 529*de76a5adSDamjan Jovanovic 530*de76a5adSDamjan Jovanovic /** 531*de76a5adSDamjan Jovanovic * The test sets obviously wrong value, then calls a method. After that the 532*de76a5adSDamjan Jovanovic * test sets correct value, and again calls a method. <p> 533*de76a5adSDamjan Jovanovic * Has <b> OK </b> status if the method returns true when valid month is 534*de76a5adSDamjan Jovanovic * set, and if the method returns false when set month is not valid. 535*de76a5adSDamjan Jovanovic */ 536*de76a5adSDamjan Jovanovic public void _isValid() { 537*de76a5adSDamjan Jovanovic boolean res = true; 538*de76a5adSDamjan Jovanovic 539*de76a5adSDamjan Jovanovic oObj.loadDefaultCalendar(installed_locales[0]); 540*de76a5adSDamjan Jovanovic oObj.setValue(CalendarFieldIndex.MONTH, (short) 37); 541*de76a5adSDamjan Jovanovic res &= !oObj.isValid(); 542*de76a5adSDamjan Jovanovic oObj.setValue(CalendarFieldIndex.MONTH, (short) 10); 543*de76a5adSDamjan Jovanovic res &= oObj.isValid(); 544*de76a5adSDamjan Jovanovic 545*de76a5adSDamjan Jovanovic tRes.tested("isValid()", res); 546*de76a5adSDamjan Jovanovic } 547*de76a5adSDamjan Jovanovic 548*de76a5adSDamjan Jovanovic /** 549*de76a5adSDamjan Jovanovic * Method returns locale for a given language and country. 550*de76a5adSDamjan Jovanovic * @param localeIndex index of needed locale. 551*de76a5adSDamjan Jovanovic */ 552*de76a5adSDamjan Jovanovic /* public Locale getLocale(int localeIndex) { 553*de76a5adSDamjan Jovanovic return new Locale(languages[localeIndex], countries[localeIndex], ""); 554*de76a5adSDamjan Jovanovic }*/ 555*de76a5adSDamjan Jovanovic 556*de76a5adSDamjan Jovanovic } 557