Sha256: 9714f61074208062387e7875ddf82e9c6e656c9f251c2128052a0b387a57096f

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

require File.dirname(__FILE__) + '/helper'

context "Custom Errors (in general)" do

  setup do
    Sinatra.application = nil
  end
  
  specify "override the default 404" do
    
    get_it '/'
    should.be.not_found
    body.should.equal '<h1>Not Found</h1>'
    
    error Sinatra::NotFound do
      'Custom 404'
    end
    
    get_it '/'
    should.be.not_found
    body.should.equal 'Custom 404'
    
  end
  
  specify "override the default 500" do
    Sinatra.application.options.raise_errors = false
    
    get '/' do
      raise 'asdf'
    end
    
    get_it '/'
    status.should.equal 500
    body.should.equal '<h1>Internal Server Error</h1>'
    
    
    error do
      'Custom 500 for ' + request.env['sinatra.error'].message
    end
    
    get_it '/'
    
    get_it '/'
    status.should.equal 500
    body.should.equal 'Custom 500 for asdf'
    
    Sinatra.application.options.raise_errors = true
  end
  
  class UnmappedError < RuntimeError; end
  
  specify "should bring unmapped error back to the top" do
    get '/' do
      raise UnmappedError, 'test'
    end
    
    assert_raises(UnmappedError) do
      get_it '/'
    end
  end

end





Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sinatra-0.2.1 test/custom_error_test.rb
sinatra-0.2.2 test/custom_error_test.rb
sinatra-0.2.0 test/custom_error_test.rb