diff options
author | Jamis Buck <jamis@37signals.com> | 2005-08-23 09:43:36 +0000 |
---|---|---|
committer | Jamis Buck <jamis@37signals.com> | 2005-08-23 09:43:36 +0000 |
commit | 211617191ed9e6bc9da1cee1bdd134c9b8c3cdfd (patch) | |
tree | 5ac95bcd354c13b194af616b779479e165f1c18c | |
parent | dca4d4e86d7fa753428d24a8ab33dc08a0401581 (diff) | |
download | rails-211617191ed9e6bc9da1cee1bdd134c9b8c3cdfd.tar.gz rails-211617191ed9e6bc9da1cee1bdd134c9b8c3cdfd.tar.bz2 rails-211617191ed9e6bc9da1cee1bdd134c9b8c3cdfd.zip |
Prevent the benchmark module from blowing up if a non-HTTP/1.1 request is processed
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2039 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r-- | actionpack/CHANGELOG | 2 | ||||
-rw-r--r-- | actionpack/lib/action_controller/benchmarking.rb | 2 | ||||
-rw-r--r-- | actionpack/test/controller/benchmark_test.rb | 36 |
3 files changed, 39 insertions, 1 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 165417969b..62a6702ee3 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Prevent the benchmark module from blowing up if a non-HTTP/1.1 request is processed + * Added :use_short_month option to select_month helper to show month names as abbreviations * Make link_to escape the javascript in the confirm option #1964 [nicolas.pouillard@gmail.com] diff --git a/actionpack/lib/action_controller/benchmarking.rb b/actionpack/lib/action_controller/benchmarking.rb index 386a291196..52820c6908 100644 --- a/actionpack/lib/action_controller/benchmarking.rb +++ b/actionpack/lib/action_controller/benchmarking.rb @@ -42,7 +42,7 @@ module ActionController #:nodoc: log_message = "Completed in #{sprintf("%.5f", runtime)} (#{(1 / runtime).floor} reqs/sec)" log_message << rendering_runtime(runtime) if @rendering_runtime log_message << active_record_runtime(runtime) if Object.const_defined?("ActiveRecord") && ActiveRecord::Base.connected? - log_message << " [#{complete_request_uri}]" + log_message << " [#{complete_request_uri rescue "unknown"}]" logger.info(log_message) end end diff --git a/actionpack/test/controller/benchmark_test.rb b/actionpack/test/controller/benchmark_test.rb new file mode 100644 index 0000000000..7e19376101 --- /dev/null +++ b/actionpack/test/controller/benchmark_test.rb @@ -0,0 +1,36 @@ +require File.dirname(__FILE__) + '/../abstract_unit' +require 'test/unit' + +# Provide a static version of the Controllers module instead of the auto-loading version. +# We don't want these tests to fail when dependencies are to blame. +module Controllers + class BenchmarkedController < ActionController::Base + def public_action + render :nothing => true + end + + def rescue_action(e) + raise e + end + end +end + +class BenchmarkTest < Test::Unit::TestCase + class MockLogger + def method_missing(*args) + end + end + + def setup + @controller = Controllers::BenchmarkedController.new + # benchmark doesn't do anything unless a logger is set + @controller.logger = MockLogger.new + @request, @response = ActionController::TestRequest.new, ActionController::TestResponse.new + @request.host = "test.actioncontroller.i" + end + + def test_with_http_1_0_request + @request.host = nil + assert_nothing_raised { get :public_action } + end +end |