Updated tests
[sinatra.git] / test / sinatra / event_test.rb
blob20c552e440c650fcbb0e5f9a6c31c0e68df718f2
1 require File.dirname(__FILE__) + '/../helper'
3 describe "Event" do
4   
5   it "should return 500 if exception thrown" do
6     Sinatra::Environment.prepare_loggers stub_everything
8     event = Sinatra::Event.new(:get, '/') do
9       raise 'whaaaa!'
10     end
11     
12     result = event.attend(stub_everything(:params => {}, :path_info => '/'))
13     
14     result.status.should.equal 500
15   end
16   
17   it "custom error if present" do
18     Sinatra::Environment.prepare_loggers stub_everything
19     
20     event = Sinatra::Event.new(:get, '404') do
21       body 'custom 404'
22     end
24     Sinatra::EventManager.expects(:not_found).never
25     Sinatra::EventManager.determine_event(:get, '/sdf')
26   end
27   
28   it "should show default 404 if custom not present" do
29     Sinatra::EventManager.expects(:not_found)
30     Sinatra::EventManager.determine_event(:get, '/asdfsasd')
31   end
33   it "should not execute event if halted" do
34     Sinatra::Event.before_filters << lambda { throw :halt, 'whoa!' }
35     event = Sinatra::Event.new(:get, '/') do
36       foo
37     end
38     event.expects(:foo).never
39     get_it('/').should.equal 'whoa!'
40   end
41     
42 end