quick fix
[sinatra.git] / test / error_dsl_test.rb
blobdd4ba9ae2b6a8c0dd3a77ce7e2bf85c200ee4e49
1 require File.dirname(__FILE__) + '/helper'
3 context "Defining Errors" do
5   setup do
6     Sinatra.routes.clear
7     Sinatra.config = nil
8     Sinatra.setup_default_events!
9   end
10   
11   specify "should raise error if no block given" do
12     
13     lambda { error 404 }.should.raise(RuntimeError)
14     lambda { error(404) {} }.should.not.raise
15     
16   end
17   
18   specify "should auto-set status for error events" do
19     error 404 do
20       'custom 404'
21     end
22     
23     get_it '/'
24     
25     should.be.not_found
26   end
27   
28   specify "should handle multiple errors" do
29     
30     error 404, 500 do
31       'multi custom error'
32     end
33     
34     get '/error' do
35       raise 'asdf'
36     end
37     
38     dont_raise_errors do
39       get_it '/error'
40     end
41     
42     status.should.equal 500
43     body.should.equal 'multi custom error'
44     
45     get_it '/'
46     status.should.equal 404
47     
48     body.should.equal 'multi custom error'
49     
50   end
51   
52 end