more test cases
This commit is contained in:
		
							parent
							
								
									89a1b0247b
								
							
						
					
					
						commit
						583d20a3b1
					
				
					 1 changed files with 41 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue