From 9bf8aa21b36de3bd90bed85e6c85412426b03d9d Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Wed, 9 Sep 2020 15:24:22 +0200 Subject: Implement a freeze: parser option If set to true all parsed objects will be immediately frozen, and strings will be deduplicated if the Ruby implementation allows it. --- tests/json_parser_test.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'tests') diff --git a/tests/json_parser_test.rb b/tests/json_parser_test.rb index 514441e..e29f3f1 100644 --- a/tests/json_parser_test.rb +++ b/tests/json_parser_test.rb @@ -218,6 +218,17 @@ class JSONParserTest < Test::Unit::TestCase end end + def test_freeze + assert_predicate parse('{}', :freeze => true), :frozen? + assert_predicate parse('[]', :freeze => true), :frozen? + assert_predicate parse('"foo"', :freeze => true), :frozen? + + if string_deduplication_available? + assert_same -'foo', parse('"foo"', :freeze => true) + assert_same -'foo', parse('{"foo": 1}', :freeze => true).keys.first + end + end + def test_parse_comments json = <