ruby/test/rubygems/test_gem_safe_yaml.rb

24 lines
740 B
Ruby

# frozen_string_literal: true
require_relative "helper"
Gem.load_yaml
class TestGemSafeYAML < Gem::TestCase
def test_aliases_enabled_by_default
assert_predicate Gem::SafeYAML, :aliases_enabled?
assert_equal({ "a" => "a", "b" => "a" }, Gem::SafeYAML.safe_load("a: &a a\nb: *a\n"))
end
def test_aliases_disabled
aliases_enabled = Gem::SafeYAML.aliases_enabled?
Gem::SafeYAML.aliases_enabled = false
refute_predicate Gem::SafeYAML, :aliases_enabled?
expected_error = defined?(Psych::AliasesNotEnabled) ? Psych::AliasesNotEnabled : Psych::BadAlias
assert_raise expected_error do
Gem::SafeYAML.safe_load("a: &a\nb: *a\n")
end
ensure
Gem::SafeYAML.aliases_enabled = aliases_enabled
end
end