Sha256: 6195915dbe550b5f3a6b59179f69c2b9a0b8d7b15d2db7138338d5304c941b8a

Contents?: true

Size: 1.85 KB

Versions: 34

Compression:

Stored size: 1.85 KB

Contents

require 'spec_helper'

describe Github::Request::Jsonize do

  let(:middleware) { described_class.new(lambda { |env| env }) }

  def process(body, content_type=nil)
    env = {:body => body, :request_headers => {} }
    env[:request_headers]['Content-Type'] = content_type if content_type
    middleware.call(env)
  end

  def result_body() result[:body] end
  def result_type() result[:request_headers]['Content-Type'] end

  context 'no body' do
    let(:result) { process(nil) }

    it "doesn't change body" do
      result_body.should be_nil
    end

    it "doesn't add content type" do
      result_type.should be_nil
    end
  end

  context 'empty body' do
    let(:result) { process('') }

    it "doesn't change body" do
      result_body.should be_empty
    end

    it "doesn't add conten type" do
      result_type.should be_nil
    end
  end

  context 'string body' do
    let(:result) { process('{"a":1}')}

    it "doesn't change body" do
      result_body.should eql '{"a":1}'
    end

    it "adds content type" do
      result_type.should eql 'application/json'
    end
  end

  context "object body" do
    let(:result) { process({:a => 1})}

    it "encodes body" do
      result_body.should eql '{"a":1}'
    end

    it "adds content type" do
      result_type.should eql 'application/json'
    end
  end

  context "empty object body" do
    let(:result) { process({})}

    it "encodes body" do
      result_body.should eql '{}'
    end

    it "adds content type" do
      result_type.should eql 'application/json'
    end
  end

  context 'object body with json type' do
    let(:result) { process({:a => 1}, 'application/json; charset=utf-8')}

    it "encodes body" do
      result_body.should eql '{"a":1}'
    end

    it "doesn't change content type" do
      result_type.should eql 'application/json; charset=utf-8'
    end
  end

end # Github::Request::Jsonize

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
github_api-0.10.1 spec/github/request/jsonize_spec.rb
github_api-0.10.0 spec/github/request/jsonize_spec.rb
github_api-0.9.7 spec/github/request/jsonize_spec.rb
github_api-0.9.6 spec/github/request/jsonize_spec.rb
github_api-0.9.5 spec/github/request/jsonize_spec.rb
github_api-0.9.4 spec/github/request/jsonize_spec.rb
github_api-0.9.3 spec/github/request/jsonize_spec.rb
github_api-0.9.2 spec/github/request/jsonize_spec.rb
github_api-0.9.1 spec/github/request/jsonize_spec.rb
github_api-0.9.0 spec/github/request/jsonize_spec.rb
github_api-0.8.11 spec/github/request/jsonize_spec.rb
github_api-0.8.10 spec/github/request/jsonize_spec.rb
github_api-0.8.9 spec/github/request/jsonize_spec.rb
github_api-0.8.8 spec/github/request/jsonize_spec.rb
github_api-0.8.7 spec/github/request/jsonize_spec.rb
github_api-0.8.6 spec/github/request/jsonize_spec.rb
github_api-0.8.5 spec/github/request/jsonize_spec.rb
github_api-0.8.4 spec/github/request/jsonize_spec.rb
github_api-0.8.3 spec/github/request/jsonize_spec.rb
github_api-0.8.2 spec/github/request/jsonize_spec.rb