diff options
author | José Valim <jose.valim@gmail.com> | 2011-04-19 12:25:01 +0200 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2011-04-19 12:26:11 +0200 |
commit | b398520c1406824efd12df6bb57996aa9781f876 (patch) | |
tree | cad818bf1981a31eb10f257692167f10575aafb0 /actionpack/test/controller | |
parent | a66c91723565d37969de4cb46baa50fb8865b02a (diff) | |
download | rails-b398520c1406824efd12df6bb57996aa9781f876.tar.gz rails-b398520c1406824efd12df6bb57996aa9781f876.tar.bz2 rails-b398520c1406824efd12df6bb57996aa9781f876.zip |
Output a redirect to the 500 page if something happens when streaming.
Currently, we output:
"><script type="text/javascript">window.location = "/500.html"</script></html>
Diffstat (limited to 'actionpack/test/controller')
-rw-r--r-- | actionpack/test/controller/new_base/render_streaming_test.rb | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/actionpack/test/controller/new_base/render_streaming_test.rb b/actionpack/test/controller/new_base/render_streaming_test.rb index ffc4b331ec..b8df5ec4e8 100644 --- a/actionpack/test/controller/new_base/render_streaming_test.rb +++ b/actionpack/test/controller/new_base/render_streaming_test.rb @@ -4,7 +4,9 @@ module RenderStreaming class BasicController < ActionController::Base self.view_paths = [ActionView::FixtureResolver.new( "render_streaming/basic/hello_world.html.erb" => "Hello world", - "layouts/application.html.erb" => "<%= yield %>, I'm here!" + "render_streaming/basic/boom.html.erb" => "<%= nil.invalid! %>", + "layouts/application.html.erb" => "<%= yield %>, I'm here!", + "layouts/boom.html.erb" => "<body class=\"<%= nil.invalid! %>\"<%= yield %></body>" )] layout "application" @@ -13,6 +15,14 @@ module RenderStreaming def hello_world end + def layout_exception + render :action => "hello_world", :stream => true, :layout => "boom" + end + + def template_exception + render :action => "boom", :stream => true + end + def skip render :action => "hello_world", :stream => false end @@ -61,6 +71,18 @@ module RenderStreaming assert_body "Hello world, I'm here!" end + test "rendering with layout exception" do + get "/render_streaming/basic/layout_exception" + assert_body "d\r\n<body class=\"\r\n4e\r\n\"><script type=\"text/javascript\">window.location = \"/500.html\"</script></html>\r\n0\r\n\r\n" + assert_streaming! + end + + test "rendering with template exception" do + get "/render_streaming/basic/template_exception" + assert_body "4e\r\n\"><script type=\"text/javascript\">window.location = \"/500.html\"</script></html>\r\n0\r\n\r\n" + assert_streaming! + end + def assert_streaming!(cache="no-cache") assert_status 200 assert_equal nil, headers["Content-Length"] |