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.
This commit is contained in:
Carlos Antonio da Silva 2012-01-18 00:26:17 -02:00
parent b64b7d09c0
commit 8470fc9902
2 changed files with 25 additions and 25 deletions

View File

@ -83,8 +83,8 @@ module ActionView
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

View File

@ -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 = %(<li class="post" id="post_45"></li>)
expected = %(<li class="record_tag_post" id="record_tag_post_45"></li>)
actual = content_tag_for(:li, @post) { }
assert_dom_equal expected, actual
end
def test_content_tag_for_prefix
expected = %(<ul class="archived_post" id="archived_post_45"></ul>)
expected = %(<ul class="archived_record_tag_post" id="archived_record_tag_post_45"></ul>)
actual = content_tag_for(:ul, @post, :archived) { }
assert_dom_equal expected, actual
end
def test_content_tag_for_with_extra_html_options
expected = %(<tr class="post bar" id="post_45" style='background-color: #f0f0f0'></tr>)
actual = content_tag_for(:tr, @post, :class => "bar", :style => "background-color: #f0f0f0") { }
expected = %(<tr class="record_tag_post special" id="record_tag_post_45" style='background-color: #f0f0f0'></tr>)
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 = %(<tr class="archived_post bar" id="archived_post_45" style='background-color: #f0f0f0'></tr>)
actual = content_tag_for(:tr, @post, :archived, :class => "bar", :style => "background-color: #f0f0f0") { }
expected = %(<tr class="archived_record_tag_post special" id="archived_record_tag_post_45" style='background-color: #f0f0f0'></tr>)
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 = %(<div class="post bar" id="post_45">What a wonderful world!</div>)
actual = div_for(@post, :class => "bar") { @post.body }
expected = %(<div class="record_tag_post special" id="record_tag_post_45">What a wonderful world!</div>)
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 = %(<tr class="post" id="post_45">What a wonderful world!</tr>)
expected = %(<tr class="record_tag_post" id="record_tag_post_45">What a wonderful world!</tr>)
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 = %(<div class="post bar" id="post_45">What a wonderful world!</div>)
actual = render_erb("<%= div_for(@post, :class => 'bar') do %><%= @post.body %><% end %>")
expected = %(<div class="record_tag_post special" id="record_tag_post_45">What a wonderful world!</div>)
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 = %(<li class="post" id="post_101">Hello!</li>\n<li class="post" id="post_102">World!</li>)
post_1 = RecordTagPost.new { |post| post.id = 101; post.body = "Hello!" }
post_2 = RecordTagPost.new { |post| post.id = 102; post.body = "World!" }
expected = %(<li class="record_tag_post" id="record_tag_post_101">Hello!</li>\n<li class="record_tag_post" id="record_tag_post_102">World!</li>)
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 = %(<div class="post" id="post_101">Hello!</div>\n<div class="post" id="post_102">World!</div>)
post_1 = RecordTagPost.new { |post| post.id = 101; post.body = "Hello!" }
post_2 = RecordTagPost.new { |post| post.id = 102; post.body = "World!" }
expected = %(<div class="record_tag_post" id="record_tag_post_101">Hello!</div>\n<div class="record_tag_post" id="record_tag_post_102">World!</div>)
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