GH #290: Unicode support

This commit is contained in:
Alex Fabijanic
2014-05-21 03:28:24 -05:00
parent 8b39a87fd6
commit 1aa28e1491
46 changed files with 1168 additions and 114 deletions

View File

@@ -175,7 +175,7 @@ void TextConverterTest::testLatin1toUTF8()
int errors = converter.convert(latin1Text, result0);
assert (result0 == utf8Text);
assert (errors == 0);
assertEqual (result0.size(), 7);
assertEqual((long) result0.size(), 7);
std::string result1;
errors = converter.convert(latin1Chars, 6, result1);
@@ -200,13 +200,13 @@ void TextConverterTest::testLatin2toUTF8()
int errors = converter.convert(latinText, result0);
assertEqual (result0, utf8Text);
assertEqual (errors, 0);
assertEqual (result0.size(), 49);
assertEqual((long) result0.size(), 49);
std::string result1;
errors = converter.convert(latinChars, 25, result1);
assertEqual (result1, utf8Text);
assertEqual (errors, 0);
assertEqual (result1.size(), 49);
assertEqual((long) result1.size(), 49);
}
@@ -226,13 +226,13 @@ void TextConverterTest::testLatin9toUTF8()
int errors = converter.convert(latinText, result0);
assertEqual (result0, utf8Text);
assertEqual (errors, 0);
assertEqual (result0.size(), 43);
assertEqual((long) result0.size(), 43);
std::string result1;
errors = converter.convert(latinChars, 25, result1);
assertEqual (result1, utf8Text);
assertEqual (errors, 0);
assertEqual (result1.size(), 43);
assertEqual(result1, utf8Text);
assertEqual((long) errors, 0);
assertEqual((long) result1.size(), 43);
}
@@ -252,13 +252,13 @@ void TextConverterTest::testCP1250toUTF8()
int errors = converter.convert(latinText, result0);
assertEqual (result0, utf8Text);
assertEqual (errors, 0);
assertEqual (result0.size(), 49);
assertEqual((long) result0.size(), 49);
std::string result1;
errors = converter.convert(latinChars, 25, result1);
assertEqual (result1, utf8Text);
assertEqual (errors, 0);
assertEqual (result1.size(), 49);
assertEqual(result1, utf8Text);
assertEqual((long) errors, 0);
assertEqual((long) result1.size(), 49);
}
@@ -277,13 +277,13 @@ void TextConverterTest::testCP1251toUTF8()
int errors = converter.convert(latinText, result0);
assertEqual (result0, utf8Text);
assertEqual (errors, 0);
assertEqual (result0.size(), 62);
assertEqual((long) result0.size(), 62);
std::string result1;
errors = converter.convert(latinChars, 31, result1);
assertEqual (result1, utf8Text);
assertEqual (errors, 0);
assertEqual (result1.size(), 62);
assertEqual((long) result1.size(), 62);
}
@@ -301,15 +301,15 @@ void TextConverterTest::testCP1252toUTF8()
std::string result0;
int errors = converter.convert(latinText, result0);
assertEqual (result0, utf8Text);
assertEqual (errors, 0);
assertEqual (result0.size(), 43);
assertEqual(result0, utf8Text);
assertEqual(errors, 0);
assertEqual((long) result0.size(), 43);
std::string result1;
errors = converter.convert(latinChars, 25, result1);
assertEqual (result1, utf8Text);
assertEqual (errors, 0);
assertEqual (result1.size(), 43);
assertEqual(result1, utf8Text);
assertEqual(errors, 0);
assertEqual((long) result1.size(), 43);
}

View File

@@ -19,6 +19,7 @@
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
#include "Poco/UnicodeConverter.h"
#include "Poco/UTFString.h"
#include <cstring>
@@ -46,11 +47,16 @@ private:
// Convert from UTF-8 to wide
T wtext, wtext2, wtext3;
Poco::UnicodeConverter::convert(text, wtext);
if (sizeof(T) == 2)
assert(Poco::utfStringLength(wtext.data()) == 8);
else if (sizeof(T) == 4)
assert(Poco::utfStringLength(wtext.data()) == 5);
Poco::UnicodeConverter::convert((const char*) supp, strlen((const char*) supp), wtext2);
Poco::UnicodeConverter::convert((const char*) supp, wtext3);
Poco::UnicodeConverter::convert((const char*)supp, wtext3);
assert(wtext == wtext2);
assert(wtext == wtext3);
std::string text2, text3, text4;
assert (text != text2);
assert (text != text3);
assert (text != text4);

View File

@@ -1115,7 +1115,7 @@ void VarTest::testString()
Poco::UInt64 s9;
float s10;
double s11;
bool s12;
bool s12 = false;
char s13;
a1.convert(s1);
a1.convert(s2);