aboutsummaryrefslogtreecommitdiffstats
path: root/tests/parser/textTest.cpp
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2014-01-15 23:27:51 +0000
committerVincent Richard <[email protected]>2014-01-15 23:27:51 +0000
commitef892af6556724b6d04dfb1767dce132f9d97257 (patch)
treedee732540e681ad58c4f6835c2d960238bf20b26 /tests/parser/textTest.cpp
parentAvoid calling charset::convert() if no conversion is needed. (diff)
downloadvmime-ef892af6556724b6d04dfb1767dce132f9d97257.tar.gz
vmime-ef892af6556724b6d04dfb1767dce132f9d97257.zip
Do not make calls to setlocale() in a library. Use default user locale in tests and examples.
Diffstat (limited to 'tests/parser/textTest.cpp')
-rw-r--r--tests/parser/textTest.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/parser/textTest.cpp b/tests/parser/textTest.cpp
index 274687a5..f56f972d 100644
--- a/tests/parser/textTest.cpp
+++ b/tests/parser/textTest.cpp
@@ -23,6 +23,9 @@
#include "tests/testUtils.hpp"
+#include <locale>
+#include <clocale>
+
VMIME_TEST_SUITE_BEGIN(textTest)
@@ -78,6 +81,27 @@ VMIME_TEST_SUITE_BEGIN(textTest)
}
+ void setUp()
+ {
+ // Set the global C and C++ locale to the user-configured locale.
+ // The locale should use UTF-8 encoding for these tests to run successfully.
+ try
+ {
+ std::locale::global(std::locale(""));
+ }
+ catch (std::exception &)
+ {
+ std::setlocale(LC_ALL, "");
+ }
+ }
+
+ void tearDown()
+ {
+ // Restore default locale
+ std::locale::global(std::locale("C"));
+ }
+
+
void testConstructors()
{
vmime::text t1;