RAILS_ENV = 'test' require File.expand_path(File.join(File.dirname(__FILE__), '../../../../config/environment.rb')) require 'action_controller/test_process' require 'breakpoint' require 'action_view/helpers/tag_helper' class ElementalHelperTest < Test::Unit::TestCase include ActionView::Helpers::UrlHelper include ActionView::Helpers::TagHelper include ActionView::Helpers::CaptureHelper include ActionView::Helpers::TextHelper include DangDeveloper::ElementalHelper def setup @content = "some content." @options = {:id => "some_id", :class => "css_class", :onClick => "alert('dang')"} end # Self-closing and content tags without content: def test_creates_self_closing_tags DangDeveloper::ElementalHelper.xhtml_content_tags.each do |element| result = eval("#{element}") expected = "<#{element}/>" assert_dom_equal expected, result end DangDeveloper::ElementalHelper.self_closing_tags.each do |element| result = eval("#{element}") expected = "<#{element}/>" assert_dom_equal expected, result end end def test_creates_self_closing_tags_with_options DangDeveloper::ElementalHelper.xhtml_content_tags.each do |element| result = eval("#{element}(@options)") expected = "<#{element} #{tag_options(@options.stringify_keys)}/>" assert_dom_equal expected, result end DangDeveloper::ElementalHelper.self_closing_tags.each do |element| result = eval("#{element}(@options)") expected = "<#{element} #{tag_options(@options.stringify_keys)}/>" assert_dom_equal expected, result end end def test_creates_self_closing_tags_reject_content DangDeveloper::ElementalHelper.self_closing_tags.each do |element| assert_raise(NoMethodError) { eval("#{element} @content") } end end def test_creates_self_closing_tags_with_options_reject_content DangDeveloper::ElementalHelper.self_closing_tags.each do |element| assert_raise(ArgumentError) { eval("#{element} @content, :id => 'dang'") } end end # Content-tags: non-block syntax def test_creates_content_tags DangDeveloper::ElementalHelper.xhtml_content_tags.each do |element| result = eval("#{element} @content") expected = "<#{element}>#{@content}" assert_dom_equal expected, result end end # def test_creates_content_tag_with_content_option # DangDeveloper::ElementalHelper.xhtml_content_tags.each do |element| # result = eval("#{element} :content => @content") # expected = "<#{element}>#{@content}" # assert_dom_equal expected, result # end # end def test_creates_content_tags_with_options DangDeveloper::ElementalHelper.xhtml_content_tags.each do |element| result = eval("#{element} @content, @options") expected = "<#{element} #{tag_options(@options.stringify_keys)}>#{@content}" assert_dom_equal expected, result end end def test_creates_nested_content_tags DangDeveloper::ElementalHelper.xhtml_content_tags.each do |element| result = eval("#{element}(span(@content))") expected = "<#{element}>#{@content}" assert_dom_equal expected, result end end def test_creates_nested_content_tags_with_options DangDeveloper::ElementalHelper.xhtml_content_tags.each do |element| result = eval("#{element}(span(@content, @options), @options)") expected = "<#{element} #{tag_options(@options.stringify_keys)}>#{@content}" assert_dom_equal expected, result end end # Content-tags: block syntax def test_creates_content_tags_with_block DangDeveloper::ElementalHelper.xhtml_content_tags.each do |element| _erbout = '' eval("#{element} {}") expected = "<#{element}>" assert_dom_equal expected, _erbout end end def test_creates_content_tags_with_block_and_options DangDeveloper::ElementalHelper.xhtml_content_tags.each do |element| _erbout = '' eval("#{element}(@options) {}") expected = "<#{element} #{tag_options(@options.stringify_keys)}>" assert_dom_equal expected, _erbout end end def test_creates_nested_content_tags_with_block DangDeveloper::ElementalHelper.xhtml_content_tags.each do |element| _erbout = '' eval("#{element} do em {} end") expected = "<#{element}>" assert_dom_equal expected, _erbout end end def test_creates_nested_content_tags_with_block_and_options DangDeveloper::ElementalHelper.xhtml_content_tags.each do |element| _erbout = '' eval("#{element}(@options) do em(@options) {} end") expected = "<#{element} #{tag_options(@options.stringify_keys)}>" assert_dom_equal expected, _erbout end end end