summaryrefslogtreecommitdiff
path: root/test/psych/test_safe_load.rb
diff options
context:
space:
mode:
authorAlexander Momchilov <alexander.momchilov@shopify.com>2022-07-22 15:49:05 -0400
committergit <svn-admin@ruby-lang.org>2022-08-09 01:31:22 +0900
commitc851bced390204d6624e58c47941f34d0858b352 (patch)
tree9517b984bfa2a7d1f81101541706165996963605 /test/psych/test_safe_load.rb
parent1602443c985975cfc0f6f0b83ae6ac661a3c93bc (diff)
downloadruby-c851bced390204d6624e58c47941f34d0858b352.tar.gz
[ruby/psych] Clarify tests about parsing aliases
https://github.com/ruby/psych/commit/0bc30cb4cb
Diffstat (limited to 'test/psych/test_safe_load.rb')
-rw-r--r--test/psych/test_safe_load.rb29
1 files changed, 21 insertions, 8 deletions
diff --git a/test/psych/test_safe_load.rb b/test/psych/test_safe_load.rb
index b52d6048b3..e57dbcb2f5 100644
--- a/test/psych/test_safe_load.rb
+++ b/test/psych/test_safe_load.rb
@@ -19,18 +19,31 @@ module Psych
end
end
- def test_no_recursion
- x = []
- x << x
+ def test_raises_when_alias_found_if_alias_parsing_not_enabled
+ yaml_with_aliases = <<~YAML
+ ---
+ a: &ABC
+ k1: v1
+ k2: v2
+ b: *ABC
+ YAML
+
assert_raise(Psych::BadAlias) do
- Psych.safe_load Psych.dump(x)
+ Psych.safe_load(yaml_with_aliases)
end
end
- def test_explicit_recursion
- x = []
- x << x
- assert_equal(x, Psych.safe_load(Psych.dump(x), permitted_classes: [], permitted_symbols: [], aliases: true))
+ def test_aliases_are_parsed_when_alias_parsing_is_enabled
+ yaml_with_aliases = <<~YAML
+ ---
+ a: &ABC
+ k1: v1
+ k2: v2
+ b: *ABC
+ YAML
+
+ result = Psych.safe_load(yaml_with_aliases, aliases: true)
+ assert_same result.fetch("a"), result.fetch("b")
end
def test_permitted_symbol