Sha256: 42e6b17c14415c94b27ae5fa5f85eb9649b4982ced8032ecd376135b69a58e3c

Contents?: true

Size: 1.1 KB

Versions: 2

Compression:

Stored size: 1.1 KB

Contents

require 'jwe/zip/def'

describe JWE::Zip do
  describe '.for' do
    it 'returns a class for the specified zip' do
      expect(JWE::Zip.for('DEF')).to eq JWE::Zip::Def
    end

    it 'raises an error for a not-implemented zip' do
      expect { JWE::Zip.for('BZIP2+JPG') }.to raise_error(JWE::NotImplementedError)
    end
  end
end

describe JWE::Zip::Def do
  context 'with the orginal payload' do
    it 'deflates and inflates to original payload' do
      deflate = JWE::Zip::Def.new
      deflated = deflate.compress('hello world')
      expect(deflate.decompress(deflated)).to eq 'hello world'
    end

    it 'deflates and inflates a large payload' do
      deflate = JWE::Zip::Def.new
      chars = [*'0'..'9', *'A'..'Z', *'a'..'z']
      payload = Array.new(1_000_000) { chars.sample }.join
      deflated = deflate.compress(payload)
      expect(deflate.decompress(deflated)).to eq payload
    end
  end

  it 'can deflate an RFC 1950 compressed message' do
    deflated = Zlib::Deflate.deflate('hello world')
    deflate = JWE::Zip::Def.new
    expect(deflate.decompress(deflated)).to eq 'hello world'
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
jwe-0.4.0 spec/jwe/zip_spec.rb
jwe-0.3.1 spec/jwe/zip_spec.rb