diff options
author | David Chelimsky <dchelimsky@gmail.com> | 2010-06-22 01:40:22 -0500 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-06-22 14:51:22 +0200 |
commit | 0576ec4ddd5f806c6ae98184d28391fc239db1ef (patch) | |
tree | a0563ebe3f34e2f99c25554c2e57d38d8b37067c /actionpack/lib/action_controller | |
parent | 02399a1184d0f87b14af461fab731120d92c5ad8 (diff) | |
download | rails-0576ec4ddd5f806c6ae98184d28391fc239db1ef.tar.gz rails-0576ec4ddd5f806c6ae98184d28391fc239db1ef.tar.bz2 rails-0576ec4ddd5f806c6ae98184d28391fc239db1ef.zip |
Add support for specifying locals in view tests with assert template [#4927 state:resolved]
Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'actionpack/lib/action_controller')
-rw-r--r-- | actionpack/lib/action_controller/test_case.rb | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index 7f9eb2cfd1..26a385011f 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -40,7 +40,7 @@ module ActionController ActiveSupport::Notifications.unsubscribe("!render_template.action_view") end - # Asserts that the request was rendered with the appropriate template file or partials + # Asserts that the request was rendered with the appropriate template file or partials. # # ==== Examples # @@ -53,6 +53,12 @@ module ActionController # # assert that no partials were rendered # assert_template :partial => false # + # In a view test case, you can also assert that specific locals are passed + # to partials: + # + # # assert that the "_customer" partial was rendered with a specific object + # assert_template :partial => '_customer', :locals => { :customer => @customer } + # def assert_template(options = {}, message = nil) validate_request! @@ -72,9 +78,13 @@ module ActionController end when Hash if expected_partial = options[:partial] - if expected_count = options[:count] + if expected_locals = options[:locals] + actual_locals = @locals[expected_partial.to_s.sub(/^_/,'')] + expected_locals.each_pair do |k,v| + assert_equal(v, actual_locals[k]) + end + elsif expected_count = options[:count] actual_count = @partials[expected_partial] - # actual_count = found.nil? ? 0 : found[1] msg = build_message(message, "expecting ? to be rendered ? time(s) but rendered ? time(s)", expected_partial, expected_count, actual_count) |