From 520e0916af0fe53a5ca57269a2bae50cc60e4241 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. --- test/json/json_parser_test.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'test') diff --git a/test/json/json_parser_test.rb b/test/json/json_parser_test.rb index 514441efce..e29f3f126f 100644 --- a/test/json/json_parser_test.rb +++ b/test/json/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 = <