diff options
Diffstat (limited to 'test/psych/test_string.rb')
-rw-r--r-- | test/psych/test_string.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/test/psych/test_string.rb b/test/psych/test_string.rb index 20ab79c05a..84ae5cbb45 100644 --- a/test/psych/test_string.rb +++ b/test/psych/test_string.rb @@ -17,6 +17,19 @@ module Psych end end + # 'y', 'Y', 'n', 'N' are kind of ambiguous. Syck treated those literals in + # YAML documents as strings. But this is not what the YAML 1.1 spec says. + # YAML 1.1 says they should be treated as booleans. When we're dumping + # documents, we know it's a string, so adding quotes will eliminate the + # "ambiguity" in the emitted document + + def test_all_yaml_1_1_booleans_are_quoted + yaml_1_1_booleans = %w[y Y yes Yes YES n N no No NO true True TRUE false False FALSE on On ON off Off OFF] # from https://yaml.org/type/bool.html + yaml_1_1_booleans.each do |boolean| + assert_match(/"#{boolean}"|'#{boolean}'/, Psych.dump(boolean)) + end + end + def test_string_with_newline assert_equal "1\n2", Psych.load("--- ! '1\n\n 2'\n") end |