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;
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);
}
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);
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) {