GH #482: Poco::JSON::Stringifier::stringify bad behaviour

This commit is contained in:
Alex Fabijanic
2014-07-10 21:00:59 -05:00
parent d9b1b5f4d0
commit 32d4c1eb07
2 changed files with 28 additions and 4 deletions

View File

@@ -1223,15 +1223,32 @@ void JSONTest::testPrintHandler()
void JSONTest::testStringify()
{
std::string str1 = "\r";
std::string str2 = "\n";
Poco::JSON::Object obj1, obj2;
obj1.set("payload", str1);
obj2.set("payload", str2);
std::ostringstream oss1, oss2;
Poco::JSON::Stringifier::stringify(obj1, oss1);
Poco::JSON::Stringifier::stringify(obj2, oss2);
assert(oss1.str() == "{\"payload\":\"\\\r\"}");
std::cout << "\"" << oss1.str() << "\"" << std::endl;
assert(oss2.str() == "{\"payload\":\"\\\n\"}");
Object jObj(false);
jObj.set("foo\\", 0);
jObj.set("bar/", 0);
jObj.set("baz", 0);
jObj.set("q\"uote\"d", 0);
jObj.set("backspace", "bs\b");
jObj.set("newline", "nl\n");
jObj.set("tab", "tb\t");
std::stringstream ss;
jObj.stringify(ss);
assert(ss.str() == "{\"bar\\/\":0,\"baz\":0,\"foo\\\\\":0,\"q\\\"uote\\\"d\":0}");
assert(ss.str() == "{\"backspace\":\"bs\\\b\",\"bar\\/\":0,\"baz\":0,\"foo\\\\\":0,"
"\"newline\":\"nl\\\n\",\"q\\\"uote\\\"d\":0,\"tab\":\"tb\\\t\"}");
std::string json = "{ \"Simpsons\" : { \"husband\" : { \"name\" : \"Homer\" , \"age\" : 38 }, \"wife\" : { \"name\" : \"Marge\", \"age\" : 36 }, "
"\"children\" : [ \"Bart\", \"Lisa\", \"Maggie\" ], "