diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-05-02 23:15:08 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-05-02 23:15:08 +0000 |
commit | 902bd2b10698d404d15ce8cfff500519a1df4adb (patch) | |
tree | f10db480e2709d6ab77bc12b82d07702ccbcfbae /test | |
parent | eee581f9432b7a4d18f51bb09ca384954c91b1e9 (diff) | |
download | ruby-902bd2b10698d404d15ce8cfff500519a1df4adb.tar.gz |
* ext/syck/emitter.c (syck_scan_scalar): set SCAN_WHITEEDGE flag
when scalar begins with newline. patches from Dave B <daz AT
d10.karoo.co.uk> at [ruby-core:23019] and caleb clausen at
[ruby-core:25851]. [ruby-core:23006][ruby-core:29925]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/syck/test_yaml.rb | 116 |
1 files changed, 93 insertions, 23 deletions
diff --git a/test/syck/test_yaml.rb b/test/syck/test_yaml.rb index 1a78e9d216..3d9d7abe1d 100644 --- a/test/syck/test_yaml.rb +++ b/test/syck/test_yaml.rb @@ -1,4 +1,4 @@ -# -*- mode: ruby; ruby-indent-level: 4; tab-width: 4 -*- +# -*- mode: ruby; ruby-indent-level: 4; tab-width: 4; indent-tabs-mode: t -*- # vim:sw=4:ts=4 # $Id$ # @@ -26,31 +26,31 @@ class YAML_Unit_Tests < Test::Unit::TestCase # Convert between YAML and the object to verify correct parsing and # emitting # - def assert_to_yaml( obj, yaml ) - assert_equal( obj, YAML::load( yaml ) ) - assert_equal( obj, YAML::parse( yaml ).transform ) - assert_equal( obj, YAML::load( obj.to_yaml ) ) - assert_equal( obj, YAML::parse( obj.to_yaml ).transform ) + def assert_to_yaml( obj, yaml, msg = nil ) + assert_equal( obj, YAML::load( yaml ), msg ) + assert_equal( obj, YAML::parse( yaml ).transform, msg ) + assert_equal( obj, YAML::load( obj.to_yaml ), msg ) + assert_equal( obj, YAML::parse( obj.to_yaml ).transform, msg ) assert_equal( obj, YAML::load( obj.to_yaml( :UseVersion => true, :UseHeader => true, :SortKeys => true ) - ) ) + ), msg ) end # # Test parser only # - def assert_parse_only( obj, yaml ) - assert_equal( obj, YAML::load( yaml ) ) - assert_equal( obj, YAML::parse( yaml ).transform ) + def assert_parse_only( obj, yaml, msg = nil ) + assert_equal( obj, YAML::load( yaml ), msg ) + assert_equal( obj, YAML::parse( yaml ).transform, msg ) end - def assert_cycle( obj ) - assert_equal( obj, YAML::load( obj.to_yaml ) ) + def assert_cycle( obj, msg = nil ) + assert_equal( obj, YAML::load( obj.to_yaml ), msg ) end - def assert_path_segments( path, segments ) + def assert_path_segments( path, segments, msg = nil ) YAML::YPath.each_path( path ) { |choice| - assert_equal( choice.segments, segments.shift ) + assert_equal( choice.segments, segments.shift, msg ) } assert_equal( segments.length, 0, "Some segments leftover: #{ segments.inspect }" ) end @@ -438,6 +438,85 @@ EOY ) end + # + # Reports from N.Easterly & J.Trupiano : Tests with patch from daz + # [ruby-core:23006] [Bug #1311] http://redmine.ruby-lang.org/issues/show/1311 + # + def test_scan_scalar_nl + bug1311 = '[ruby-core:23006]' + assert_cycle(<<EoY, bug1311) + + a +b +EoY + assert_cycle(<<EoY, bug1311) + + a + b +c +EoY + assert_cycle(<<EoY, bug1311) + + a + b +EoY + assert_cycle(" Do I work?\nNo indent", bug1311) + assert_cycle(" \n Do I work?\nNo indent", bug1311) + assert_cycle("\n Do I work?\nNo indent", bug1311) + assert_cycle("\n", bug1311) + assert_cycle("\n\n", bug1311) + assert_cycle("\r\n", bug1311) + + assert_cycle <<EoY, '[ruby-core:28777]' + Domain name: + ckgteam.co.uk + + Registrant: + James Gregory + + Registrant type: + UK Individual + + Registrant's address: + The registrant is a non-trading individual who has opted to have their + address omitted from the WHOIS service. + + Registrar: + Webfusion Ltd t/a 123-Reg.co.uk [Tag = 123-REG] + URL: http://www.123-reg.co.uk + + Relevant dates: + Registered on: 16-Nov-2009 + Renewal date: 16-Nov-2011 + Last updated: 25-Nov-2009 + + Registration status: + Registered until renewal date. + + Name servers: + ns1.slicehost.net + ns2.slicehost.net + ns3.slicehost.net + + WHOIS lookup made at 11:56:46 19-Mar-2010 + +-- +This WHOIS information is provided for free by Nominet UK the central registry +for .uk domain names. This information and the .uk WHOIS are: + + Copyright Nominet UK 1996 - 2010. + +You may not access the .uk WHOIS or use any data from it except as permitted +by the terms of use available in full at http://www.nominet.org.uk/whois, which +includes restrictions on: (A) use of the data for advertising, or its +repackaging, recompilation, redistribution or reuse (B) obscuring, removing +or hiding any or all of this notice and (C) exceeding query rate or volume +limits. The data is provided on an 'as-is' basis and may lag behind the +register. Access may be withdrawn or restricted at any time. +EoY + + end + def test_spec_multiline_scalars # Multiline flow scalars assert_parse_only( @@ -1327,12 +1406,3 @@ EOY end end end - -if $0 == __FILE__ - suite = Test::Unit::TestSuite.new('YAML') - ObjectSpace.each_object(Class) do |klass| - suite << klass.suite if (Test::Unit::TestCase > klass) - end - require 'test/unit/ui/console/testrunner' - Test::Unit::UI::Console::TestRunner.run(suite).passed? -end |