aboutsummaryrefslogtreecommitdiffstats
path: root/test/psych
diff options
context:
space:
mode:
authortenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-04-24 04:11:27 +0000
committertenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-04-24 04:11:27 +0000
commit7309f9cc007f1cc05eb70967356069161d867356 (patch)
tree6dcfc346ff9055c7d938b8f01be917c6ed1edd98 /test/psych
parent655b2ade4984f8d0ad6c76d6eff35262ad7d2619 (diff)
downloadruby-7309f9cc007f1cc05eb70967356069161d867356.tar.gz
* ext/psych/lib/psych.rb: supporting deprecated syck method
add_ruby_type * ext/psych/lib/psych/visitors/to_ruby.rb: ditto * test/psych/test_deprecated.rb: ditto * test/psych/test_psych.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/psych')
-rw-r--r--test/psych/test_deprecated.rb16
-rw-r--r--test/psych/test_psych.rb23
2 files changed, 38 insertions, 1 deletions
diff --git a/test/psych/test_deprecated.rb b/test/psych/test_deprecated.rb
index 41106ffcfd..c93b36ed44 100644
--- a/test/psych/test_deprecated.rb
+++ b/test/psych/test_deprecated.rb
@@ -2,6 +2,10 @@ require_relative 'helper'
module Psych
class TestDeprecated < TestCase
+ def teardown
+ Psych.domain_types.clear
+ end
+
class QuickEmitter
attr_reader :name
attr_reader :value
@@ -147,5 +151,17 @@ module Psych
def test_yaml_as
assert_match(/helloworld/, Psych.dump(YamlAs.new))
end
+
+ def test_ruby_type
+ types = []
+ appender = lambda { |*args| types << args }
+
+ Psych.add_ruby_type('foo', &appender)
+ Psych.load <<-eoyml
+- !ruby.yaml.org,2002/foo bar
+ eoyml
+
+ assert_equal [["tag:ruby.yaml.org,2002:foo", "bar"]], types
+ end
end
end
diff --git a/test/psych/test_psych.rb b/test/psych/test_psych.rb
index 91c67b1664..78f022c1fb 100644
--- a/test/psych/test_psych.rb
+++ b/test/psych/test_psych.rb
@@ -4,6 +4,10 @@ require 'stringio'
require 'tempfile'
class TestPsych < Psych::TestCase
+ def teardown
+ Psych.domain_types.clear
+ end
+
def test_load_argument_error
assert_raises(TypeError) do
Psych.load nil
@@ -56,7 +60,7 @@ class TestPsych < Psych::TestCase
Psych.add_builtin_type 'omap', do |type, val|
got = val
end
- Psych.load('--- !omap hello')
+ Psych.load('--- !!omap hello')
assert_equal 'hello', got
ensure
Psych.remove_type 'omap'
@@ -98,4 +102,21 @@ class TestPsych < Psych::TestCase
assert_equal false, Psych.load('')
assert_equal false, Psych.parse('')
end
+
+ def test_callbacks
+ types = []
+ appender = lambda { |*args| types << args }
+
+ Psych.add_builtin_type('foo', &appender)
+ Psych.add_domain_type('example.com,2002', 'foo', &appender)
+ Psych.load <<-eoyml
+- !tag:yaml.org,2002:foo bar
+- !tag:example.com,2002:foo bar
+ eoyml
+
+ assert_equal [
+ ["tag:yaml.org,2002:foo", "bar"],
+ ["tag:example.com,2002:foo", "bar"]
+ ], types
+ end
end