diff options
Diffstat (limited to 'actionpack/test/controller/flash_test.rb')
-rw-r--r-- | actionpack/test/controller/flash_test.rb | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/actionpack/test/controller/flash_test.rb b/actionpack/test/controller/flash_test.rb new file mode 100644 index 0000000000..033477fe39 --- /dev/null +++ b/actionpack/test/controller/flash_test.rb @@ -0,0 +1,69 @@ +require File.dirname(__FILE__) + '/../abstract_unit' + +class FlashTest < Test::Unit::TestCase + class TestController < ActionController::Base + def set_flash + flash["that"] = "hello" + render_text "hello" + end + + def use_flash + @flashy = flash["that"] + render_text "hello" + end + + def use_flash_and_keep_it + @flashy = flash["that"] + keep_flash + render_text "hello" + end + + def rescue_action(e) + raise unless ActionController::MissingTemplate === e + end + end + + def setup + initialize_request_and_response + end + + def test_flash + @request.action = "set_flash" + response = process_request + + @request.action = "use_flash" + first_response = process_request + assert_equal "hello", first_response.template.assigns["flash"]["that"] + assert_equal "hello", first_response.template.assigns["flashy"] + + second_response = process_request + assert_nil second_response.template.assigns["flash"]["that"], "On second flash" + end + + def test_keep_flash + @request.action = "set_flash" + response = process_request + + @request.action = "use_flash_and_keep_it" + first_response = process_request + assert_equal "hello", first_response.template.assigns["flash"]["that"] + assert_equal "hello", first_response.template.assigns["flashy"] + + @request.action = "use_flash" + second_response = process_request + assert_equal "hello", second_response.template.assigns["flash"]["that"], "On second flash" + + third_response = process_request + assert_nil third_response.template.assigns["flash"]["that"], "On third flash" + end + + private + def initialize_request_and_response + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + end + + def process_request + TestController.process(@request, @response) + end +end
\ No newline at end of file |