From 701aa4d80423d8e3a092c741a36f938a1ca96c45 Mon Sep 17 00:00:00 2001 From: Francesco Montorsi Date: Sun, 6 Jun 2010 18:52:28 +0000 Subject: [PATCH] revert previous revision about localization of decimal points in GetHumanReadableSize() test strings: using CLocaleSetter is a better solution. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64515 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- tests/datetime/datetimetest.cpp | 12 ------------ tests/filename/filenametest.cpp | 16 ++++++++-------- tests/testprec.h | 12 ++++++++++++ 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/tests/datetime/datetimetest.cpp b/tests/datetime/datetimetest.cpp index d60aae81b6..9322fe4ef2 100644 --- a/tests/datetime/datetimetest.cpp +++ b/tests/datetime/datetimetest.cpp @@ -83,18 +83,6 @@ private: #endif // CHANGE_SYSTEM_DATE -// helper class setting the locale to "C" for its lifetime -class CLocaleSetter -{ -public: - CLocaleSetter() : m_locOld(setlocale(LC_ALL, "C")) { } - ~CLocaleSetter() { setlocale(LC_ALL, m_locOld); } - -private: - const char * const m_locOld; - wxDECLARE_NO_COPY_CLASS(CLocaleSetter); -}; - // helper function translating week day/month names from English to the current // locale static wxString TranslateDate(const wxString& str) diff --git a/tests/filename/filenametest.cpp b/tests/filename/filenametest.cpp index 175e41bc65..69b7ae8202 100644 --- a/tests/filename/filenametest.cpp +++ b/tests/filename/filenametest.cpp @@ -503,26 +503,25 @@ void FileNameTestCase::TestGetHumanReadable() { "304 KB", 304351, 0, wxSIZE_CONV_SI }, }; + CLocaleSetter loc; // we want to use "C" locale for LC_NUMERIC + // so that regardless of the system's locale + // the decimal point used by GetHumanReadableSize() + // is always '.' for ( unsigned n = 0; n < WXSIZEOF(testData); n++ ) { const TestData& td = testData[n]; // take care of using the decimal point for the current locale before // the actual comparison - wxString result_localized = wxString(td.result); - result_localized.Replace(".", wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT, wxLOCALE_CAT_NUMBER)); - CPPUNIT_ASSERT_EQUAL ( - result_localized, + td.result, wxFileName::GetHumanReadableSize(td.size, "NA", td.prec, td.conv) ); } // also test the default convention value - wxString result_localized = wxString("1.4 MB"); - result_localized.Replace(".", wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT, wxLOCALE_CAT_NUMBER)); - CPPUNIT_ASSERT_EQUAL( result_localized, wxFileName::GetHumanReadableSize(1512993, "") ); + CPPUNIT_ASSERT_EQUAL( "1.4 MB", wxFileName::GetHumanReadableSize(1512993, "") ); } void FileNameTestCase::TestStrip() @@ -594,8 +593,9 @@ void FileNameTestCase::TestCreateTempFileName() { "foo", "$SYSTEM_TEMP", false }, { "..", "$SYSTEM_TEMP", false }, { "../bar", "..", false }, +#ifdef __WXMSW__ { "c:\\a\\place\\which\\does\\not\\exist", "", true }, -#ifdef __UNIX__ +#else if defined( __UNIX__ ) { "/tmp/foo", "/tmp", false }, { "/tmp/foo/bar", "", true }, #endif // __UNIX__ diff --git a/tests/testprec.h b/tests/testprec.h index b5178c8d1e..f7d0e66c5c 100644 --- a/tests/testprec.h +++ b/tests/testprec.h @@ -67,3 +67,15 @@ extern void SetFilterEventFunc(FilterEventFunc func); extern void SetProcessEventFunc(ProcessEventFunc func); extern bool IsNetworkAvailable(); + +// helper class setting the locale to "C" for its lifetime +class CLocaleSetter +{ +public: + CLocaleSetter() : m_locOld(setlocale(LC_ALL, "C")) { } + ~CLocaleSetter() { setlocale(LC_ALL, m_locOld); } + +private: + const char * const m_locOld; + wxDECLARE_NO_COPY_CLASS(CLocaleSetter); +};