From 8470fc9902b97a5341d3afc5cab1a361d21e52de Mon Sep 17 00:00:00 2001 From: Carlos Antonio da Silva Date: Wed, 18 Jan 2012 00:26:17 -0200 Subject: [PATCH] Fix errors when running entire suite due to class name collision The Post class is created everywhere in the test suite, and due to that when applying the Array() logic to refactor content_tag_for, some other change to the Post class was breaking record tag tests. The solution is to rename the class to not collide with others already defined in the test suite. --- .../action_view/helpers/record_tag_helper.rb | 4 +- .../test/template/record_tag_helper_test.rb | 46 +++++++++---------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/actionpack/lib/action_view/helpers/record_tag_helper.rb b/actionpack/lib/action_view/helpers/record_tag_helper.rb index 4cd5fa2ad1..1a15459406 100644 --- a/actionpack/lib/action_view/helpers/record_tag_helper.rb +++ b/actionpack/lib/action_view/helpers/record_tag_helper.rb @@ -83,8 +83,8 @@ def div_for(record, *args, &block) def content_tag_for(tag_name, single_or_multiple_records, prefix = nil, options = nil, &block) options, prefix = prefix, nil if prefix.is_a?(Hash) - Array.wrap(single_or_multiple_records).map do |single_record| - content_tag_for_single_record tag_name, single_record, prefix, options, &block + Array(single_or_multiple_records).map do |single_record| + content_tag_for_single_record(tag_name, single_record, prefix, options, &block) end.join("\n").html_safe end diff --git a/actionpack/test/template/record_tag_helper_test.rb b/actionpack/test/template/record_tag_helper_test.rb index 8a9a150910..e6ca015483 100644 --- a/actionpack/test/template/record_tag_helper_test.rb +++ b/actionpack/test/template/record_tag_helper_test.rb @@ -1,6 +1,6 @@ require 'abstract_unit' -class Post +class RecordTagPost extend ActiveModel::Naming include ActiveModel::Conversion attr_accessor :id, :body @@ -20,77 +20,77 @@ class RecordTagHelperTest < ActionView::TestCase def setup super - @post = Post.new + @post = RecordTagPost.new end def test_content_tag_for - expected = %(
  • ) + expected = %(
  • ) actual = content_tag_for(:li, @post) { } assert_dom_equal expected, actual end def test_content_tag_for_prefix - expected = %() + expected = %() actual = content_tag_for(:ul, @post, :archived) { } assert_dom_equal expected, actual end def test_content_tag_for_with_extra_html_options - expected = %() - actual = content_tag_for(:tr, @post, :class => "bar", :style => "background-color: #f0f0f0") { } + expected = %() + actual = content_tag_for(:tr, @post, :class => "special", :style => "background-color: #f0f0f0") { } assert_dom_equal expected, actual end def test_content_tag_for_with_prefix_and_extra_html_options - expected = %() - actual = content_tag_for(:tr, @post, :archived, :class => "bar", :style => "background-color: #f0f0f0") { } + expected = %() + actual = content_tag_for(:tr, @post, :archived, :class => "special", :style => "background-color: #f0f0f0") { } assert_dom_equal expected, actual end def test_block_not_in_erb_multiple_calls - expected = %(
    What a wonderful world!
    ) - actual = div_for(@post, :class => "bar") { @post.body } + expected = %(
    What a wonderful world!
    ) + actual = div_for(@post, :class => "special") { @post.body } assert_dom_equal expected, actual - actual = div_for(@post, :class => "bar") { @post.body } + actual = div_for(@post, :class => "special") { @post.body } assert_dom_equal expected, actual end def test_block_works_with_content_tag_for_in_erb - expected = %(What a wonderful world!) + expected = %(What a wonderful world!) actual = render_erb("<%= content_tag_for(:tr, @post) do %><%= @post.body %><% end %>") assert_dom_equal expected, actual end def test_div_for_in_erb - expected = %(
    What a wonderful world!
    ) - actual = render_erb("<%= div_for(@post, :class => 'bar') do %><%= @post.body %><% end %>") + expected = %(
    What a wonderful world!
    ) + actual = render_erb("<%= div_for(@post, :class => 'special') do %><%= @post.body %><% end %>") assert_dom_equal expected, actual end def test_content_tag_for_collection - post_1 = Post.new { |post| post.id = 101; post.body = "Hello!" } - post_2 = Post.new { |post| post.id = 102; post.body = "World!" } - expected = %(
  • Hello!
  • \n
  • World!
  • ) + post_1 = RecordTagPost.new { |post| post.id = 101; post.body = "Hello!" } + post_2 = RecordTagPost.new { |post| post.id = 102; post.body = "World!" } + expected = %(
  • Hello!
  • \n
  • World!
  • ) actual = content_tag_for(:li, [post_1, post_2]) { |post| post.body } assert_dom_equal expected, actual end def test_div_for_collection - post_1 = Post.new { |post| post.id = 101; post.body = "Hello!" } - post_2 = Post.new { |post| post.id = 102; post.body = "World!" } - expected = %(
    Hello!
    \n
    World!
    ) + post_1 = RecordTagPost.new { |post| post.id = 101; post.body = "Hello!" } + post_2 = RecordTagPost.new { |post| post.id = 102; post.body = "World!" } + expected = %(
    Hello!
    \n
    World!
    ) actual = div_for([post_1, post_2]) { |post| post.body } assert_dom_equal expected, actual end def test_content_tag_for_single_record_is_html_safe - result = div_for(@post, :class => "bar") { @post.body } + result = div_for(@post, :class => "special") { @post.body } assert result.html_safe? end def test_content_tag_for_collection_is_html_safe - post_1 = Post.new { |post| post.id = 101; post.body = "Hello!" } - post_2 = Post.new { |post| post.id = 102; post.body = "World!" } + post_1 = RecordTagPost.new { |post| post.id = 101; post.body = "Hello!" } + post_2 = RecordTagPost.new { |post| post.id = 102; post.body = "World!" } result = content_tag_for(:li, [post_1, post_2]) { |post| post.body } assert result.html_safe? end -- GitLab