summaryrefslogtreecommitdiff
path: root/test/psych
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-04-28 01:47:58 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-04-28 01:47:58 +0000
commitf114089585d486920f53c0c4cb92d73dc4ed577c (patch)
tree6e504795ed0f8049fd18cbe7793487eaf41c0d24 /test/psych
parent13dc8e4ef0c45dc51af820bbca1315edc0b70fb2 (diff)
Merge Pysch 3.0.3.pre1.
I added the following additional commits from 3.0.3.pre1: * https://github.com/ruby/psych/pull/356 * https://github.com/ruby/psych/pull/357 * https://github.com/ruby/psych/pull/359 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/psych')
-rw-r--r--test/psych/test_psych.rb37
-rw-r--r--test/psych/test_stream.rb16
2 files changed, 53 insertions, 0 deletions
diff --git a/test/psych/test_psych.rb b/test/psych/test_psych.rb
index 2812fd1bd8..8f9a10013d 100644
--- a/test/psych/test_psych.rb
+++ b/test/psych/test_psych.rb
@@ -144,12 +144,49 @@ class TestPsych < Psych::TestCase
}
end
+ def test_load_file_default_return_value
+ Tempfile.create(['empty', 'yml']) {|t|
+ assert_equal false, Psych.load_file(t.path)
+ }
+ end
+
def test_load_file_with_fallback
Tempfile.create(['empty', 'yml']) {|t|
+ assert_equal 42, Psych.load_file(t.path, fallback: 42)
+ }
+ end
+
+ def test_load_file_with_fallback_nil_or_false
+ Tempfile.create(['empty', 'yml']) {|t|
+ assert_nil Psych.load_file(t.path, fallback: nil)
+ assert_equal false, Psych.load_file(t.path, fallback: false)
+ }
+ end
+
+ def test_load_file_with_fallback_hash
+ Tempfile.create(['empty', 'yml']) {|t|
assert_equal Hash.new, Psych.load_file(t.path, fallback: Hash.new)
}
end
+ def test_load_file_with_fallback_for_nil
+ Tempfile.create(['nil', 'yml']) {|t|
+ t.binmode
+ t.write('--- null')
+ t.close
+ assert_nil Psych.load_file(t.path, fallback: 42)
+ }
+ end
+
+ def test_load_file_with_fallback_for_false
+ Tempfile.create(['false', 'yml']) {|t|
+ t.binmode
+ t.write('--- false')
+ t.close
+ assert_equal false, Psych.load_file(t.path, fallback: 42)
+ }
+ end
+
def test_parse_file
Tempfile.create(['yikes', 'yml']) {|t|
t.binmode
diff --git a/test/psych/test_stream.rb b/test/psych/test_stream.rb
index 3bd557cb68..9b71c6d996 100644
--- a/test/psych/test_stream.rb
+++ b/test/psych/test_stream.rb
@@ -3,6 +3,22 @@ require_relative 'helper'
module Psych
class TestStream < TestCase
+ [
+ [Psych::Nodes::Alias, :alias?],
+ [Psych::Nodes::Document, :document?],
+ [Psych::Nodes::Mapping, :mapping?],
+ [Psych::Nodes::Scalar, :scalar?],
+ [Psych::Nodes::Sequence, :sequence?],
+ [Psych::Nodes::Stream, :stream?],
+ ].each do |klass, block|
+ define_method :"test_predicate_#{block}" do
+ rb = Psych.parse_stream("---\n- foo: bar\n- &a !!str Anchored\n- *a")
+ nodes = rb.grep(klass)
+ assert_operator nodes.length, :>, 0
+ assert_equal nodes, rb.find_all(&block)
+ end
+ end
+
def test_parse_partial
rb = Psych.parse("--- foo\n...\n--- `").to_ruby
assert_equal 'foo', rb