require 'test_helper' class SimpleBuilderTest < ActionView::TestCase def setup @template = self end def test_render_should_be_implemented assert_nothing_raised { simplebuilder(@template, []).render } end def test_render_with_0_elements assert_equal("", simplebuilder(@template, []).render) end def test_render_with_0_elements_and_separator assert_equal("", simplebuilder(@template, [], :separator => "-").render) end def test_render_with_1_element @template.expects(:current_page?).times(1).returns(false) assert_dom_equal("Element 1", simplebuilder(@template, generate_elements(1)).render) end def test_render_with_1_element_and_separator @template.expects(:current_page?).times(1).returns(false) assert_dom_equal("Element 1", simplebuilder(@template, generate_elements(1), :separator => "-").render) end def test_render @template.expects(:current_page?).times(2).returns(false) assert_dom_equal("Element 1 » Element 2", simplebuilder(@template, generate_elements(2)).render) end def test_render_with_separator @template.expects(:current_page?).times(2).returns(false) assert_dom_equal("Element 1 - Element 2", simplebuilder(@template, generate_elements(2), :separator => " - ").render) end def test_render_with_current_page @template.expects(:current_page?).times(2).returns(false, true) assert_dom_equal("Element 1 » Element 2", simplebuilder(@template, generate_elements(2)).render) end def test_render_with_no_links elements = (1..2).collect do |index| BreadcrumbsOnRails::Breadcrumbs::Element.new("Element #{index}", nil) end assert_dom_equal("Element 1 » Element 2", simplebuilder(@template, elements).render) end protected def simplebuilder(*args) BreadcrumbsOnRails::Breadcrumbs::SimpleBuilder.new(*args) end def generate_elements(number) (1..number).collect do |index| BreadcrumbsOnRails::Breadcrumbs::Element.new("Element #{index}", "/element/#{index}") end end end