Sha256: b338daf6696787da3ec5d060049fc417bf45e4d265f2644682d0c1e783af23ff

Contents?: true

Size: 1.45 KB

Versions: 19

Compression:

Stored size: 1.45 KB

Contents

require File.expand_path('../../../../spec_helper', __FILE__)
require 'zlib'

describe 'Zlib::Inflate#<<' do
  before :all do
    @foo_deflated = "x\234K\313\317\a\000\002\202\001E"
  end

  before :each do
    @z = Zlib::Inflate.new
  end

  after :each do
    @z.close unless @z.closed?
  end

  it 'appends data to the input stream' do
    @z << @foo_deflated
    @z.finish.should == 'foo'
  end

  it 'treats nil argument as the end of compressed data' do
    @z = Zlib::Inflate.new
    @z << @foo_deflated << nil
    @z.finish.should == 'foo'
  end

  it 'just passes through the data after nil argument' do
    @z = Zlib::Inflate.new
    @z << @foo_deflated << nil
    @z << "-after_nil_data"
    @z.finish.should == 'foo-after_nil_data'
  end

  it 'properly handles data in chunks' do
    # add bytes, one by one
    @foo_deflated.each_byte { |d| @z << d.chr}
    @z.finish.should == "foo"
  end

  it 'properly handles incomplete data' do
    # add bytes, one by one
    @foo_deflated[0, 5].each_byte { |d| @z << d.chr}
    lambda { @z.finish }.should raise_error(Zlib::BufError)
  end

  it 'properly handles excessive data, byte-by-byte' do
    # add bytes, one by one
    data = @foo_deflated * 2
    data.each_byte { |d| @z << d.chr}
    @z.finish.should == "foo" + @foo_deflated
  end

  it 'properly handles excessive data, in one go' do
    # add bytes, one by one
    data = @foo_deflated * 2
    @z << data
    @z.finish.should == "foo" + @foo_deflated
  end
end

Version data entries

19 entries across 19 versions & 2 rubygems

Version Path
rhodes-7.6.0 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-7.5.1 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-7.4.1 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-7.1.17 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-6.2.0 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-6.0.11 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-5.5.18 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-5.5.17 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-5.5.15 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-5.5.0.22 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-5.5.2 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-5.5.0.7 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-5.5.0.3 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-5.5.0 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
tauplatform-1.0.3 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
tauplatform-1.0.2 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
tauplatform-1.0.1 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-3.5.1.12 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb
rhodes-3.4.2 spec/framework_spec/app/spec/library/zlib/inflate/append_spec.rb