Skip to content

Commit

Permalink
Clarify rb_str_conv_enc() specs
Browse files Browse the repository at this point in the history
  • Loading branch information
eregon committed Oct 30, 2024
1 parent 13c747b commit 5d9e270
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions optional/capi/string_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -888,16 +888,20 @@ def inspect
end

it "returns the original String if a transcoding error occurs" do
a = [0xEE].pack('C').force_encoding("utf-8")
@s.rb_str_conv_enc(a, Encoding::UTF_8, Encoding::EUC_JP).should equal(a)
a = [0xEE].pack('C').force_encoding(Encoding::UTF_8)
@s.rb_str_conv_enc(a, Encoding::UTF_8, Encoding::EUC_JP).should.equal?(a)
a.encoding.should == Encoding::UTF_8

a = "\x80".b
@s.rb_str_conv_enc(a, Encoding::BINARY, Encoding::UTF_8).should.equal?(a)
a.encoding.should == Encoding::BINARY
end

it "returns a transcoded String" do
a = "\xE3\x81\x82\xE3\x82\x8C".dup.force_encoding("utf-8")
a = "\xE3\x81\x82\xE3\x82\x8C".dup.force_encoding(Encoding::UTF_8)
result = @s.rb_str_conv_enc(a, Encoding::UTF_8, Encoding::EUC_JP)
x = [0xA4, 0xA2, 0xA4, 0xEC].pack('C4').force_encoding('utf-8')
result.should == x.force_encoding("euc-jp")
result.encoding.should equal(Encoding::EUC_JP)
result.should == [0xA4, 0xA2, 0xA4, 0xEC].pack('C4').force_encoding(Encoding::EUC_JP)
result.encoding.should == Encoding::EUC_JP
end

describe "when the String encoding is equal to the destination encoding" do
Expand Down

0 comments on commit 5d9e270

Please sign in to comment.