diff --git a/test/json_gem/json_ext_parser_test.rb b/test/json_gem/json_ext_parser_test.rb index 5238617e..53cf680e 100755 --- a/test/json_gem/json_ext_parser_test.rb +++ b/test/json_gem/json_ext_parser_test.rb @@ -9,13 +9,25 @@ class JSONExtParserTest < Test::Unit::TestCase include Test::Unit::TestCaseOmissionSupport if defined?(JSON::Ext::Parser) - def test_allocate - parser = JSON::Ext::Parser.new("{}") - assert_raise(TypeError, '[ruby-core:35079]') do + if REAL_JSON_GEM && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.5.0') + def test_allocate + parser = JSON::Ext::Parser.new("{}") parser.__send__(:initialize, "{}") + assert_equal "{}", parser.source + + parser = JSON::Ext::Parser.allocate + assert_nil parser.source + end + else + # Ruby 3.4.x or before + def test_allocate + parser = JSON::Ext::Parser.new("{}") + assert_raise(TypeError, '[ruby-core:35079]') do + parser.__send__(:initialize, "{}") + end + parser = JSON::Ext::Parser.allocate + assert_raise(TypeError, '[ruby-core:35079]') { parser.source } end - parser = JSON::Ext::Parser.allocate - assert_raise(TypeError, '[ruby-core:35079]') { parser.source } end end end diff --git a/test/json_gem/json_generator_test.rb b/test/json_gem/json_generator_test.rb index be20b17c..a5fba570 100755 --- a/test/json_gem/json_generator_test.rb +++ b/test/json_gem/json_generator_test.rb @@ -144,7 +144,8 @@ def test_pretty_state actual.delete(:escape_slash) actual.delete(:strict) actual.delete(:script_safe) - assert_equal({ + + expected = { :allow_nan => false, :array_nl => "\n", :ascii_only => false, @@ -155,7 +156,12 @@ def test_pretty_state :object_nl => "\n", :space => " ", :space_before => "", - }.sort_by { |n,| n.to_s }, actual.sort_by { |n,| n.to_s }) + } + if REAL_JSON_GEM && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.5.0') + expected[:as_json] = false + end + + assert_equal(expected.sort_by { |n,| n.to_s }, actual.sort_by { |n,| n.to_s }) end def test_safe_state @@ -166,7 +172,8 @@ def test_safe_state actual.delete(:escape_slash) actual.delete(:strict) actual.delete(:script_safe) - assert_equal({ + + expected = { :allow_nan => false, :array_nl => "", :ascii_only => false, @@ -177,7 +184,12 @@ def test_safe_state :object_nl => "", :space => "", :space_before => "", - }.sort_by { |n,| n.to_s }, actual.sort_by { |n,| n.to_s }) + } + if REAL_JSON_GEM && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.5.0') + expected[:as_json] = false + end + + assert_equal(expected.sort_by { |n,| n.to_s }, actual.sort_by { |n,| n.to_s }) end def test_fast_state @@ -188,7 +200,8 @@ def test_fast_state actual.delete(:escape_slash) actual.delete(:strict) actual.delete(:script_safe) - assert_equal({ + + expected = { :allow_nan => false, :array_nl => "", :ascii_only => false, @@ -199,7 +212,12 @@ def test_fast_state :object_nl => "", :space => "", :space_before => "", - }.sort_by { |n,| n.to_s }, actual.sort_by { |n,| n.to_s }) + } + if REAL_JSON_GEM && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.5.0') + expected[:as_json] = false + end + + assert_equal(expected.sort_by { |n,| n.to_s }, actual.sort_by { |n,| n.to_s }) end def test_allow_nan