Sha256: 6d1637002bec5b168d1542fd64eccf0d3d75ad119ef4eca379a7714b06078a74

Contents?: true

Size: 1.8 KB

Versions: 3

Compression:

Stored size: 1.8 KB

Contents

# frozen_string_literal: true

RSpec.describe HTTP::Features::AutoInflate do
  subject(:feature) { HTTP::Features::AutoInflate.new }
  let(:connection) { double }
  let(:headers) { {} }
  let(:response) do
    HTTP::Response.new(
      :version    => "1.1",
      :status     => 200,
      :headers    => headers,
      :connection => connection
    )
  end

  describe "wrap_response" do
    subject(:result) { feature.wrap_response(response) }

    context "when there is no Content-Encoding header" do
      it "returns original request" do
        expect(result).to be response
      end
    end

    context "for identity Content-Encoding header" do
      let(:headers) { {:content_encoding => "identity"} }

      it "returns original request" do
        expect(result).to be response
      end
    end

    context "for unknown Content-Encoding header" do
      let(:headers) { {:content_encoding => "not-supported"} }

      it "returns original request" do
        expect(result).to be response
      end
    end

    context "for deflate Content-Encoding header" do
      let(:headers) { {:content_encoding => "deflate"} }

      it "returns a HTTP::Response wrapping the inflated response body" do
        expect(result.body).to be_instance_of HTTP::Response::Body
      end
    end

    context "for gzip Content-Encoding header" do
      let(:headers) { {:content_encoding => "gzip"} }

      it "returns a HTTP::Response wrapping the inflated response body" do
        expect(result.body).to be_instance_of HTTP::Response::Body
      end
    end

    context "for x-gzip Content-Encoding header" do
      let(:headers) { {:content_encoding => "x-gzip"} }

      it "returns a HTTP::Response wrapping the inflated response body" do
        expect(result.body).to be_instance_of HTTP::Response::Body
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
http-4.0.2 spec/lib/http/features/auto_inflate_spec.rb
http-4.0.1 spec/lib/http/features/auto_inflate_spec.rb
http-4.0.0 spec/lib/http/features/auto_inflate_spec.rb