test/breadcrumbs_test.rb in breadcrumbs-0.1.7 vs test/breadcrumbs_test.rb in breadcrumbs-0.2.0

- old
+ new

@@ -1,73 +1,72 @@ -# -*- encoding: utf-8 -*- +# frozen_string_literal: true + require "test_helper" -class BreadcrumbsTest < Test::Unit::TestCase +class BreadcrumbsTest < Minitest::Test def setup @breadcrumbs = Breadcrumbs.new @inline = Breadcrumbs::Render::Inline.new(@breadcrumbs) end def test_return_safe_html - html_mock = mock() - html_mock.expects(:html_safe).once - Breadcrumbs::Render::List.any_instance.stubs(:render).returns(html_mock) - @breadcrumbs.render(format: "list") + assert @breadcrumbs.render(format: "list").html_safe? end def test_add_item @breadcrumbs.add "Home" assert_equal 1, @breadcrumbs.items.count @breadcrumbs << "Home" assert_equal 2, @breadcrumbs.items.count end - def test_tag - assert_equal "<span>Hi!</span>", @inline.tag(:span, "Hi!") - end - def test_tag_with_attributes expected = %[<span class="greetings" id="hi">Hi!</span>] - assert_equal expected, @inline.tag(:span, "Hi!", class: "greetings", id: "hi") + assert_equal expected, + @inline.tag(:span, "Hi!", class: "greetings", id: "hi") end def test_tag_with_block assert_equal "<span>Hi!</span>", @inline.tag(:span) { "Hi!" } end def test_tag_with_block_and_attributes expected = %[<span class="greetings" id="hi">Hi!</span>] - assert_equal expected, @inline.tag(:span, class: "greetings", id: "hi") { "Hi!" } + assert_equal expected, + @inline.tag(:span, class: "greetings", id: "hi") { "Hi!" } end def test_nested_tags expected = %[<span class="greetings"><strong id="hi">Hi!</strong></span>] - actual = @inline.tag(:span, class: "greetings") { tag(:strong, "Hi!", id: "hi") } + actual = @inline.tag(:span, class: "greetings") do + @inline.tag(:strong, "Hi!", id: "hi") + end + assert_equal expected, actual end def test_render_as_list @breadcrumbs.add "Home", "/", class: "home" html = Nokogiri::HTML(@breadcrumbs.render) - assert_not_nil html.at("ul.breadcrumbs") + refute_nil html.at("ul.breadcrumbs") assert_nil html.at("ul.breadcrumbs[format=list]") end def test_render_as_ordered_list @breadcrumbs.add "Home", "/" html = Nokogiri::HTML(@breadcrumbs.render(format: "ordered_list")) - assert_not_nil html.at("ol.breadcrumbs") + refute_nil html.at("ol.breadcrumbs") end def test_render_as_list_with_custom_attributes @breadcrumbs.add "Home", "/", class: "home" html = Nokogiri::HTML(@breadcrumbs.render(id: "breadcrumbs", class: "top")) - assert_not_nil html.at("ul.top#breadcrumbs") + refute_nil html.at("ul.top#breadcrumbs") end def test_render_as_list_add_items @breadcrumbs.add "Home", "/", class: "home" @breadcrumbs.add "About", "/about", class: "about" @@ -93,11 +92,11 @@ assert_equal "/about", link["href"] assert_equal "last item-2", items[2]["class"] assert_equal "People", items[2].inner_text assert_nil items[2].at("a") - assert_not_nil items[2].at("span") + refute_nil items[2].at("span") end def test_render_inline @breadcrumbs.add "Home", "/", class: "home" html = Nokogiri::HTML(@breadcrumbs.render(format: "inline")) @@ -110,11 +109,11 @@ @breadcrumbs.add "About", "/about", class: "about" @breadcrumbs.add "People" html = @breadcrumbs.render(format: "inline") html = Nokogiri::HTML("<div>#{html}</div>") - separator = Nokogiri::HTML("<span>&#187;</span>").at("span").inner_text + separator = "&#187;" items = html.search("div *") assert_equal 5, items.count @@ -177,31 +176,30 @@ def test_render_scope_as_text_for_missing_scope @breadcrumbs.add :contact @breadcrumbs.add "Help" html = Nokogiri::HTML(@breadcrumbs.render) - items = html.search("li") assert_equal "contact", items[0].inner_text assert_equal "Help", items[1].inner_text end def test_pimp_action_controller methods = ActionController::Base.instance_methods - assert (methods.include?(:breadcrumbs) || methods.include?("breadcrumbs")) + assert(methods.include?(:breadcrumbs) || methods.include?("breadcrumbs")) end def test_escape_text_when_rendering_inline @breadcrumbs.add "<script>alert(1)</script>" - html = @breadcrumbs.render(format: "inline") + html = Nokogiri::HTML(@breadcrumbs.render(format: "inline")) - assert_equal %[<span class="first last item-0">&lt;script&gt;alert(1)&lt;/script&gt;</span>], html + assert_empty html.search("script") end def test_escape_text_when_rendering_list @breadcrumbs.add "<script>alert(1)</script>" - html = @breadcrumbs.render + html = Nokogiri::HTML(@breadcrumbs.render) - assert_match /&lt;script&gt;alert\(1\)&lt;\/script&gt;/, html + assert_empty html.search("script") end end