xref: /AOO42X/main/sal/qa/rtl/locale/rtl_locale.cxx (revision b1c5455db1639c48e26c568e4fa7ee78ca5d60ee)
187d2adbcSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
387d2adbcSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
487d2adbcSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
587d2adbcSAndrew Rist  * distributed with this work for additional information
687d2adbcSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
787d2adbcSAndrew Rist  * to you under the Apache License, Version 2.0 (the
887d2adbcSAndrew Rist  * "License"); you may not use this file except in compliance
987d2adbcSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
1187d2adbcSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
1387d2adbcSAndrew Rist  * Unless required by applicable law or agreed to in writing,
1487d2adbcSAndrew Rist  * software distributed under the License is distributed on an
1587d2adbcSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
1687d2adbcSAndrew Rist  * KIND, either express or implied.  See the License for the
1787d2adbcSAndrew Rist  * specific language governing permissions and limitations
1887d2adbcSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
2087d2adbcSAndrew Rist  *************************************************************/
2187d2adbcSAndrew Rist 
2287d2adbcSAndrew 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 
29*c346f426SDamjan Jovanovic #include "gtest/gtest.h"
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 
41*c346f426SDamjan Jovanovic class getDefault : public ::testing::Test
42cdf0e10cSrcweir {
43cdf0e10cSrcweir public:
44cdf0e10cSrcweir     // initialise your test code values here.
SetUp()45*c346f426SDamjan Jovanovic     void SetUp()
46cdf0e10cSrcweir     {
47cdf0e10cSrcweir     }
48cdf0e10cSrcweir 
TearDown()49*c346f426SDamjan Jovanovic     void TearDown()
50cdf0e10cSrcweir     {
51cdf0e10cSrcweir     }
52*c346f426SDamjan Jovanovic }; // class getDefault
53cdf0e10cSrcweir 
TEST_F(getDefault,getDefault_000)54*c346f426SDamjan Jovanovic TEST_F(getDefault, getDefault_000)
55cdf0e10cSrcweir {
56cdf0e10cSrcweir     // this is demonstration code
57*c346f426SDamjan Jovanovic     // ASSERT_TRUE(1 == 1) << "a message";
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();
61*c346f426SDamjan Jovanovic     // ASSERT_TRUE(aLocale.getData() == NULL) << "locale must be null";
62cdf0e10cSrcweir }
63cdf0e10cSrcweir 
TEST_F(getDefault,getDefault_001)64*c346f426SDamjan Jovanovic TEST_F(getDefault, getDefault_001)
65cdf0e10cSrcweir {
66cdf0e10cSrcweir     // rtl::OLocale::setDefault(rtl::OUString::createFromAscii("de"), rtl::OUString::createFromAscii("DE"), rtl::OUString());
67cdf0e10cSrcweir     rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
68*c346f426SDamjan Jovanovic     ASSERT_TRUE(aLocale.getData() != NULL) << "locale must not be null";
69cdf0e10cSrcweir }
70cdf0e10cSrcweir 
71*c346f426SDamjan Jovanovic class setDefault : public ::testing::Test
72cdf0e10cSrcweir {
73cdf0e10cSrcweir public:
74cdf0e10cSrcweir     // initialise your test code values here.
SetUp()75*c346f426SDamjan Jovanovic     void SetUp()
76cdf0e10cSrcweir     {
77cdf0e10cSrcweir     }
78cdf0e10cSrcweir 
TearDown()79*c346f426SDamjan Jovanovic     void TearDown()
80cdf0e10cSrcweir     {
81cdf0e10cSrcweir         setDefaultLocale();
82cdf0e10cSrcweir     }
83*c346f426SDamjan Jovanovic }; // class setDefault
84cdf0e10cSrcweir 
TEST_F(setDefault,setDefault_001)85*c346f426SDamjan Jovanovic TEST_F(setDefault, setDefault_001)
86cdf0e10cSrcweir {
87cdf0e10cSrcweir     rtl::OLocale::setDefault(rtl::OUString::createFromAscii("en"), rtl::OUString::createFromAscii("US"), rtl::OUString());
88cdf0e10cSrcweir     rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
89*c346f426SDamjan Jovanovic     ASSERT_TRUE(aLocale.getData() != NULL) << "locale must not null";
90cdf0e10cSrcweir 
91cdf0e10cSrcweir     // be sure to not GPF
92cdf0e10cSrcweir }
93cdf0e10cSrcweir 
94cdf0e10cSrcweir 
95*c346f426SDamjan Jovanovic class getLanguage : public ::testing::Test
96cdf0e10cSrcweir {
97cdf0e10cSrcweir public:
SetUp()98*c346f426SDamjan Jovanovic     void SetUp()
99cdf0e10cSrcweir     {
100cdf0e10cSrcweir     }
101cdf0e10cSrcweir 
TearDown()102*c346f426SDamjan Jovanovic     void TearDown()
103cdf0e10cSrcweir     {
104cdf0e10cSrcweir     }
105*c346f426SDamjan Jovanovic }; // class getLanguage
106cdf0e10cSrcweir 
TEST_F(getLanguage,getLanguage_001)107*c346f426SDamjan Jovanovic TEST_F(getLanguage, getLanguage_001)
108cdf0e10cSrcweir {
109cdf0e10cSrcweir     rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
110cdf0e10cSrcweir     rtl::OUString suLanguage = aLocale.getLanguage();
111*c346f426SDamjan Jovanovic     printf("Language: %s\n", rtl::OUStringToOString(suLanguage, osl_getThreadTextEncoding()).getStr());
112*c346f426SDamjan Jovanovic     ASSERT_TRUE(suLanguage.equals(rtl::OUString::createFromAscii("de"))) << "locale language must be 'de'";
113cdf0e10cSrcweir }
114*c346f426SDamjan Jovanovic 
TEST_F(getLanguage,getLanguage_002)115*c346f426SDamjan Jovanovic TEST_F(getLanguage, getLanguage_002)
116cdf0e10cSrcweir {
117cdf0e10cSrcweir     rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
118cdf0e10cSrcweir     rtl::OUString suLanguage = rtl_locale_getLanguage(aLocale.getData());
119*c346f426SDamjan Jovanovic     printf("Language: %s\n", rtl::OUStringToOString(suLanguage, osl_getThreadTextEncoding()).getStr());
120*c346f426SDamjan Jovanovic     ASSERT_TRUE(suLanguage.equals(rtl::OUString::createFromAscii("de"))) << "locale language must be 'de'";
121cdf0e10cSrcweir }
122cdf0e10cSrcweir 
123cdf0e10cSrcweir 
124*c346f426SDamjan Jovanovic class getCountry : public ::testing::Test
125cdf0e10cSrcweir {
126cdf0e10cSrcweir public:
127cdf0e10cSrcweir     // initialise your test code values here.
SetUp()128*c346f426SDamjan Jovanovic     void SetUp()
129cdf0e10cSrcweir     {
130cdf0e10cSrcweir     }
131cdf0e10cSrcweir 
TearDown()132*c346f426SDamjan Jovanovic     void TearDown()
133cdf0e10cSrcweir     {
134cdf0e10cSrcweir     }
135*c346f426SDamjan Jovanovic }; // class getCountry
136cdf0e10cSrcweir 
TEST_F(getCountry,getCountry_001)137*c346f426SDamjan Jovanovic TEST_F(getCountry, getCountry_001)
138cdf0e10cSrcweir {
139cdf0e10cSrcweir     rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
140cdf0e10cSrcweir     rtl::OUString suCountry = aLocale.getCountry();
141*c346f426SDamjan Jovanovic     printf("Country: %s\n", rtl::OUStringToOString(suCountry, osl_getThreadTextEncoding()).getStr());
142*c346f426SDamjan Jovanovic     ASSERT_TRUE(suCountry.equals(rtl::OUString::createFromAscii("DE"))) << "locale country must be 'DE'";
143cdf0e10cSrcweir }
144*c346f426SDamjan Jovanovic 
TEST_F(getCountry,getCountry_002)145*c346f426SDamjan Jovanovic TEST_F(getCountry, getCountry_002)
146cdf0e10cSrcweir {
147cdf0e10cSrcweir     rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
148cdf0e10cSrcweir     rtl::OUString suCountry = rtl_locale_getCountry(aLocale.getData());
149*c346f426SDamjan Jovanovic     printf("Country: %s\n", rtl::OUStringToOString(suCountry, osl_getThreadTextEncoding()).getStr());
150*c346f426SDamjan Jovanovic     ASSERT_TRUE(suCountry.equals(rtl::OUString::createFromAscii("DE"))) << "locale country must be 'DE'";
151cdf0e10cSrcweir }
152cdf0e10cSrcweir 
153*c346f426SDamjan Jovanovic class getVariant : public ::testing::Test
154cdf0e10cSrcweir {
155cdf0e10cSrcweir public:
156cdf0e10cSrcweir     // initialise your test code values here.
SetUp()157*c346f426SDamjan Jovanovic     void SetUp()
158cdf0e10cSrcweir     {
159cdf0e10cSrcweir     }
160cdf0e10cSrcweir 
TearDown()161*c346f426SDamjan Jovanovic     void TearDown()
162cdf0e10cSrcweir     {
163cdf0e10cSrcweir     }
164*c346f426SDamjan Jovanovic }; // class getVariant
165cdf0e10cSrcweir 
TEST_F(getVariant,getVariant_001)166*c346f426SDamjan Jovanovic TEST_F(getVariant, getVariant_001)
167cdf0e10cSrcweir {
168cdf0e10cSrcweir     rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
169cdf0e10cSrcweir     rtl::OUString suVariant = aLocale.getVariant();
170*c346f426SDamjan Jovanovic     printf("Variant: %s\n", rtl::OUStringToOString(suVariant, osl_getThreadTextEncoding()).getStr());
171*c346f426SDamjan Jovanovic     ASSERT_TRUE(suVariant.equals(rtl::OUString::createFromAscii("hochdeutsch"))) << "locale variant must be 'hochdeutsch'";
172cdf0e10cSrcweir }
173*c346f426SDamjan Jovanovic 
TEST_F(getVariant,getVariant_002)174*c346f426SDamjan Jovanovic TEST_F(getVariant, getVariant_002)
175cdf0e10cSrcweir {
176cdf0e10cSrcweir     rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
177cdf0e10cSrcweir     rtl::OUString suVariant = rtl_locale_getVariant(aLocale.getData());
178*c346f426SDamjan Jovanovic     printf("Variant: %s\n", rtl::OUStringToOString(suVariant, osl_getThreadTextEncoding()).getStr());
179*c346f426SDamjan Jovanovic     ASSERT_TRUE(suVariant.equals(rtl::OUString::createFromAscii("hochdeutsch"))) << "locale variant must be 'hochdeutsch'";
180cdf0e10cSrcweir }
181cdf0e10cSrcweir 
182*c346f426SDamjan Jovanovic class hashCode : public ::testing::Test
183cdf0e10cSrcweir {
184cdf0e10cSrcweir public:
185cdf0e10cSrcweir     // initialise your test code values here.
SetUp()186*c346f426SDamjan Jovanovic     void SetUp()
187cdf0e10cSrcweir     {
188cdf0e10cSrcweir     }
189cdf0e10cSrcweir 
TearDown()190*c346f426SDamjan Jovanovic     void TearDown()
191cdf0e10cSrcweir     {
192cdf0e10cSrcweir     }
193*c346f426SDamjan Jovanovic }; // class hashCode
194cdf0e10cSrcweir 
TEST_F(hashCode,hashCode_001)195*c346f426SDamjan Jovanovic TEST_F(hashCode, hashCode_001)
196cdf0e10cSrcweir {
197cdf0e10cSrcweir     rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
198cdf0e10cSrcweir     sal_Int32 nHashCode = aLocale.hashCode();
199*c346f426SDamjan Jovanovic     printf("Hashcode: %d\n", nHashCode);
200*c346f426SDamjan Jovanovic     ASSERT_TRUE(nHashCode != 0) << "locale hashcode must be 3831";
201cdf0e10cSrcweir }
202*c346f426SDamjan Jovanovic 
TEST_F(hashCode,hashCode_002)203*c346f426SDamjan Jovanovic TEST_F(hashCode, hashCode_002)
204cdf0e10cSrcweir {
205cdf0e10cSrcweir     rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
206cdf0e10cSrcweir     sal_Int32 nHashCode = rtl_locale_hashCode(aLocale.getData());
207*c346f426SDamjan Jovanovic     printf("Hashcode: %d\n", nHashCode);
208*c346f426SDamjan Jovanovic     ASSERT_TRUE(nHashCode != 0) << "locale hashcode must be 3831";
209cdf0e10cSrcweir }
210cdf0e10cSrcweir 
211*c346f426SDamjan Jovanovic class equals : public ::testing::Test
212cdf0e10cSrcweir {
213cdf0e10cSrcweir public:
214cdf0e10cSrcweir     // initialise your test code values here.
SetUp()215*c346f426SDamjan Jovanovic     void SetUp()
216cdf0e10cSrcweir     {
217cdf0e10cSrcweir     }
218cdf0e10cSrcweir 
TearDown()219*c346f426SDamjan Jovanovic     void TearDown()
220cdf0e10cSrcweir     {
221cdf0e10cSrcweir     }
222*c346f426SDamjan Jovanovic }; // class equals
223cdf0e10cSrcweir 
TEST_F(equals,equals_001)224*c346f426SDamjan Jovanovic TEST_F(equals, equals_001)
225cdf0e10cSrcweir {
226cdf0e10cSrcweir     rtl::OLocale aLocale1 = rtl::OLocale::registerLocale(rtl::OUString::createFromAscii("en"), rtl::OUString::createFromAscii("US"), rtl::OUString());
227cdf0e10cSrcweir     rtl::OLocale aLocale2 = rtl::OLocale::registerLocale(rtl::OUString::createFromAscii("en"), rtl::OUString::createFromAscii("US"));
228cdf0e10cSrcweir 
229cdf0e10cSrcweir     sal_Bool bLocaleAreEqual = sal_False;
230cdf0e10cSrcweir     bLocaleAreEqual = (aLocale1 == aLocale2);
231cdf0e10cSrcweir 
232*c346f426SDamjan Jovanovic     ASSERT_TRUE(bLocaleAreEqual == sal_True) << "check operator ==()";
233cdf0e10cSrcweir }
234cdf0e10cSrcweir 
TEST_F(equals,equals_002)235*c346f426SDamjan Jovanovic TEST_F(equals, equals_002)
236cdf0e10cSrcweir {
237cdf0e10cSrcweir     rtl::OLocale aLocale1 = rtl::OLocale::registerLocale(rtl::OUString::createFromAscii("en"), rtl::OUString::createFromAscii("US"), rtl::OUString());
238cdf0e10cSrcweir     rtl::OLocale aLocale2 = rtl::OLocale::registerLocale(rtl::OUString::createFromAscii("en"), rtl::OUString::createFromAscii("US"));
239cdf0e10cSrcweir 
240cdf0e10cSrcweir     sal_Int32 nEqual = rtl_locale_equals(aLocale1.getData(), aLocale2.getData());
241*c346f426SDamjan Jovanovic     printf("rtl_locale_equals() result: %d\n", nEqual);
242*c346f426SDamjan Jovanovic     ASSERT_TRUE(nEqual != 0);
243cdf0e10cSrcweir }
244cdf0e10cSrcweir 
245cdf0e10cSrcweir } // namespace rtl_locale
246cdf0e10cSrcweir 
247cdf0e10cSrcweir 
248cdf0e10cSrcweir // -----------------------------------------------------------------------------
249cdf0e10cSrcweir 
main(int argc,char ** argv)250*c346f426SDamjan Jovanovic int main(int argc, char **argv)
251cdf0e10cSrcweir {
252cdf0e10cSrcweir     // start message
253*c346f426SDamjan Jovanovic     printf("Initializing ...\n" );
254cdf0e10cSrcweir     rtl_locale::setDefaultLocale();
255*c346f426SDamjan Jovanovic     printf("Initialization Done.\n" );
256*c346f426SDamjan Jovanovic 
257*c346f426SDamjan Jovanovic     ::testing::InitGoogleTest(&argc, argv);
258*c346f426SDamjan Jovanovic     return RUN_ALL_TESTS();
259cdf0e10cSrcweir }
260