From: Jelte Jansen Date: Mon, 2 Apr 2012 13:36:04 +0000 (+0200) Subject: [1626] move some more json tests around X-Git-Tag: trac2351_base~226^2~116^2~64^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9ee14145b2879b044fdf0c32678838ee67343094;p=thirdparty%2Fkea.git [1626] move some more json tests around --- diff --git a/src/lib/cc/tests/data_unittests.cc b/src/lib/cc/tests/data_unittests.cc index 802ba8ce50..87d92f64ab 100644 --- a/src/lib/cc/tests/data_unittests.cc +++ b/src/lib/cc/tests/data_unittests.cc @@ -91,7 +91,7 @@ TEST(Element, from_and_to_json) { sv.push_back("-1"); sv.push_back("-1.234"); sv.push_back("-123.456"); - + BOOST_FOREACH(const std::string& s, sv) { // test << operator, which uses Element::str() std::ostringstream stream; @@ -127,8 +127,12 @@ TEST(Element, from_and_to_json) { sv.push_back("\"foobar\"hello"); sv.push_back("[]hello"); sv.push_back("{}hello"); + // String not delimited correctly + sv.push_back("\"hello"); + sv.push_back("hello\""); + + BOOST_FOREACH(std::string s, sv) { - EXPECT_THROW(el = Element::fromJSON(s), isc::data::JSONError); } @@ -155,6 +159,9 @@ TEST(Element, from_and_to_json) { EXPECT_EQ("false", Element::fromJSON("FALSE")->str()); EXPECT_EQ("true", Element::fromJSON("True")->str()); EXPECT_EQ("true", Element::fromJSON("TRUE")->str()); + EXPECT_EQ("\"\"", Element::fromJSON(" \n \t \r \f \b \"\" \n \f \t \r \b")->str()); + EXPECT_EQ("{ }", Element::fromJSON("{ \n \r \t \b \f }")->str()); + EXPECT_EQ("[ ]", Element::fromJSON("[ \n \r \f \t \b ]")->str()); // number overflows EXPECT_THROW(Element::fromJSON("12345678901234567890")->str(), JSONError); @@ -337,15 +344,8 @@ TEST(Element, escape) { EXPECT_THROW(Element::fromJSON("\\\"\\\""), JSONError); // Inside strings is OK EXPECT_NO_THROW(Element::fromJSON("\"\\\"\\\"\"")); - // String not delimited correctly - EXPECT_THROW(Element::fromJSON("\"hello"), JSONError); - EXPECT_THROW(Element::fromJSON("hello\""), JSONError); // A whitespace test EXPECT_NO_THROW(Element::fromJSON("\" \n \r \t \f \n \n \t\"")); - // Whitespace outside of json element - EXPECT_NO_THROW(Element::fromJSON(" \n \t \r \f \b \"\" \n \f \t \r \b")); - EXPECT_NO_THROW(Element::fromJSON("{ \n \r \t \b \f }")); - EXPECT_NO_THROW(Element::fromJSON("[ \n \r \f \t \b ]")); } TEST(Element, ListElement) {