summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-01-11 10:14:53 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-01-11 10:42:21 +0900
commit8bb24712de04cfa8bb1dbfc0c3cee3de6eb4b40d (patch)
treeb50a42ec3971923ffdd4aec007fc0e163f15c751 /test
parent52a9e4ffd3c868214ded91592cf12837bc60f80e (diff)
Added assertions for newline decorators
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_econv.rb13
-rw-r--r--test/ruby/test_transcode.rb9
2 files changed, 21 insertions, 1 deletions
diff --git a/test/ruby/test_econv.rb b/test/ruby/test_econv.rb
index a469614d84..caa0fca8b7 100644
--- a/test/ruby/test_econv.rb
+++ b/test/ruby/test_econv.rb
@@ -912,6 +912,19 @@ class TestEncodingConverter < Test::Unit::TestCase
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 f405877dd5..3466a3bf93 100644
--- a/test/ruby/test_transcode.rb
+++ b/test/ruby/test_transcode.rb
@@ -2242,12 +2242,19 @@ class TestTranscode < Test::Unit::TestCase
"#{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