1 2 /******************************************************************** 3 * Copyright (c) 1997-2010, International Business Machines 4 * Corporation and others. All Rights Reserved. 5 ********************************************************************/ 6 7 #ifndef __TimeZoneTest__ 8 #define __TimeZoneTest__ 9 10 #include "unicode/utypes.h" 11 12 #if !UCONFIG_NO_FORMATTING 13 14 #include "unicode/simpletz.h" 15 #include "caltztst.h" 16 17 /** 18 * Various tests for TimeZone 19 **/ 20 class TimeZoneTest: public CalendarTimeZoneTest { 21 // IntlTest override 22 void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par ); 23 public: // package 24 static const int32_t millisPerHour; 25 26 public: 27 /** 28 * Test the offset of the PRT timezone. 29 */ 30 virtual void TestPRTOffset(void); 31 /** 32 * Regress a specific bug with a sequence of API calls. 33 */ 34 virtual void TestVariousAPI518(void); 35 /** 36 * Test the call which retrieves the available IDs. 37 */ 38 virtual void TestGetAvailableIDs913(void); 39 40 /** 41 * Generic API testing for API coverage. 42 */ 43 virtual void TestGenericAPI(void); 44 /** 45 * Test the setStartRule/setEndRule API calls. 46 */ 47 virtual void TestRuleAPI(void); 48 49 void findTransition(const TimeZone& tz, 50 UDate min, UDate max); 51 52 /** 53 * subtest used by TestRuleAPI 54 **/ 55 void testUsingBinarySearch(const TimeZone& tz, 56 UDate min, UDate max, 57 UDate expectedBoundary); 58 59 60 /** 61 * Test short zone IDs for compliance 62 */ 63 virtual void TestShortZoneIDs(void); 64 65 66 /** 67 * Test parsing custom zones 68 */ 69 virtual void TestCustomParse(void); 70 71 /** 72 * Test new getDisplayName() API 73 */ 74 virtual void TestDisplayName(void); 75 76 void TestDSTSavings(void); 77 void TestAlternateRules(void); 78 79 void TestCountries(void); 80 81 void TestHistorical(void); 82 83 void TestEquivalentIDs(void); 84 85 void TestAliasedNames(void); 86 87 void TestFractionalDST(void); 88 89 void TestFebruary(void); 90 91 void TestCanonicalID(void); 92 93 virtual void TestDisplayNamesMeta(); 94 95 static const UDate INTERVAL; 96 97 private: 98 // internal functions 99 static UnicodeString& formatOffset(int32_t offset, UnicodeString& rv); 100 static UnicodeString& formatTZID(int32_t offset, UnicodeString& rv); 101 102 // Some test case data is current date/tzdata version sensitive and producing errors 103 // when year/rule are changed. 104 static const int32_t REFERENCE_YEAR; 105 static const char *REFERENCE_DATA_VERSION; 106 }; 107 108 #endif /* #if !UCONFIG_NO_FORMATTING */ 109 110 #endif // __TimeZoneTest__ 111