Permalink
Browse files

Revert "Merge pull request #7797 from senny/7459_prefix_tempalte_asse…

…rtion_variables"

This reverts commit 2bad605.

Conflicts:
	actionpack/CHANGELOG.md

Reason: This added a regression related with shoulda-matchers, since it
is expecting the instance variable @layouts

See https://github.com/thoughtbot/shoulda-matchers/blob/9e1188eea68c47d9a56ce6280e45027da6187ab1/lib/shoulda/matchers/action_controller/render_with_layout_matcher.rb#L74

This will introduce back #7459 but this stable release will be backward compatible.
Related with #8068.
  • Loading branch information...
1 parent 37c60c9 commit 6b7cd20ab39b16cb5111ecca71ffea4fd95a0066 @rafaelfranca rafaelfranca committed Oct 31, 2012
Showing with 31 additions and 23 deletions.
  1. +8 −0 actionpack/CHANGELOG.md
  2. +20 −20 actionpack/lib/action_controller/test_case.rb
  3. +3 −3 actionpack/lib/action_view/test_case.rb
View
@@ -1,5 +1,13 @@
## Rails 3.2.9 (unreleased) ##
+* Revert the rename of internal variable on ActionController::TemplateAssertions to prevent
+ naming collisions. This added a regression related with shoulda-matchers, since it is
+ expecting the [instance variable @layouts](https://github.com/thoughtbot/shoulda-matchers/blob/9e1188eea68c47d9a56ce6280e45027da6187ab1/lib/shoulda/matchers/action_controller/render_with_layout_matcher.rb#L74).
+ This will introduce back #7459 but this stable release will be backward compatible.
+ Fixes #8068
+
+ *Rafael Mendonça França*
+
* Accept :remote as symbolic option for `link_to` helper. *Riley Lynch*
* Warn when the `:locals` option is passed to `assert_template` outside of a view test case
@@ -14,25 +14,25 @@ module TemplateAssertions
end
def setup_subscriptions
- @_partials = Hash.new(0)
- @_templates = Hash.new(0)
- @_layouts = Hash.new(0)
+ @partials = Hash.new(0)
+ @templates = Hash.new(0)
+ @layouts = Hash.new(0)
ActiveSupport::Notifications.subscribe("render_template.action_view") do |name, start, finish, id, payload|
path = payload[:layout]
- @_layouts[path] += 1
+ @layouts[path] += 1
end
ActiveSupport::Notifications.subscribe("!render_template.action_view") do |name, start, finish, id, payload|
path = payload[:virtual_path]
next unless path
partial = path =~ /^.*\/_[^\/]*$/
if partial
- @_partials[path] += 1
- @_partials[path.split("/").last] += 1
- @_templates[path] += 1
+ @partials[path] += 1
+ @partials[path.split("/").last] += 1
+ @templates[path] += 1
else
- @_templates[path] += 1
+ @templates[path] += 1
end
end
end
@@ -43,9 +43,9 @@ def teardown_subscriptions
end
def process(*args)
- @_partials = Hash.new(0)
- @_templates = Hash.new(0)
- @_layouts = Hash.new(0)
+ @partials = Hash.new(0)
+ @templates = Hash.new(0)
+ @layouts = Hash.new(0)
super
end
@@ -74,7 +74,7 @@ def assert_template(options = {}, message = nil)
case options
when NilClass, Regexp, String, Symbol
options = options.to_s if Symbol === options
- rendered = @_templates
+ rendered = @templates
msg = build_message(message,
"expecting <?> but rendering with <?>",
options, rendered.keys.join(', '))
@@ -96,15 +96,15 @@ def assert_template(options = {}, message = nil)
if expected_layout = options[:layout]
msg = build_message(message,
"expecting layout <?> but action rendered <?>",
- expected_layout, @_layouts.keys)
+ expected_layout, @layouts.keys)
case expected_layout
when String
- assert(@_layouts.keys.include?(expected_layout), msg)
+ assert(@layouts.keys.include?(expected_layout), msg)
when Regexp
- assert(@_layouts.keys.any? {|l| l =~ expected_layout }, msg)
+ assert(@layouts.keys.any? {|l| l =~ expected_layout }, msg)
when nil
- assert(@_layouts.empty?, msg)
+ assert(@layouts.empty?, msg)
end
end
@@ -119,19 +119,19 @@ def assert_template(options = {}, message = nil)
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]
+ actual_count = @partials[expected_partial]
msg = build_message(message,
"expecting ? to be rendered ? time(s) but rendered ? time(s)",
expected_partial, expected_count, actual_count)
assert(actual_count == expected_count.to_i, msg)
else
msg = build_message(message,
"expecting partial <?> but action rendered <?>",
- options[:partial], @_partials.keys)
- assert(@_partials.include?(expected_partial), msg)
+ options[:partial], @partials.keys)
+ assert(@partials.include?(expected_partial), msg)
end
else
- assert @_partials.empty?,
+ assert @partials.empty?,
"Expected no partials to be rendered"
end
end
@@ -193,16 +193,16 @@ def view
@_result
@_routes
@controller
- @_layouts
+ @layouts
@locals
@method_name
@output_buffer
- @_partials
+ @partials
@passed
@rendered
@request
@routes
- @_templates
+ @templates
@options
@test_passed
@view

0 comments on commit 6b7cd20

Please sign in to comment.