def render_403(options={})
@project = nil
- @message = options[:message] || :notice_not_authorized
- @message = l(@message) if @message.is_a?(Symbol)
- respond_to do |format|
- format.html { render :template => "common/403", :layout => use_layout, :status => 403 }
- format.atom { head 403 }
- format.xml { head 403 }
- format.js { head 403 }
- format.json { head 403 }
- end
+ render_error({:message => :notice_not_authorized, :status => 403}.merge(options))
return false
end
- def render_404
- respond_to do |format|
- format.html { render :template => "common/404", :layout => use_layout, :status => 404 }
- format.atom { head 404 }
- format.xml { head 404 }
- format.js { head 404 }
- format.json { head 404 }
- end
+ def render_404(options={})
+ render_error({:message => :notice_file_not_found, :status => 404}.merge(options))
return false
end
- def render_error(msg)
+ # Renders an error response
+ def render_error(arg)
+ arg = {:message => arg} unless arg.is_a?(Hash)
+
+ @message = arg[:message]
+ @message = l(@message) if @message.is_a?(Symbol)
+ @status = arg[:status] || 500
+
respond_to do |format|
- format.html {
- flash.now[:error] = msg
- render :text => '', :layout => use_layout, :status => 500
+ format.html {
+ render :template => 'common/error', :layout => use_layout, :status => @status
}
- format.atom { head 500 }
- format.xml { head 500 }
- format.js { head 500 }
- format.json { head 500 }
+ format.atom { head @status }
+ format.xml { head @status }
+ format.js { head @status }
+ format.json { head @status }
end
end
get :new, :project_id => 1
assert_response 500
- assert_not_nil flash[:error]
- assert_tag :tag => 'div', :attributes => { :class => /error/ },
- :content => /No default issue/
+ assert_error_tag :content => /No default issue/
end
def test_get_new_with_no_tracker_should_display_an_error
get :new, :project_id => 1
assert_response 500
- assert_not_nil flash[:error]
- assert_tag :tag => 'div', :attributes => { :class => /error/ },
- :content => /No tracker/
+ assert_error_tag :content => /No tracker/
end
def test_update_new_form
def self.repository_configured?(vendor)
File.directory?(repository_path(vendor))
end
+
+ def assert_error_tag(options={})
+ assert_tag({:tag => 'p', :attributes => { :id => 'errorExplanation' }}.merge(options))
+ end
# Shoulda macros
def self.should_render_404
should_respond_with :not_found
- should_render_template 'common/404'
+ should_render_template 'common/error'
end
def self.should_have_before_filter(expected_method, options = {})