aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/dispatch
diff options
context:
space:
mode:
authorDaniel Stutzman <dstutzman@thinkpad.(none)>2011-05-07 16:35:56 -0600
committerDaniel Stutzman <dstutzman@thinkpad.(none)>2011-05-07 16:35:56 -0600
commit2ab42dcc3ed0d37e64da10063b4162bd8e8cb4bf (patch)
tree9c94e9f29fefc2d8d189c702457ce57fbcffe0b8 /actionpack/test/dispatch
parent030e1d06ca36e1ed235f8e34ac9bfb6906b12dce (diff)
downloadrails-2ab42dcc3ed0d37e64da10063b4162bd8e8cb4bf.tar.gz
rails-2ab42dcc3ed0d37e64da10063b4162bd8e8cb4bf.tar.bz2
rails-2ab42dcc3ed0d37e64da10063b4162bd8e8cb4bf.zip
New test: setting response_body to a Proc should be supported.
Diffstat (limited to 'actionpack/test/dispatch')
-rw-r--r--actionpack/test/dispatch/response_body_is_proc_test.rb38
1 files changed, 38 insertions, 0 deletions
diff --git a/actionpack/test/dispatch/response_body_is_proc_test.rb b/actionpack/test/dispatch/response_body_is_proc_test.rb
new file mode 100644
index 0000000000..86d788b845
--- /dev/null
+++ b/actionpack/test/dispatch/response_body_is_proc_test.rb
@@ -0,0 +1,38 @@
+require 'abstract_unit'
+
+class ResponseBodyIsProcTest < ActionDispatch::IntegrationTest
+ class TestController < ActionController::Base
+ def test
+ request.session_options[:renew] = true
+ self.response_body = proc { |response, output|
+ puts caller
+ output.write 'Hello'
+ }
+ end
+
+ def rescue_action(e) raise end
+ end
+
+ def test_simple_get
+ with_test_route_set do
+ get '/test'
+ assert_response :success
+ assert_equal 'Hello', response.body
+ end
+ end
+
+ private
+ def with_test_route_set(options = {})
+ with_routing do |set|
+ set.draw do
+ match ':action', :to => ::ResponseBodyIsProcTest::TestController
+ end
+
+ @app = self.class.build_app(set) do |middleware|
+ middleware.delete "ActionDispatch::ShowExceptions"
+ end
+
+ yield
+ end
+ end
+end