1b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/******************************************************************** 2b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * COPYRIGHT: 350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Copyright (c) 1997-2010, International Business Machines Corporation and 4b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * others. All Rights Reserved. 5b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ********************************************************************/ 6b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 7b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "intltest.h" 8b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/locid.h" 9b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 10b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 11b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Tests for the Locale class 12b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 13b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruclass LocaleTest: public IntlTest { 14b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querupublic: 15b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru LocaleTest(); 16b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual ~LocaleTest(); 17b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 18b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); 19b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 20b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 21b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test methods to set and get data fields 22b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 23b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestBasicGetters(void); 24b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 25b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test methods to set and get data fields 26b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 27b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestParallelAPIValues(void); 28b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 29b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Use Locale to access Resource file data and compare against expected values 30b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 31b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestSimpleResourceInfo(void); 32b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 33b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Use Locale to access Resource file display names and compare against expected values 34b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 35b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestDisplayNames(void); 36b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 37b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test methods for basic object behaviour 38b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 39b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestSimpleObjectStuff(void); 40b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 41b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test methods for POSIX parsing behavior 42b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 43b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestPOSIXParsing(void); 44b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 45b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test Locale::getAvailableLocales 46b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 47b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestGetAvailableLocales(void); 48b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 49b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test methods to set and access a custom data directory 50b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 51b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestDataDirectory(void); 52b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 53b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestISO3Fallback(void); 54b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestGetLangsAndCountries(void); 55b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestSimpleDisplayNames(void); 56b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestUninstalledISO3Names(void); 57b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestAtypicalLocales(void); 58b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#if !UCONFIG_NO_FORMATTING 59b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestThaiCurrencyFormat(void); 60b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestEuroSupport(void); 61b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif 62b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestToString(void); 63b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#if !UCONFIG_NO_FORMATTING 64b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4139940(void); 65b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4143951(void); 66b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif 67b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4147315(void); 68b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4147317(void); 69b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4147552(void); 70b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 71b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestVariantParsing(void); 72b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 73b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* Test getting keyword enumeratin */ 74b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestKeywordVariants(void); 75b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 76b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* Test getting keyword values */ 77b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestKeywordVariantParsing(void); 78b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 7950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho /* Test setting keyword values */ 8050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho void TestSetKeywordValue(void); 8150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 82b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* Test getting the locale base name */ 83b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestGetBaseName(void); 848393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius void TestTrailingNull(void); /* Google Patch */ 858393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius 86b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#if !UCONFIG_NO_FORMATTING 87b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4105828(void) ; 88b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif 89b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 90b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestSetIsBogus(void); 91b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 92b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestGetLocale(void); 93b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 94b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestVariantWithOutCountry(void); 95b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 96b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestCanonicalization(void); 97b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 98b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#if !UCONFIG_NO_FORMATTING 99b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru static UDate date(int32_t y, int32_t m, int32_t d, int32_t hr = 0, int32_t min = 0, int32_t sec = 0); 100b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif 101b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 102c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru void TestCurrencyByDate(void); 103c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru 10450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho void TestGetVariantWithKeywords(void); 10550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 106b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruprivate: 107b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void _checklocs(const char* label, 108b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* req, 109b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const Locale& validLoc, 110b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const Locale& actualLoc, 111b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* expReqValid="gt", 112b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* expValidActual="ge"); 113b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 114b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 115b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * routine to perform subtests, used by TestDisplayNames 116b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 117b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void doTestDisplayNames(Locale& inLocale, int32_t compareIndex); 118b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 119b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * additional intialization for datatables storing expected values 120b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 121b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void setUpDataTable(void); 122b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 123b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString** dataTable; 124b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 125b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru enum { 126b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ENGLISH = 0, 127b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru FRENCH = 1, 128b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru CROATIAN = 2, 129b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru GREEK = 3, 130b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru NORWEGIAN = 4, 131b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ITALIAN = 5, 132b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru XX = 6, 133b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru CHINESE = 7, 134b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru MAX_LOCALES = 7 135b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 136b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 137b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru enum { 138b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru LANG = 0, 139b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SCRIPT, 140b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru CTRY, 141b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru VAR, 142b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru NAME, 143b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru LANG3, 144b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru CTRY3, 145b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru LCID, 146b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DLANG_EN, 147b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DSCRIPT_EN, 148b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DCTRY_EN, 149b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DVAR_EN, 150b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DNAME_EN, 151b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DLANG_FR, 152b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DSCRIPT_FR, 153b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DCTRY_FR, 154b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DVAR_FR, 155b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DNAME_FR, 156b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DLANG_CA, 157b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DSCRIPT_CA, 158b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DCTRY_CA, 159b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DVAR_CA, 160b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DNAME_CA, 161b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DLANG_EL, 162b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DSCRIPT_EL, 163b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DCTRY_EL, 164b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DVAR_EL, 165b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DNAME_EL, 166b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DLANG_NO, 167b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DSCRIPT_NO, 168b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DCTRY_NO, 169b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DVAR_NO, 170b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DNAME_NO 171b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 172b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru}; 173b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 174b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 175b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1768393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius 177