From 466ed0e1ace6ebf069d444d666f0db3f9224a4b9 Mon Sep 17 00:00:00 2001 From: Samuel Giddins Date: Sat, 10 Feb 2024 19:52:13 -0800 Subject: [PATCH] [rubygems/rubygems] Add a test for safe yaml https://github.com/rubygems/rubygems/commit/148deade0a --- test/rubygems/test_gem_safe_yaml.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 test/rubygems/test_gem_safe_yaml.rb diff --git a/test/rubygems/test_gem_safe_yaml.rb b/test/rubygems/test_gem_safe_yaml.rb new file mode 100644 index 00000000000000..4f7e4001322df2 --- /dev/null +++ b/test/rubygems/test_gem_safe_yaml.rb @@ -0,0 +1,23 @@ +# 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? + assert_raise Psych::AliasesNotEnabled do + Gem::SafeYAML.safe_load("a: &a\nb: *a\n") + end + ensure + Gem::SafeYAML.aliases_enabled = aliases_enabled + end +end