From 8859c7293e9ed8a518412cfa635005a8cc4dc527 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 22 Aug 2010 23:46:02 +0000 Subject: [PATCH] Use "C" locale for locale-dependent part of TextCtrlTestCase. As we expect to get decimal points in the text control when we stream floating point numbers into it, we must do it in a locale which uses decimal point, e.g. "C" one. Otherwise the test failed when ran in e.g. French locale. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65390 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- tests/controls/textctrltest.cpp | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/tests/controls/textctrltest.cpp b/tests/controls/textctrltest.cpp index 393bda2a84..8a78cd5f4c 100644 --- a/tests/controls/textctrltest.cpp +++ b/tests/controls/textctrltest.cpp @@ -24,6 +24,8 @@ #include "wx/textctrl.h" #endif // WX_PRECOMP +#include "wx/scopeguard.h" + #include "textentrytest.h" #include "testableframe.h" #include "asserthelper.h" @@ -206,13 +208,19 @@ void TextCtrlTestCase::MaxLength() void TextCtrlTestCase::StreamInput() { #ifndef __WXOSX__ - *m_text << "stringinput" - << 10 - << 1000L - << 3.14f - << 2.71 - << 'a' - << L'b'; + { + // Ensure we use decimal point and not a comma. + char * const locOld = setlocale(LC_NUMERIC, "C"); + wxON_BLOCK_EXIT2( setlocale, (int)LC_NUMERIC, locOld ); + + *m_text << "stringinput" + << 10 + << 1000L + << 3.14f + << 2.71 + << 'a' + << L'b'; + } CPPUNIT_ASSERT_EQUAL("stringinput1010003.142.71ab", m_text->GetValue()); @@ -234,8 +242,8 @@ void TextCtrlTestCase::StreamInput() CPPUNIT_ASSERT_EQUAL("stringinput1010003.142.71a", m_text->GetValue()); -#endif -#endif +#endif // wxHAS_TEXT_WINDOW_STREAM +#endif // !__WXOSX__ } void TextCtrlTestCase::Redirector() -- 2.45.2