diff options
Diffstat (limited to 'spec/ruby/core/io/internal_encoding_spec.rb')
| -rw-r--r-- | spec/ruby/core/io/internal_encoding_spec.rb | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/spec/ruby/core/io/internal_encoding_spec.rb b/spec/ruby/core/io/internal_encoding_spec.rb index 10ebf28707..9963a93f33 100644 --- a/spec/ruby/core/io/internal_encoding_spec.rb +++ b/spec/ruby/core/io/internal_encoding_spec.rb @@ -1,4 +1,5 @@ require_relative '../../spec_helper' +require_relative 'fixtures/classes' describe :io_internal_encoding, shared: true do describe "when Encoding.default_internal is not set" do @@ -8,25 +9,25 @@ describe :io_internal_encoding, shared: true do it "returns nil if the internal encoding is not set" do @io = new_io @name, @object - @io.internal_encoding.should be_nil + @io.internal_encoding.should == nil end it "returns nil if Encoding.default_internal is changed after the instance is created" do @io = new_io @name, @object Encoding.default_internal = Encoding::IBM437 - @io.internal_encoding.should be_nil + @io.internal_encoding.should == nil end it "returns the value set when the instance was created" do @io = new_io @name, "#{@object}:utf-8:euc-jp" Encoding.default_internal = Encoding::IBM437 - @io.internal_encoding.should equal(Encoding::EUC_JP) + @io.internal_encoding.should.equal?(Encoding::EUC_JP) end it "returns the value set by #set_encoding" do @io = new_io @name, @object @io.set_encoding(Encoding::US_ASCII, Encoding::IBM437) - @io.internal_encoding.should equal(Encoding::IBM437) + @io.internal_encoding.should.equal?(Encoding::IBM437) end end @@ -38,13 +39,13 @@ describe :io_internal_encoding, shared: true do it "returns nil" do @io = new_io @name, @object - @io.internal_encoding.should be_nil + @io.internal_encoding.should == nil end it "returns nil regardless of Encoding.default_internal changes" do @io = new_io @name, @object Encoding.default_internal = Encoding::IBM437 - @io.internal_encoding.should be_nil + @io.internal_encoding.should == nil end end @@ -56,41 +57,41 @@ describe :io_internal_encoding, shared: true do it "returns the value of Encoding.default_internal when the instance was created if the internal encoding is not set" do @io = new_io @name, @object - @io.internal_encoding.should equal(Encoding::IBM866) + @io.internal_encoding.should.equal?(Encoding::IBM866) end it "does not change when Encoding.default_internal is changed" do @io = new_io @name, @object Encoding.default_internal = Encoding::IBM437 - @io.internal_encoding.should equal(Encoding::IBM866) + @io.internal_encoding.should.equal?(Encoding::IBM866) end it "returns the internal encoding set when the instance was created" do @io = new_io @name, "#{@object}:utf-8:euc-jp" - @io.internal_encoding.should equal(Encoding::EUC_JP) + @io.internal_encoding.should.equal?(Encoding::EUC_JP) end it "does not change when set and Encoding.default_internal is changed" do @io = new_io @name, "#{@object}:utf-8:euc-jp" Encoding.default_internal = Encoding::IBM437 - @io.internal_encoding.should equal(Encoding::EUC_JP) + @io.internal_encoding.should.equal?(Encoding::EUC_JP) end it "returns the value set by #set_encoding" do @io = new_io @name, @object @io.set_encoding(Encoding::US_ASCII, Encoding::IBM437) - @io.internal_encoding.should equal(Encoding::IBM437) + @io.internal_encoding.should.equal?(Encoding::IBM437) end it "returns nil when Encoding.default_external is BINARY and the internal encoding is not set" do Encoding.default_external = Encoding::BINARY @io = new_io @name, @object - @io.internal_encoding.should be_nil + @io.internal_encoding.should == nil end it "returns nil when the external encoding is BINARY and the internal encoding is not set" do @io = new_io @name, "#{@object}:binary" - @io.internal_encoding.should be_nil + @io.internal_encoding.should == nil end end end @@ -112,6 +113,12 @@ describe "IO#internal_encoding" do Encoding.default_internal = @internal end + it "can be retrieved from a closed stream" do + io = IOSpecs.io_fixture("lines.txt", "r") + io.close + io.internal_encoding.should.equal?(Encoding.default_internal) + end + describe "with 'r' mode" do it_behaves_like :io_internal_encoding, nil, "r" end |
