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