Sha256: 0be9d5124df81e67ef917c9af0d54fab8b1b857d7159649bdcfca60e88afab6e

Contents?: true

Size: 1.7 KB

Versions: 7

Compression:

Stored size: 1.7 KB

Contents

require 'rubygems'
require 'require_relative' if RUBY_VERSION < '1.9'
require_relative '../../test_helper.rb'
require_relative './common.rb'

class TestAcceptApp < Sinatra::Base
  use Rack::Accept
  use Rack::MediaType
  register Rack::RespondTo
  helpers Rack::RespondTo::Helpers
  get '/' do
    respond_to do |format|
      format.html { 'html' }
      format.xml { 'xml' }
      format.json { 'json' }
    end
  end
end

describe TestAcceptApp do

  before do
    def app; TestAcceptApp; end
  end

  it 'should return HTML when Accept header requests HTML media type' do
    header 'Accept', 'text/html'
    get '/'
    headers['Content-Type'].must_equal 'text/html'
    response_body.strip.must_equal 'html'
  end

  it 'should return HTML when Accept header is set by Firefox' do
    header 'Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
    get '/'
    headers['Content-Type'].must_equal 'text/html'
    response_body.strip.must_equal 'html'
  end

  it 'should return XML when Accept header requests XML media type' do
    header 'Accept', 'application/xml'
    get '/'
    headers['Content-Type'].must_equal 'application/xml'
    response_body.strip.must_equal 'xml'
  end

  it 'should return JSON when Accept header requests JSON media type' do
    header 'Accept', 'application/json'
    get '/'
    headers['Content-Type'].must_equal 'application/json'
    response_body.strip.must_equal 'json'
  end

  it 'should return default media type when no Accept header is set' do
    get '/'
    headers['Content-Type'].must_equal 'application/xml'
  end

  it 'should return error when unknown Accept header is set' do
    header 'Accept', 'unknown/header'
    get '/'
    status.must_equal 406
  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
deltacloud-core-1.1.3 tests/helpers/rack/rack_accept_test.rb
deltacloud-core-1.1.2 tests/helpers/rack/rack_accept_test.rb
deltacloud-core-1.1.1 tests/helpers/rack/rack_accept_test.rb
deltacloud-core-1.1.0 tests/helpers/rack/rack_accept_test.rb
deltacloud-core-1.0.5 tests/helpers/rack/rack_accept_test.rb
deltacloud-core-1.0.4 tests/helpers/rack/rack_accept_test.rb
deltacloud-core-1.0.3 tests/helpers/rack/rack_accept_test.rb