From 18cc663aef7a8073652a5979d172109e08e2497a Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Fri, 18 Oct 2024 15:48:00 +0200 Subject: [PATCH] [ruby/json] Add test coverage for JSON.load with a Proc Fix: https://github.com/ruby/json/issues/438 https://github.com/ruby/json/commit/9dd89eaac8 --- test/json/json_common_interface_test.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test/json/json_common_interface_test.rb b/test/json/json_common_interface_test.rb index f604d402f0..045e72e020 100644 --- a/test/json/json_common_interface_test.rb +++ b/test/json/json_common_interface_test.rb @@ -107,6 +107,25 @@ class JSONCommonInterfaceTest < Test::Unit::TestCase tempfile.close! end + def test_load_with_proc + visited = [] + JSON.load('{"foo": [1, 2, 3], "bar": {"baz": "plop"}}', proc { |o| visited << JSON.dump(o) }) + + expected = [ + '"foo"', + '1', + '2', + '3', + '[1,2,3]', + '"bar"', + '"baz"', + '"plop"', + '{"baz":"plop"}', + '{"foo":[1,2,3],"bar":{"baz":"plop"}}', + ] + assert_equal expected, visited + end + def test_load_with_options json = '{ "foo": NaN }' assert JSON.load(json, nil, :allow_nan => true)['foo'].nan?