diff options
Diffstat (limited to 'spec/ruby/core/encoding')
-rw-r--r-- | spec/ruby/core/encoding/replicate_spec.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/spec/ruby/core/encoding/replicate_spec.rb b/spec/ruby/core/encoding/replicate_spec.rb index 717e9cea72..45727a5c0d 100644 --- a/spec/ruby/core/encoding/replicate_spec.rb +++ b/spec/ruby/core/encoding/replicate_spec.rb @@ -15,6 +15,8 @@ describe "Encoding#replicate" do name = @prefix + '-ASCII' e = Encoding::ASCII.replicate(name) e.name.should == name + Encoding.find(name).should == e + "a".force_encoding(e).valid_encoding?.should be_true "\x80".force_encoding(e).valid_encoding?.should be_false end @@ -23,6 +25,8 @@ describe "Encoding#replicate" do name = @prefix + 'UTF-8' e = Encoding::UTF_8.replicate(name) e.name.should == name + Encoding.find(name).should == e + "a".force_encoding(e).valid_encoding?.should be_true "\u3042".force_encoding(e).valid_encoding?.should be_true "\x80".force_encoding(e).valid_encoding?.should be_false @@ -32,6 +36,8 @@ describe "Encoding#replicate" do name = @prefix + 'UTF-16-BE' e = Encoding::UTF_16BE.replicate(name) e.name.should == name + Encoding.find(name).should == e + "a".force_encoding(e).valid_encoding?.should be_false "\x30\x42".force_encoding(e).valid_encoding?.should be_true "\x80".force_encoding(e).valid_encoding?.should be_false @@ -40,7 +46,22 @@ describe "Encoding#replicate" do it "returns a replica of ISO-2022-JP" do name = @prefix + 'ISO-2022-JP' e = Encoding::ISO_2022_JP.replicate(name) + Encoding.find(name).should == e + e.name.should == name e.dummy?.should be_true end + + # NOTE: it's unclear of the value of this (for the complexity cost of it), + # but it is the current CRuby behavior. + it "can be associated with a String" do + name = @prefix + '-US-ASCII' + e = Encoding::US_ASCII.replicate(name) + e.name.should == name + Encoding.find(name).should == e + + s = "abc".force_encoding(e) + s.encoding.should == e + s.encoding.name.should == name + end end |