aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/template
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2009-03-13 00:25:05 -0700
committerJeremy Kemper <jeremy@bitsweat.net>2009-03-13 00:25:05 -0700
commit3d260760f035c5aab11ab218881ed36e3046157b (patch)
tree4d75d5d2bcb6693a4768abc2ddc581c27196d227 /actionpack/test/template
parent91d274059536f09dffd87141e570c3eab9ebd9b4 (diff)
downloadrails-3d260760f035c5aab11ab218881ed36e3046157b.tar.gz
rails-3d260760f035c5aab11ab218881ed36e3046157b.tar.bz2
rails-3d260760f035c5aab11ab218881ed36e3046157b.zip
Introduce flush_output_buffer to append the buffer to the response body then start a new buffer. Useful for pushing custom parts to the response body without disrupting template rendering.
Diffstat (limited to 'actionpack/test/template')
-rw-r--r--actionpack/test/template/output_buffer_test.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/actionpack/test/template/output_buffer_test.rb b/actionpack/test/template/output_buffer_test.rb
new file mode 100644
index 0000000000..6d8eab63dc
--- /dev/null
+++ b/actionpack/test/template/output_buffer_test.rb
@@ -0,0 +1,35 @@
+require 'abstract_unit'
+
+class OutputBufferTest < ActionController::TestCase
+ class TestController < ActionController::Base
+ def index
+ render :text => 'foo'
+ end
+ end
+
+ tests TestController
+
+ def test_flush_output_buffer
+ # Start with the default body parts
+ get :index
+ assert_equal ['foo'], @response.body_parts
+ assert_nil @response.template.output_buffer
+
+ # Nil output buffer is skipped
+ @response.template.flush_output_buffer
+ assert_nil @response.template.output_buffer
+ assert_equal ['foo'], @response.body_parts
+
+ # Empty output buffer is skipped
+ @response.template.output_buffer = ''
+ @response.template.flush_output_buffer
+ assert_equal '', @response.template.output_buffer
+ assert_equal ['foo'], @response.body_parts
+
+ # Flushing appends the output buffer to the body parts
+ @response.template.output_buffer = 'bar'
+ @response.template.flush_output_buffer
+ assert_equal '', @response.template.output_buffer
+ assert_equal ['foo', 'bar'], @response.body_parts
+ end
+end