Skip to content

Commit 31d0823

Browse files
BillyDonahueres2k
authored andcommitted
Add WideString test for Issue open-source-parsers#756
1 parent d43626b commit 31d0823

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

src/test_lib_json/main.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
#include <cmath>
1515
#include <cstring>
1616
#include <iomanip>
17+
#include <iostream>
18+
#include <sstream>
1719
#include <json/config.h>
1820
#include <json/json.h>
1921
#include <limits>
@@ -1644,6 +1646,28 @@ JSONTEST_FIXTURE(ValueTest, StaticString) {
16441646
}
16451647
}
16461648

1649+
JSONTEST_FIXTURE(ValueTest, WideString) {
1650+
// https://github.com/open-source-parsers/jsoncpp/issues/756
1651+
const std::string uni = u8"式,进"; // "\u5f0f\uff0c\u8fdb"
1652+
std::string styled;
1653+
{
1654+
Json::Value v;
1655+
v["abc"] = uni;
1656+
styled = v.toStyledString();
1657+
}
1658+
Json::Value root;
1659+
{
1660+
JSONCPP_STRING errs;
1661+
std::istringstream iss(styled);
1662+
bool ok = parseFromStream(Json::CharReaderBuilder(), iss, &root, &errs);
1663+
JSONTEST_ASSERT(ok);
1664+
if (!ok) {
1665+
std::cerr << "errs: " << errs << std::endl;
1666+
}
1667+
}
1668+
JSONTEST_ASSERT_STRING_EQUAL(root["abc"].asString(), uni);
1669+
}
1670+
16471671
JSONTEST_FIXTURE(ValueTest, CommentBefore) {
16481672
Json::Value val; // fill val
16491673
val.setComment(Json::String("// this comment should appear before"),
@@ -2556,6 +2580,7 @@ int main(int argc, const char* argv[]) {
25562580
JSONTEST_REGISTER_FIXTURE(runner, ValueTest, offsetAccessors);
25572581
JSONTEST_REGISTER_FIXTURE(runner, ValueTest, typeChecksThrowExceptions);
25582582
JSONTEST_REGISTER_FIXTURE(runner, ValueTest, StaticString);
2583+
JSONTEST_REGISTER_FIXTURE(runner, ValueTest, WideString);
25592584
JSONTEST_REGISTER_FIXTURE(runner, ValueTest, CommentBefore);
25602585
// JSONTEST_REGISTER_FIXTURE(runner, ValueTest, nulls);
25612586
JSONTEST_REGISTER_FIXTURE(runner, ValueTest, zeroes);

0 commit comments

Comments
 (0)