more test cases

This commit is contained in:
Niels 2015-02-11 22:42:49 +01:00
parent 89a1b0247b
commit 583d20a3b1

View file

@ -4988,6 +4988,44 @@ TEST_CASE("parser class")
}
}
SECTION("string")
{
// empty string
CHECK(json::parser("\"\"").parse() == json(json::value_t::string));
SECTION("escaped")
{
// quotation mark
CHECK(json::parser("\"\\\"\"").parse() == json("\\\""));
// reverse solidus
CHECK(json::parser("\"\\\\\"").parse() == json("\\\\"));
// solidus
CHECK(json::parser("\"\\/\"").parse() == json("\\/"));
// backspace
CHECK(json::parser("\"\\b\"").parse() == json("\\b"));
// formfeed
CHECK(json::parser("\"\\f\"").parse() == json("\\f"));
// newline
CHECK(json::parser("\"\\n\"").parse() == json("\\n"));
// carriage return
CHECK(json::parser("\"\\r\"").parse() == json("\\r"));
// horizontal tab
CHECK(json::parser("\"\\t\"").parse() == json("\\t"));
CHECK(json::parser("\"\\u0000\"").parse() == json("\\u0000"));
CHECK(json::parser("\"\\u000a\"").parse() == json("\\u000a"));
CHECK(json::parser("\"\\u00b0\"").parse() == json("\\u00b0"));
CHECK(json::parser("\"\\u0c00\"").parse() == json("\\u0c00"));
CHECK(json::parser("\"\\ud000\"").parse() == json("\\ud000"));
CHECK(json::parser("\"\\u0000\"").parse() == json("\\u0000"));
CHECK(json::parser("\"\\u000E\"").parse() == json("\\u000E"));
CHECK(json::parser("\"\\u00F0\"").parse() == json("\\u00F0"));
CHECK(json::parser("\"\\u0100\"").parse() == json("\\u0100"));
CHECK(json::parser("\"\\u2000\"").parse() == json("\\u2000"));
CHECK(json::parser("\"\\uFFFF\"").parse() == json("\\uFFFF"));
}
}
SECTION("number")
{
SECTION("integers")
@ -5090,5 +5128,8 @@ TEST_CASE("parser class")
CHECK_THROWS_AS(json::parser("{\"foo\":").parse(), std::invalid_argument);
CHECK_THROWS_AS(json::parser("{\"foo\":}").parse(), std::invalid_argument);
CHECK_THROWS_AS(json::parser("{\"foo\":1,}").parse(), std::invalid_argument);
// unexpected end of string
CHECK_THROWS_AS(json::parser("\"").parse(), std::invalid_argument);
}
}