aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/test/actionpack/controller/capture_test.rb
diff options
context:
space:
mode:
authorŁukasz Strzałkowski <lukasz.strzalkowski@gmail.com>2013-08-13 22:28:51 +0200
committerŁukasz Strzałkowski <lukasz.strzalkowski@gmail.com>2013-08-25 11:40:10 +0200
commit7620ab08be5cbc3621169d1b0e0bcd628732905b (patch)
tree65c9b1037a824c17def010323c2c4c06148f9322 /actionview/test/actionpack/controller/capture_test.rb
parent34a2e486d6ae9c72ea139d47cf32e023a17c0903 (diff)
downloadrails-7620ab08be5cbc3621169d1b0e0bcd628732905b.tar.gz
rails-7620ab08be5cbc3621169d1b0e0bcd628732905b.tar.bz2
rails-7620ab08be5cbc3621169d1b0e0bcd628732905b.zip
Move actionpack's controller tests
Diffstat (limited to 'actionview/test/actionpack/controller/capture_test.rb')
-rw-r--r--actionview/test/actionpack/controller/capture_test.rb81
1 files changed, 81 insertions, 0 deletions
diff --git a/actionview/test/actionpack/controller/capture_test.rb b/actionview/test/actionpack/controller/capture_test.rb
new file mode 100644
index 0000000000..f8387b27b0
--- /dev/null
+++ b/actionview/test/actionpack/controller/capture_test.rb
@@ -0,0 +1,81 @@
+require 'abstract_unit'
+require 'active_support/logger'
+
+class CaptureController < ActionController::Base
+ self.view_paths = [ File.dirname(__FILE__) + '/../../fixtures/actionpack' ]
+
+ def self.controller_name; "test"; end
+ def self.controller_path; "test"; end
+
+ def content_for
+ @title = nil
+ render :layout => "talk_from_action"
+ end
+
+ def content_for_with_parameter
+ @title = nil
+ render :layout => "talk_from_action"
+ end
+
+ def content_for_concatenated
+ @title = nil
+ render :layout => "talk_from_action"
+ end
+
+ def non_erb_block_content_for
+ @title = nil
+ render :layout => "talk_from_action"
+ end
+
+ def proper_block_detection
+ @todo = "some todo"
+ end
+end
+
+class CaptureTest < ActionController::TestCase
+ tests CaptureController
+
+ def setup
+ super
+ # enable a logger so that (e.g.) the benchmarking stuff runs, so we can get
+ # a more accurate simulation of what happens in "real life".
+ @controller.logger = ActiveSupport::Logger.new(nil)
+
+ @request.host = "www.nextangle.com"
+ end
+
+ def test_simple_capture
+ get :capturing
+ assert_equal "Dreamy days", @response.body.strip
+ end
+
+ def test_content_for
+ get :content_for
+ assert_equal expected_content_for_output, @response.body
+ end
+
+ def test_should_concatentate_content_for
+ get :content_for_concatenated
+ assert_equal expected_content_for_output, @response.body
+ end
+
+ def test_should_set_content_for_with_parameter
+ get :content_for_with_parameter
+ assert_equal expected_content_for_output, @response.body
+ end
+
+ def test_non_erb_block_content_for
+ get :non_erb_block_content_for
+ assert_equal expected_content_for_output, @response.body
+ end
+
+ def test_proper_block_detection
+ get :proper_block_detection
+ assert_equal "some todo", @response.body
+ end
+
+ private
+ def expected_content_for_output
+ "<title>Putting stuff in the title!</title>\nGreat stuff!"
+ end
+end