Sha256: 4149cae705535e0c4d3732c41aa1119fe01b3ec24e67ee4c81b8136e05487057

Contents?: true

Size: 1.49 KB

Versions: 7

Compression:

Stored size: 1.49 KB

Contents

require 'spec_helper'
require 'goliath/rack/formatters/plist'

describe Goliath::Rack::Formatters::PLIST do
  # this sucks, but I had install problems with nokogiri-plist
  # and I would rather not use an alternative library that requires libxml or rexml
  before(:all) do
    class Object
      def to_plist(*args) "plist: #{to_s}" end
    end
  end

  after(:all) do
    class Object
      undef to_plist
    end
  end

  it 'accepts an app' do
    lambda { Goliath::Rack::Formatters::PLIST.new('my app') }.should_not raise_error
  end

  describe 'with a formatter' do
    before(:each) do
      @app = mock('app').as_null_object
      @m = Goliath::Rack::Formatters::PLIST.new(@app)
    end

    it 'formats the body into plist if content-type is plist' do
      @app.should_receive(:call).and_return([200, {'Content-Type' => 'application/x-plist'}, {:a => 1, :b => 2}])

      status, header, body = @m.call({})
      body.should == ["plist: {:a=>1, :b=>2}"]
    end

    it "doesn't format to plist if the type is not plist" do
      @app.should_receive(:call).and_return([200, {'Content-Type' => 'application/xml'}, {:a => 1, :b => 2}])
      status, header, body = @m.call({})
      status.should == 200
      header.should == {'Content-Type' => 'application/xml'}

      body[:a].should == 1
    end

    it 'returns the status and headers' do
      @app.should_receive(:call).and_return([200, {'Content-Type' => 'application/xml'}, {:a => 1, :b => 2}])

      status, header, body = @m.call({})
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
goliath-1.0.3 spec/unit/rack/formatters/plist_spec.rb
goliath-1.0.2 spec/unit/rack/formatters/plist_spec.rb
goliath-1.0.1 spec/unit/rack/formatters/plist_spec.rb
goliath-1.0.0 spec/unit/rack/formatters/plist_spec.rb
goliath-1.0.0.beta.1 spec/unit/rack/formatters/plist_spec.rb
goliath-0.9.4 spec/unit/rack/formatters/plist_spec.rb
goliath-0.9.2 spec/unit/rack/formatters/plist_spec.rb