xref: /aoo41x/main/sal/qa/rtl/locale/rtl_locale.cxx (revision 87d2adbc)
1*87d2adbcSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*87d2adbcSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*87d2adbcSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*87d2adbcSAndrew Rist  * distributed with this work for additional information
6*87d2adbcSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*87d2adbcSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*87d2adbcSAndrew Rist  * "License"); you may not use this file except in compliance
9*87d2adbcSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*87d2adbcSAndrew Rist  *
11*87d2adbcSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*87d2adbcSAndrew Rist  *
13*87d2adbcSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*87d2adbcSAndrew Rist  * software distributed under the License is distributed on an
15*87d2adbcSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*87d2adbcSAndrew Rist  * KIND, either express or implied.  See the License for the
17*87d2adbcSAndrew Rist  * specific language governing permissions and limitations
18*87d2adbcSAndrew Rist  * under the License.
19*87d2adbcSAndrew Rist  *
20*87d2adbcSAndrew Rist  *************************************************************/
21*87d2adbcSAndrew Rist 
22*87d2adbcSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir 
25cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
26cdf0e10cSrcweir #include "precompiled_sal.hxx"
27cdf0e10cSrcweir // autogenerated file with codegen.pl
28cdf0e10cSrcweir 
29cdf0e10cSrcweir #include <testshl/simpleheader.hxx>
30cdf0e10cSrcweir #include <rtl/locale.hxx>
31cdf0e10cSrcweir #include <osl/thread.h>
32cdf0e10cSrcweir 
33cdf0e10cSrcweir namespace rtl_locale
34cdf0e10cSrcweir {
35cdf0e10cSrcweir     // default locale for test purpose
setDefaultLocale()36cdf0e10cSrcweir     void setDefaultLocale()
37cdf0e10cSrcweir     {
38cdf0e10cSrcweir         rtl::OLocale::setDefault(rtl::OUString::createFromAscii("de"), rtl::OUString::createFromAscii("DE"), /* rtl::OUString() */ rtl::OUString::createFromAscii("hochdeutsch") );
39cdf0e10cSrcweir     }
40cdf0e10cSrcweir 
41cdf0e10cSrcweir class getDefault : public CppUnit::TestFixture
42cdf0e10cSrcweir {
43cdf0e10cSrcweir public:
44cdf0e10cSrcweir     // initialise your test code values here.
setUp()45cdf0e10cSrcweir     void setUp()
46cdf0e10cSrcweir     {
47cdf0e10cSrcweir     }
48cdf0e10cSrcweir 
tearDown()49cdf0e10cSrcweir     void tearDown()
50cdf0e10cSrcweir     {
51cdf0e10cSrcweir     }
52cdf0e10cSrcweir 
53cdf0e10cSrcweir     // insert your test code here.
getDefault_000()54cdf0e10cSrcweir     void getDefault_000()
55cdf0e10cSrcweir     {
56cdf0e10cSrcweir         // this is demonstration code
57cdf0e10cSrcweir         // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
58cdf0e10cSrcweir 
59cdf0e10cSrcweir         // due to the fact, we set the default locale at first, this test is no longer possible
60cdf0e10cSrcweir    	// ::rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
61cdf0e10cSrcweir         // CPPUNIT_ASSERT_MESSAGE("locale must be null", aLocale.getData() == NULL);
62cdf0e10cSrcweir 
63cdf0e10cSrcweir     }
64cdf0e10cSrcweir 
getDefault_001()65cdf0e10cSrcweir     void getDefault_001()
66cdf0e10cSrcweir     {
67cdf0e10cSrcweir         // rtl::OLocale::setDefault(rtl::OUString::createFromAscii("de"), rtl::OUString::createFromAscii("DE"), rtl::OUString());
68cdf0e10cSrcweir    	rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
69cdf0e10cSrcweir         CPPUNIT_ASSERT_MESSAGE("locale must not null", aLocale.getData() != NULL);
70cdf0e10cSrcweir     }
71cdf0e10cSrcweir 
72cdf0e10cSrcweir     // Change the following lines only, if you add, remove or rename
73cdf0e10cSrcweir     // member functions of the current class,
74cdf0e10cSrcweir     // because these macros are need by auto register mechanism.
75cdf0e10cSrcweir 
76cdf0e10cSrcweir     CPPUNIT_TEST_SUITE(getDefault);
77cdf0e10cSrcweir     CPPUNIT_TEST(getDefault_000);
78cdf0e10cSrcweir     CPPUNIT_TEST(getDefault_001);
79cdf0e10cSrcweir     CPPUNIT_TEST_SUITE_END();
80cdf0e10cSrcweir }; // class getDefault
81cdf0e10cSrcweir 
82cdf0e10cSrcweir 
83cdf0e10cSrcweir class setDefault : public CppUnit::TestFixture
84cdf0e10cSrcweir {
85cdf0e10cSrcweir public:
86cdf0e10cSrcweir     // initialise your test code values here.
setUp()87cdf0e10cSrcweir     void setUp()
88cdf0e10cSrcweir     {
89cdf0e10cSrcweir     }
90cdf0e10cSrcweir 
tearDown()91cdf0e10cSrcweir     void tearDown()
92cdf0e10cSrcweir     {
93cdf0e10cSrcweir         setDefaultLocale();
94cdf0e10cSrcweir     }
95cdf0e10cSrcweir 
96cdf0e10cSrcweir     // insert your test code here.
setDefault_001()97cdf0e10cSrcweir     void setDefault_001()
98cdf0e10cSrcweir     {
99cdf0e10cSrcweir         rtl::OLocale::setDefault(rtl::OUString::createFromAscii("en"), rtl::OUString::createFromAscii("US"), rtl::OUString());
100cdf0e10cSrcweir    	rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
101cdf0e10cSrcweir         CPPUNIT_ASSERT_MESSAGE("locale must not null", aLocale.getData() != NULL);
102cdf0e10cSrcweir 
103cdf0e10cSrcweir         // be sure to not GPF
104cdf0e10cSrcweir     }
105cdf0e10cSrcweir 
106cdf0e10cSrcweir     // Change the following lines only, if you add, remove or rename
107cdf0e10cSrcweir     // member functions of the current class,
108cdf0e10cSrcweir     // because these macros are need by auto register mechanism.
109cdf0e10cSrcweir 
110cdf0e10cSrcweir     CPPUNIT_TEST_SUITE(setDefault);
111cdf0e10cSrcweir     CPPUNIT_TEST(setDefault_001);
112cdf0e10cSrcweir     CPPUNIT_TEST_SUITE_END();
113cdf0e10cSrcweir }; // class setDefault
114cdf0e10cSrcweir 
115cdf0e10cSrcweir 
116cdf0e10cSrcweir class getLanguage : public CppUnit::TestFixture
117cdf0e10cSrcweir {
118cdf0e10cSrcweir public:
119cdf0e10cSrcweir     // initialise your test code values here.
setUp()120cdf0e10cSrcweir     void setUp()
121cdf0e10cSrcweir     {
122cdf0e10cSrcweir     }
123cdf0e10cSrcweir 
tearDown()124cdf0e10cSrcweir     void tearDown()
125cdf0e10cSrcweir     {
126cdf0e10cSrcweir     }
127cdf0e10cSrcweir 
128cdf0e10cSrcweir     // insert your test code here.
getLanguage_001()129cdf0e10cSrcweir     void getLanguage_001()
130cdf0e10cSrcweir     {
131cdf0e10cSrcweir    	rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
132cdf0e10cSrcweir         rtl::OUString suLanguage = aLocale.getLanguage();
133cdf0e10cSrcweir         t_print("Language: %s\n", rtl::OUStringToOString(suLanguage, osl_getThreadTextEncoding()).getStr());
134cdf0e10cSrcweir         CPPUNIT_ASSERT_MESSAGE("locale language must be 'de'", suLanguage.equals(rtl::OUString::createFromAscii("de")));
135cdf0e10cSrcweir     }
getLanguage_002()136cdf0e10cSrcweir     void getLanguage_002()
137cdf0e10cSrcweir     {
138cdf0e10cSrcweir    	rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
139cdf0e10cSrcweir         rtl::OUString suLanguage = rtl_locale_getLanguage(aLocale.getData());
140cdf0e10cSrcweir         t_print("Language: %s\n", rtl::OUStringToOString(suLanguage, osl_getThreadTextEncoding()).getStr());
141cdf0e10cSrcweir         CPPUNIT_ASSERT_MESSAGE("locale language must be 'de'", suLanguage.equals(rtl::OUString::createFromAscii("de")));
142cdf0e10cSrcweir     }
143cdf0e10cSrcweir 
144cdf0e10cSrcweir     // Change the following lines only, if you add, remove or rename
145cdf0e10cSrcweir     // member functions of the current class,
146cdf0e10cSrcweir     // because these macros are need by auto register mechanism.
147cdf0e10cSrcweir 
148cdf0e10cSrcweir     CPPUNIT_TEST_SUITE(getLanguage);
149cdf0e10cSrcweir     CPPUNIT_TEST(getLanguage_001);
150cdf0e10cSrcweir     CPPUNIT_TEST(getLanguage_002);
151cdf0e10cSrcweir     CPPUNIT_TEST_SUITE_END();
152cdf0e10cSrcweir }; // class getLanguage
153cdf0e10cSrcweir 
154cdf0e10cSrcweir 
155cdf0e10cSrcweir class getCountry : public CppUnit::TestFixture
156cdf0e10cSrcweir {
157cdf0e10cSrcweir public:
158cdf0e10cSrcweir     // initialise your test code values here.
setUp()159cdf0e10cSrcweir     void setUp()
160cdf0e10cSrcweir     {
161cdf0e10cSrcweir     }
162cdf0e10cSrcweir 
tearDown()163cdf0e10cSrcweir     void tearDown()
164cdf0e10cSrcweir     {
165cdf0e10cSrcweir     }
166cdf0e10cSrcweir 
167cdf0e10cSrcweir     // insert your test code here.
getCountry_001()168cdf0e10cSrcweir     void getCountry_001()
169cdf0e10cSrcweir     {
170cdf0e10cSrcweir    	rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
171cdf0e10cSrcweir         rtl::OUString suCountry = aLocale.getCountry();
172cdf0e10cSrcweir         t_print("Country: %s\n", rtl::OUStringToOString(suCountry, osl_getThreadTextEncoding()).getStr());
173cdf0e10cSrcweir         CPPUNIT_ASSERT_MESSAGE("locale country must be 'DE'", suCountry.equals(rtl::OUString::createFromAscii("DE")));
174cdf0e10cSrcweir     }
getCountry_002()175cdf0e10cSrcweir     void getCountry_002()
176cdf0e10cSrcweir     {
177cdf0e10cSrcweir    	rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
178cdf0e10cSrcweir         rtl::OUString suCountry = rtl_locale_getCountry(aLocale.getData());
179cdf0e10cSrcweir         t_print("Country: %s\n", rtl::OUStringToOString(suCountry, osl_getThreadTextEncoding()).getStr());
180cdf0e10cSrcweir         CPPUNIT_ASSERT_MESSAGE("locale country must be 'DE'", suCountry.equals(rtl::OUString::createFromAscii("DE")));
181cdf0e10cSrcweir     }
182cdf0e10cSrcweir 
183cdf0e10cSrcweir     // Change the following lines only, if you add, remove or rename
184cdf0e10cSrcweir     // member functions of the current class,
185cdf0e10cSrcweir     // because these macros are need by auto register mechanism.
186cdf0e10cSrcweir 
187cdf0e10cSrcweir     CPPUNIT_TEST_SUITE(getCountry);
188cdf0e10cSrcweir     CPPUNIT_TEST(getCountry_001);
189cdf0e10cSrcweir     CPPUNIT_TEST(getCountry_002);
190cdf0e10cSrcweir     CPPUNIT_TEST_SUITE_END();
191cdf0e10cSrcweir }; // class getCountry
192cdf0e10cSrcweir 
193cdf0e10cSrcweir 
194cdf0e10cSrcweir class getVariant : public CppUnit::TestFixture
195cdf0e10cSrcweir {
196cdf0e10cSrcweir public:
197cdf0e10cSrcweir     // initialise your test code values here.
setUp()198cdf0e10cSrcweir     void setUp()
199cdf0e10cSrcweir     {
200cdf0e10cSrcweir     }
201cdf0e10cSrcweir 
tearDown()202cdf0e10cSrcweir     void tearDown()
203cdf0e10cSrcweir     {
204cdf0e10cSrcweir     }
205cdf0e10cSrcweir 
206cdf0e10cSrcweir     // insert your test code here.
getVariant_001()207cdf0e10cSrcweir     void getVariant_001()
208cdf0e10cSrcweir     {
209cdf0e10cSrcweir    	rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
210cdf0e10cSrcweir         rtl::OUString suVariant = aLocale.getVariant();
211cdf0e10cSrcweir         t_print("Variant: %s\n", rtl::OUStringToOString(suVariant, osl_getThreadTextEncoding()).getStr());
212cdf0e10cSrcweir         CPPUNIT_ASSERT_MESSAGE("locale variant must be 'hochdeutsch'", suVariant.equals(rtl::OUString::createFromAscii("hochdeutsch")));
213cdf0e10cSrcweir     }
getVariant_002()214cdf0e10cSrcweir     void getVariant_002()
215cdf0e10cSrcweir     {
216cdf0e10cSrcweir    	rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
217cdf0e10cSrcweir         rtl::OUString suVariant = rtl_locale_getVariant(aLocale.getData());
218cdf0e10cSrcweir         t_print("Variant: %s\n", rtl::OUStringToOString(suVariant, osl_getThreadTextEncoding()).getStr());
219cdf0e10cSrcweir         CPPUNIT_ASSERT_MESSAGE("locale variant must be 'hochdeutsch'", suVariant.equals(rtl::OUString::createFromAscii("hochdeutsch")));
220cdf0e10cSrcweir     }
221cdf0e10cSrcweir 
222cdf0e10cSrcweir     // Change the following lines only, if you add, remove or rename
223cdf0e10cSrcweir     // member functions of the current class,
224cdf0e10cSrcweir     // because these macros are need by auto register mechanism.
225cdf0e10cSrcweir 
226cdf0e10cSrcweir     CPPUNIT_TEST_SUITE(getVariant);
227cdf0e10cSrcweir     CPPUNIT_TEST(getVariant_001);
228cdf0e10cSrcweir     CPPUNIT_TEST(getVariant_002);
229cdf0e10cSrcweir     CPPUNIT_TEST_SUITE_END();
230cdf0e10cSrcweir }; // class getVariant
231cdf0e10cSrcweir 
232cdf0e10cSrcweir 
233cdf0e10cSrcweir class hashCode : public CppUnit::TestFixture
234cdf0e10cSrcweir {
235cdf0e10cSrcweir public:
236cdf0e10cSrcweir     // initialise your test code values here.
setUp()237cdf0e10cSrcweir     void setUp()
238cdf0e10cSrcweir     {
239cdf0e10cSrcweir     }
240cdf0e10cSrcweir 
tearDown()241cdf0e10cSrcweir     void tearDown()
242cdf0e10cSrcweir     {
243cdf0e10cSrcweir     }
244cdf0e10cSrcweir 
245cdf0e10cSrcweir     // insert your test code here.
hashCode_001()246cdf0e10cSrcweir     void hashCode_001()
247cdf0e10cSrcweir     {
248cdf0e10cSrcweir    	rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
249cdf0e10cSrcweir         sal_Int32 nHashCode = aLocale.hashCode();
250cdf0e10cSrcweir         t_print("Hashcode: %d\n", nHashCode);
251cdf0e10cSrcweir         CPPUNIT_ASSERT_MESSAGE("locale hashcode must be 3831", nHashCode != 0);
252cdf0e10cSrcweir     }
hashCode_002()253cdf0e10cSrcweir     void hashCode_002()
254cdf0e10cSrcweir     {
255cdf0e10cSrcweir    	rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
256cdf0e10cSrcweir         sal_Int32 nHashCode = rtl_locale_hashCode(aLocale.getData());
257cdf0e10cSrcweir         t_print("Hashcode: %d\n", nHashCode);
258cdf0e10cSrcweir         CPPUNIT_ASSERT_MESSAGE("locale hashcode must be 3831", nHashCode != 0);
259cdf0e10cSrcweir     }
260cdf0e10cSrcweir 
261cdf0e10cSrcweir     // Change the following lines only, if you add, remove or rename
262cdf0e10cSrcweir     // member functions of the current class,
263cdf0e10cSrcweir     // because these macros are need by auto register mechanism.
264cdf0e10cSrcweir 
265cdf0e10cSrcweir     CPPUNIT_TEST_SUITE(hashCode);
266cdf0e10cSrcweir     CPPUNIT_TEST(hashCode_001);
267cdf0e10cSrcweir     CPPUNIT_TEST(hashCode_002);
268cdf0e10cSrcweir     CPPUNIT_TEST_SUITE_END();
269cdf0e10cSrcweir }; // class hashCode
270cdf0e10cSrcweir 
271cdf0e10cSrcweir 
272cdf0e10cSrcweir class equals : public CppUnit::TestFixture
273cdf0e10cSrcweir {
274cdf0e10cSrcweir public:
275cdf0e10cSrcweir     // initialise your test code values here.
setUp()276cdf0e10cSrcweir     void setUp()
277cdf0e10cSrcweir     {
278cdf0e10cSrcweir     }
279cdf0e10cSrcweir 
tearDown()280cdf0e10cSrcweir     void tearDown()
281cdf0e10cSrcweir     {
282cdf0e10cSrcweir     }
283cdf0e10cSrcweir 
284cdf0e10cSrcweir     // insert your test code here.
equals_001()285cdf0e10cSrcweir     void equals_001()
286cdf0e10cSrcweir     {
287cdf0e10cSrcweir         rtl::OLocale aLocale1 = rtl::OLocale::registerLocale(rtl::OUString::createFromAscii("en"), rtl::OUString::createFromAscii("US"), rtl::OUString());
288cdf0e10cSrcweir         rtl::OLocale aLocale2 = rtl::OLocale::registerLocale(rtl::OUString::createFromAscii("en"), rtl::OUString::createFromAscii("US"));
289cdf0e10cSrcweir 
290cdf0e10cSrcweir         sal_Bool bLocaleAreEqual = sal_False;
291cdf0e10cSrcweir         bLocaleAreEqual = (aLocale1 == aLocale2);
292cdf0e10cSrcweir 
293cdf0e10cSrcweir         CPPUNIT_ASSERT_MESSAGE("check operator ==()", bLocaleAreEqual == sal_True);
294cdf0e10cSrcweir     }
295cdf0e10cSrcweir 
equals_002()296cdf0e10cSrcweir     void equals_002()
297cdf0e10cSrcweir     {
298cdf0e10cSrcweir         rtl::OLocale aLocale1 = rtl::OLocale::registerLocale(rtl::OUString::createFromAscii("en"), rtl::OUString::createFromAscii("US"), rtl::OUString());
299cdf0e10cSrcweir         rtl::OLocale aLocale2 = rtl::OLocale::registerLocale(rtl::OUString::createFromAscii("en"), rtl::OUString::createFromAscii("US"));
300cdf0e10cSrcweir 
301cdf0e10cSrcweir         sal_Int32 nEqual = rtl_locale_equals(aLocale1.getData(), aLocale2.getData());
302cdf0e10cSrcweir         t_print("rtl_locale_equals() result: %d\n", nEqual);
303cdf0e10cSrcweir         CPPUNIT_ASSERT(nEqual != 0);
304cdf0e10cSrcweir     }
305cdf0e10cSrcweir 
306cdf0e10cSrcweir     // Change the following lines only, if you add, remove or rename
307cdf0e10cSrcweir     // member functions of the current class,
308cdf0e10cSrcweir     // because these macros are need by auto register mechanism.
309cdf0e10cSrcweir 
310cdf0e10cSrcweir     CPPUNIT_TEST_SUITE(equals);
311cdf0e10cSrcweir     CPPUNIT_TEST(equals_001);
312cdf0e10cSrcweir     CPPUNIT_TEST(equals_002);
313cdf0e10cSrcweir     CPPUNIT_TEST_SUITE_END();
314cdf0e10cSrcweir }; // class equals
315cdf0e10cSrcweir 
316cdf0e10cSrcweir // -----------------------------------------------------------------------------
317cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_locale::getDefault, "rtl_locale");
318cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_locale::setDefault, "rtl_locale");
319cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_locale::getLanguage, "rtl_locale");
320cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_locale::getCountry, "rtl_locale");
321cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_locale::getVariant, "rtl_locale");
322cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_locale::hashCode, "rtl_locale");
323cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_locale::equals, "rtl_locale");
324cdf0e10cSrcweir } // namespace rtl_locale
325cdf0e10cSrcweir 
326cdf0e10cSrcweir 
327cdf0e10cSrcweir // -----------------------------------------------------------------------------
328cdf0e10cSrcweir 
329cdf0e10cSrcweir // this macro creates an empty function, which will called by the RegisterAllFunctions()
330cdf0e10cSrcweir // to let the user the possibility to also register some functions by hand.
331cdf0e10cSrcweir // NOADDITIONAL;
332cdf0e10cSrcweir 
RegisterAdditionalFunctions(FktRegFuncPtr)333cdf0e10cSrcweir void RegisterAdditionalFunctions(FktRegFuncPtr)
334cdf0e10cSrcweir {
335cdf0e10cSrcweir     // start message
336cdf0e10cSrcweir     t_print("Initializing ...\n" );
337cdf0e10cSrcweir     rtl_locale::setDefaultLocale();
338cdf0e10cSrcweir     t_print("Initialization Done.\n" );
339cdf0e10cSrcweir }
340