Changeset 49

Show
Ignore:
Timestamp:
05/21/2006 16:15:46 (3 years ago)
Author:
tec
Message:
  • test/test_markaby.rb: test Builder instead of Template
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/test/test_markaby.rb

    r48 r49  
    1414class MarkabyTest < Test::Unit::TestCase 
    1515   
    16   def mab(string, assigns = {}, helpers = nil) 
    17     Markaby::Template.new(string.to_s).render(assigns, helpers) 
    18   end 
    19  
    20   def test_builder_bang_methods 
    21     assert_equal "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", mab('instruct!') 
     16  def mab(*args, &block) 
     17    Markaby::Builder.new(*args, &block).to_s 
    2218  end 
    2319 
    2420  def test_simple 
    25     assert_equal "<hr/>\n", mab("hr") 
    26     assert_equal "<p>foo</p>\n", mab("p 'foo'") 
    27     assert_equal "<p>\nfoo</p>\n", mab("p { 'foo' }") 
     21    assert_equal "<hr/>\n", mab { hr } 
     22    assert_equal "<p>foo</p>\n", mab { p 'foo' } 
     23    assert_equal "<p>\nfoo</p>\n", mab { p { 'foo' } } 
    2824  end 
    2925   
    3026  def test_classes_and_ids 
    31     assert_equal %{<div class="one"></div>\n}, mab("div.one ''") 
    32     assert_equal %{<div class="one two"></div>\n}, mab("div.one.two ''") 
    33     assert_equal %{<div id="three"></div>\n}, mab("div.three! ''") 
     27    assert_equal %{<div class="one"></div>\n}, mab { div.one '' } 
     28    assert_equal %{<div class="one two"></div>\n}, mab { div.one.two '' } 
     29    assert_equal %{<div id="three"></div>\n}, mab { div.three! '' } 
    3430  end 
    3531   
    3632  def test_escaping 
    37     assert_equal "<h1>Apples &amp; Oranges</h1>\n", mab("h1 'Apples & Oranges'") 
    38     assert_equal "<h1>\nApples & Oranges</h1>\n", mab("h1 { 'Apples & Oranges' }") 
    39     assert_equal "<h1 class=\"fruits&amp;floots\">Apples</h1>\n", mab("h1 'Apples', :class => 'fruits&floots'") 
     33    assert_equal "<h1>Apples &amp; Oranges</h1>\n", mab { h1 'Apples & Oranges' } 
     34    assert_equal "<h1>\nApples & Oranges</h1>\n", mab { h1 { 'Apples & Oranges' } } 
     35    assert_equal "<h1 class=\"fruits&amp;floots\">Apples</h1>\n", mab { h1 'Apples', :class => 'fruits&floots' } 
    4036  end 
    4137 
    4238  def test_capture 
    43     html = "<div>\n<h1>hello world</h1>\n</div>\n" 
    44     assert_equal html, mab("div { h1 'hello world' }") 
    45     assert_equal html, mab("div { capture { h1 'hello world' } }") 
    46     assert mab("capture { h1 'hello world' }").empty? 
     39    builder = Markaby::Builder.new 
     40    assert builder.to_s.empty? 
     41    assert_equal "<h1>TEST</h1>\n", builder.capture { h1 'TEST' } 
     42    assert builder.to_s.empty? 
     43    assert mab { capture { h1 'hello world' } }.empty? 
     44    assert_equal mab { div { h1 'TEST' } }, mab { div { capture { h1 'TEST' } } } 
    4745  end 
    4846 
    4947  def test_ivars 
    5048    html = "<div>\n<h1>Steve</h1>\n<div>\n<h2>Gerald</h2>\n</div>\n<h3>Gerald</h3>\n</div>\n" 
    51     assert_equal html, mab("div { @name = 'Steve'; h1 @name; div { @name = 'Gerald'; h2 @name }; h3 @name }") 
    52     assert_equal html, mab("div { @name = 'Steve'; h1 @name; self << capture { div { @name = 'Gerald'; h2 @name } }; h3 @name }") 
    53     assert_equal html, mab("div { h1 @name; self << capture { div { @name = 'Gerald'; h2 @name } }; h3 @name }", 
    54                            :name => 'Steve') 
     49    assert_equal html, mab { div { @name = 'Steve'; h1 @name; div { @name = 'Gerald'; h2 @name }; h3 @name } } 
     50    assert_equal html, mab { div { @name = 'Steve'; h1 @name; self << capture { div { @name = 'Gerald'; h2 @name } }; h3 @name } } 
     51    assert_equal html, mab(:name => 'Steve') { div { h1 @name; self << capture { div { @name = 'Gerald'; h2 @name } }; h3 @name } } 
    5552  end 
    5653 
    5754  def test_ivars_without_at_symbol 
    58     assert_equal "<h1>Hello World</h1>\n", mab("@message = 'Hello World'; h1 message") 
     55    assert_equal "<h1>Hello World</h1>\n", mab { @message = 'Hello World'; h1 message } 
    5956  end 
    6057   
    6158  def test_output_helpers 
    62     assert_equal %{<a href="">edit</a>}, mab("link_to('edit')", {}, MarkabyTestHelpers) 
    63     assert mab("@output_helpers = false; link_to('edit')", {}, MarkabyTestHelpers).empty? 
     59    assert_equal %{<a href="">edit</a>}, mab({}, MarkabyTestHelpers) { link_to('edit') } 
     60    assert mab({}, MarkabyTestHelpers) { @output_helpers = false; link_to('edit') }.empty? 
     61  end 
     62 
     63  def test_builder_bang_methods 
     64    assert_equal "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", mab { instruct! } 
    6465  end 
    6566