summaryrefslogtreecommitdiff
path: root/spec/ruby/core/io/set_encoding_spec.rb
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2022-09-28 18:37:17 +0200
committerBenoit Daloze <eregontp@gmail.com>2022-09-28 18:37:17 +0200
commit31cf1bb5256314b69eae92673d3dd5815158ee91 (patch)
tree5ee049f751426794bfe47d0fa847f5621d3a039d /spec/ruby/core/io/set_encoding_spec.rb
parent5a1ab740fc287df8bf4038f19bd28bbb73e181b6 (diff)
Update to ruby/spec@1d9d5c6
Diffstat (limited to 'spec/ruby/core/io/set_encoding_spec.rb')
-rw-r--r--spec/ruby/core/io/set_encoding_spec.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/spec/ruby/core/io/set_encoding_spec.rb b/spec/ruby/core/io/set_encoding_spec.rb
index 5aec6a96c3..bc448acfce 100644
--- a/spec/ruby/core/io/set_encoding_spec.rb
+++ b/spec/ruby/core/io/set_encoding_spec.rb
@@ -188,4 +188,21 @@ describe "IO#set_encoding" do
@io.external_encoding.should == Encoding::UTF_8
@io.internal_encoding.should == Encoding::UTF_16BE
end
+
+ it "saves encoding options passed as a hash in the last argument" do
+ File.write(@name, "\xff")
+ io = File.open(@name)
+ io.set_encoding(Encoding::EUC_JP, Encoding::SHIFT_JIS, invalid: :replace, replace: ".")
+ io.read.should == "."
+ ensure
+ io.close
+ end
+
+ it "raises ArgumentError when no arguments are given" do
+ -> { @io.set_encoding() }.should raise_error(ArgumentError)
+ end
+
+ it "raises ArgumentError when too many arguments are given" do
+ -> { @io.set_encoding(1, 2, 3) }.should raise_error(ArgumentError)
+ end
end