[前][次][番号順一覧][スレッド一覧]

ruby-changes:59677

From: Nobuyoshi <ko1@a...>
Date: Sat, 11 Jan 2020 10:45:20 +0900 (JST)
Subject: [ruby-changes:59677] 8bb24712de (master): Added assertions for newline decorators

https://git.ruby-lang.org/ruby.git/commit/?id=8bb24712de

From 8bb24712de04cfa8bb1dbfc0c3cee3de6eb4b40d Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Sat, 11 Jan 2020 10:14:53 +0900
Subject: Added assertions for newline decorators


diff --git a/test/ruby/test_econv.rb b/test/ruby/test_econv.rb
index a469614..caa0fca 100644
--- a/test/ruby/test_econv.rb
+++ b/test/ruby/test_econv.rb
@@ -912,6 +912,19 @@ class TestEncodingConverter < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_econv.rb#L912
     assert_raise_with_message(ArgumentError, /\u{3042}/) {
       Encoding::Converter.new("", "", newline: "\u{3042}".to_sym)
     }
+    newlines = %i[universal_newline crlf_newline cr_newline]
+    (2..newlines.size).each do |i|
+      newlines.combination(i) do |opts|
+        assert_raise(Encoding::ConverterNotFoundError, "#{opts} are mutually exclusive") do
+          Encoding::Converter.new("", "", **opts.inject({}) {|o,nl|o[nl]=true;o})
+        end
+      end
+    end
+    newlines.each do |nl|
+      opts = {newline: :universal, nl => true}
+      ec2 = Encoding::Converter.new("", "", **opts)
+      assert_equal(ec1, ec2)
+    end
   end
 
   def test_default_external
diff --git a/test/ruby/test_transcode.rb b/test/ruby/test_transcode.rb
index f405877..3466a3b 100644
--- a/test/ruby/test_transcode.rb
+++ b/test/ruby/test_transcode.rb
@@ -2242,12 +2242,19 @@ class TestTranscode < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_transcode.rb#L2242
                  "#{bug} coderange should not have side effects")
   end
 
-  def test_universal_newline
+  def test_newline_options
     bug11324 = '[ruby-core:69841] [Bug #11324]'
     usascii = Encoding::US_ASCII
     s = "A\nB\r\nC".force_encoding(usascii)
     assert_equal("A\nB\nC", s.encode(usascii, universal_newline: true), bug11324)
     assert_equal("A\nB\nC", s.encode(usascii, universal_newline: true, undef: :replace), bug11324)
     assert_equal("A\nB\nC", s.encode(usascii, universal_newline: true, undef: :replace, replace: ''), bug11324)
+    assert_equal("A\nB\nC", s.encode(usascii, newline: :universal))
+    assert_equal("A\nB\nC", s.encode(usascii, newline: :universal, undef: :replace))
+    assert_equal("A\nB\nC", s.encode(usascii, newline: :universal, undef: :replace, replace: ''))
+    assert_equal("A\rB\r\rC", s.encode(usascii, cr_newline: true))
+    assert_equal("A\rB\r\rC", s.encode(usascii, newline: :cr))
+    assert_equal("A\r\nB\r\r\nC", s.encode(usascii, crlf_newline: true))
+    assert_equal("A\r\nB\r\r\nC", s.encode(usascii, newline: :crlf))
   end
 end
-- 
cgit v0.10.2


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]