X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9362d82351de459a26b59797bd3f44fb506ebe28..d73efa0b9c06aec0a4b39af3b7d1eab424068f83:/tests/intl/intltest.cpp diff --git a/tests/intl/intltest.cpp b/tests/intl/intltest.cpp index d821e963cf..11f6451afe 100644 --- a/tests/intl/intltest.cpp +++ b/tests/intl/intltest.cpp @@ -3,7 +3,6 @@ // Purpose: wxLocale unit test // Author: Vaclav Slavik // Created: 2007-03-26 -// RCS-ID: $Id$ // Copyright: (c) 2007 Vaclav Slavik /////////////////////////////////////////////////////////////////////////////// @@ -39,6 +38,7 @@ public: private: CPPUNIT_TEST_SUITE( IntlTestCase ); + CPPUNIT_TEST( RestoreLocale ); CPPUNIT_TEST( Domain ); CPPUNIT_TEST( Headers ); CPPUNIT_TEST( DateTimeFmtFrench ); @@ -46,12 +46,18 @@ private: CPPUNIT_TEST( IsAvailable ); CPPUNIT_TEST_SUITE_END(); + void RestoreLocale(); void Domain(); void Headers(); void DateTimeFmtFrench(); void DateTimeFmtC(); void IsAvailable(); + static wxString GetDecimalPoint() + { + return wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT, wxLOCALE_CAT_NUMBER); + } + wxLocale *m_locale; DECLARE_NO_COPY_CLASS(IntlTestCase) @@ -92,6 +98,25 @@ void IntlTestCase::tearDown() } } +void IntlTestCase::RestoreLocale() +{ + if ( !m_locale ) + return; + + // We must be using the French locale now, it was changed in setUp(). + CPPUNIT_ASSERT_EQUAL( ",", GetDecimalPoint() ); + + // Switch to the English locale. + { + wxLocale locEn(wxLANGUAGE_ENGLISH); + CPPUNIT_ASSERT_EQUAL( ".", GetDecimalPoint() ); + } + + // Verify that after destroying the English locale object, French locale is + // restored. + CPPUNIT_ASSERT_EQUAL( ",", GetDecimalPoint() ); +} + void IntlTestCase::Domain() { if (!m_locale)