diff options
author | Yves Senn <yves.senn@gmail.com> | 2012-10-04 20:55:02 +0200 |
---|---|---|
committer | Yves Senn <yves.senn@gmail.com> | 2012-10-06 12:23:02 +0200 |
commit | af677da84c6ec6140f7e89ff64ce30e50de325a0 (patch) | |
tree | 3949860cfea9eecc9260ee4d0a1c28451e422eb7 /actionpack/lib | |
parent | 05e9258164658b1fd948311e9d075f5d7a60cbdb (diff) | |
download | rails-af677da84c6ec6140f7e89ff64ce30e50de325a0.tar.gz rails-af677da84c6ec6140f7e89ff64ce30e50de325a0.tar.bz2 rails-af677da84c6ec6140f7e89ff64ce30e50de325a0.zip |
can't pass :locals to #assert_template without a view test case. Closes #3415
the documentation on #assert_template states that the :locals option is
only available in view test cases:
# In a view test case, you can also assert that specific locals are passed
# to partials:
I added a warning when it's passed in an inapropriate context to prevent
a NoMethodError.
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_controller/test_case.rb | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index 3af378173a..ace5a2c822 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -123,9 +123,13 @@ module ActionController if expected_partial = options[:partial] 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]) + if defined?(@locals) + actual_locals = @locals[expected_partial.to_s.sub(/^_/,'')] + expected_locals.each_pair do |k,v| + assert_equal(v, actual_locals[k]) + end + else + warn "the :locals option to #assert_template is only supported in a ActionView::TestCase" end elsif expected_count = options[:count] actual_count = @_partials[expected_partial] |