18086eac30b939adde43080f9026bbd54cb156fadMichael Wright 28086eac30b939adde43080f9026bbd54cb156fadMichael Wright/******************************************************************** 38086eac30b939adde43080f9026bbd54cb156fadMichael Wright * Copyright (c) 1997-2011, International Business Machines 48086eac30b939adde43080f9026bbd54cb156fadMichael Wright * Corporation and others. All Rights Reserved. 58086eac30b939adde43080f9026bbd54cb156fadMichael Wright ********************************************************************/ 68086eac30b939adde43080f9026bbd54cb156fadMichael Wright 78086eac30b939adde43080f9026bbd54cb156fadMichael Wright#ifndef __TimeZoneTest__ 88086eac30b939adde43080f9026bbd54cb156fadMichael Wright#define __TimeZoneTest__ 98086eac30b939adde43080f9026bbd54cb156fadMichael Wright 108086eac30b939adde43080f9026bbd54cb156fadMichael Wright#include "unicode/utypes.h" 118086eac30b939adde43080f9026bbd54cb156fadMichael Wright 128086eac30b939adde43080f9026bbd54cb156fadMichael Wright#if !UCONFIG_NO_FORMATTING 138086eac30b939adde43080f9026bbd54cb156fadMichael Wright 148086eac30b939adde43080f9026bbd54cb156fadMichael Wright#include "unicode/simpletz.h" 158086eac30b939adde43080f9026bbd54cb156fadMichael Wright#include "caltztst.h" 168086eac30b939adde43080f9026bbd54cb156fadMichael Wright 178086eac30b939adde43080f9026bbd54cb156fadMichael Wright/** 188086eac30b939adde43080f9026bbd54cb156fadMichael Wright * Various tests for TimeZone 198086eac30b939adde43080f9026bbd54cb156fadMichael Wright **/ 208086eac30b939adde43080f9026bbd54cb156fadMichael Wrightclass TimeZoneTest: public CalendarTimeZoneTest { 218086eac30b939adde43080f9026bbd54cb156fadMichael Wright // IntlTest override 228086eac30b939adde43080f9026bbd54cb156fadMichael Wright void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par ); 238086eac30b939adde43080f9026bbd54cb156fadMichael Wrightpublic: // package 248086eac30b939adde43080f9026bbd54cb156fadMichael Wright static const int32_t millisPerHour; 258086eac30b939adde43080f9026bbd54cb156fadMichael Wright 268086eac30b939adde43080f9026bbd54cb156fadMichael Wrightpublic: 278086eac30b939adde43080f9026bbd54cb156fadMichael Wright /** 288086eac30b939adde43080f9026bbd54cb156fadMichael Wright * Test the offset of the PRT timezone. 298086eac30b939adde43080f9026bbd54cb156fadMichael Wright */ 308086eac30b939adde43080f9026bbd54cb156fadMichael Wright virtual void TestPRTOffset(void); 318086eac30b939adde43080f9026bbd54cb156fadMichael Wright /** 328086eac30b939adde43080f9026bbd54cb156fadMichael Wright * Regress a specific bug with a sequence of API calls. 338086eac30b939adde43080f9026bbd54cb156fadMichael Wright */ 348086eac30b939adde43080f9026bbd54cb156fadMichael Wright virtual void TestVariousAPI518(void); 358086eac30b939adde43080f9026bbd54cb156fadMichael Wright /** 368086eac30b939adde43080f9026bbd54cb156fadMichael Wright * Test the call which retrieves the available IDs. 378086eac30b939adde43080f9026bbd54cb156fadMichael Wright */ 388086eac30b939adde43080f9026bbd54cb156fadMichael Wright virtual void TestGetAvailableIDs913(void); 398086eac30b939adde43080f9026bbd54cb156fadMichael Wright 408086eac30b939adde43080f9026bbd54cb156fadMichael Wright virtual void TestGetAvailableIDsNew(void); 418086eac30b939adde43080f9026bbd54cb156fadMichael Wright 428086eac30b939adde43080f9026bbd54cb156fadMichael Wright /** 43 * Generic API testing for API coverage. 44 */ 45 virtual void TestGenericAPI(void); 46 /** 47 * Test the setStartRule/setEndRule API calls. 48 */ 49 virtual void TestRuleAPI(void); 50 51 void findTransition(const TimeZone& tz, 52 UDate min, UDate max); 53 54 /** 55 * subtest used by TestRuleAPI 56 **/ 57 void testUsingBinarySearch(const TimeZone& tz, 58 UDate min, UDate max, 59 UDate expectedBoundary); 60 61 62 /** 63 * Test short zone IDs for compliance 64 */ 65 virtual void TestShortZoneIDs(void); 66 67 68 /** 69 * Test parsing custom zones 70 */ 71 virtual void TestCustomParse(void); 72 73 /** 74 * Test new getDisplayName() API 75 */ 76 virtual void TestDisplayName(void); 77 78 void TestDSTSavings(void); 79 void TestAlternateRules(void); 80 81 void TestCountries(void); 82 83 void TestHistorical(void); 84 85 void TestEquivalentIDs(void); 86 87 void TestAliasedNames(void); 88 89 void TestFractionalDST(void); 90 91 void TestFebruary(void); 92 93 void TestCanonicalID(void); 94 95 virtual void TestDisplayNamesMeta(); 96 97 void TestGetRegion(void); 98 99 static const UDate INTERVAL; 100 101private: 102 // internal functions 103 static UnicodeString& formatOffset(int32_t offset, UnicodeString& rv); 104 static UnicodeString& formatTZID(int32_t offset, UnicodeString& rv); 105 106 // Some test case data is current date/tzdata version sensitive and producing errors 107 // when year/rule are changed. 108 static const int32_t REFERENCE_YEAR; 109 static const char *REFERENCE_DATA_VERSION; 110 111 void checkContainsAll(StringEnumeration *s1, const char *name1, 112 StringEnumeration *s2, const char *name2); 113}; 114 115#endif /* #if !UCONFIG_NO_FORMATTING */ 116 117#endif // __TimeZoneTest__ 118