diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/json_parser_test.rb | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/tests/json_parser_test.rb b/tests/json_parser_test.rb index c1c2779..40ad500 100644 --- a/tests/json_parser_test.rb +++ b/tests/json_parser_test.rb @@ -40,6 +40,18 @@ class JSONParserTest < Test::Unit::TestCase assert_equal({ 'a' => 'b' }, parser.parse) end + def test_parse_values + assert_equal(nil, parse('null')) + assert_equal(false, parse('false')) + assert_equal(true, parse('true')) + assert_equal(-23, parse('-23')) + assert_equal(23, parse('23')) + assert_in_delta(0.23, parse('0.23'), 1e-2) + assert_in_delta(0.0, parse('0e0'), 1e-2) + assert_equal("", parse('""')) + assert_equal("foobar", parse('"foobar"')) + end + def test_parse_simple_arrays assert_equal([], parse('[]')) assert_equal([], parse(' [ ] ')) @@ -277,7 +289,6 @@ EOT assert_equal data, parse(json) end - class SubArray < Array def <<(v) @shifted = true @@ -438,6 +449,13 @@ EOT assert_equal obj, obj_again end + def test_parsing_frozen_ascii8bit_string + assert_equal( + { 'foo' => 'bar' }, + JSON('{ "foo": "bar" }'.force_encoding(Encoding::ASCII_8BIT).freeze) + ) + end + private def assert_equal_float(expected, actual, delta = 1e-2) |