middleman/middleman-core/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/test_breadcrumb_helpers.rb
2013-11-22 08:47:07 -08:00

135 lines
4.8 KiB
Ruby

require File.expand_path(File.dirname(__FILE__) + '/helper')
describe "BreadcrumbHelpers" do
include Padrino::Helpers::Breadcrumbs
def breadcrumb
@breadcrumb ||= Padrino::Helpers::Breadcrumb.new
end
before(:each) { breadcrumb.reset! }
context "for Breadcrumbs#breadcrumbs method" do
should "support breadcrumbs which is Padrino::Helpers::Breadcrumbs instance." do
breadcrumb.add "foo", "/foo", "foo link"
assert_has_tag(:a, :content => "Foo link", :href => "/foo") { breadcrumbs(breadcrumb) }
end
should "support bootstrap" do
breadcrumb.add "foo", "/foo", "foo link"
assert_has_tag(:span, :content => "/", :class => "divider") { breadcrumbs(breadcrumb, true) }
end
should "support active" do
breadcrumb.add "foo", "/foo", "foo link"
assert_has_tag(:li, :class => "custom-active") { breadcrumbs(breadcrumb, nil, "custom-active") }
end
should "support options" do
assert_has_tag(:ul, :class => "breadcrumbs-class breadcrumb", :id => "breadcrumbs-id") do
breadcrumbs(breadcrumb, nil, nil, :id => "breadcrumbs-id", :class => "breadcrumbs-class")
end
end
end
context "for #add method" do
should "support name of string and symbol type" do
breadcrumb.add "foo", "/foo", "Foo Link"
breadcrumb.add :bar, "/bar", "Bar Link"
actual_html = breadcrumbs(breadcrumb)
assert_has_tag(:a, :content => "Foo link", :href => "/foo") { actual_html }
assert_has_tag(:a, :content => "Bar link", :href => "/bar") { actual_html }
end
should "support url" do
breadcrumb.add :foo, "/foo", "Foo Link"
assert_has_tag(:a, :href => "/foo") { breadcrumbs(breadcrumb) }
end
should "support caption" do
breadcrumb.add :foo, "/foo", "Foo Link"
assert_has_tag(:a, :content => "Foo link") { breadcrumbs(breadcrumb) }
end
should "support options" do
breadcrumb.add :foo, "/foo", "Foo Link", :id => "foo-id", :class => "foo-class"
breadcrumb.add :bar, "/bar", "Bar Link", :id => "bar-id", :class => "bar-class"
actual_html = breadcrumbs(breadcrumb)
assert_has_tag(:li, :class => "foo-class", :id => "foo-id") { actual_html }
assert_has_tag(:li, :class => "bar-class active", :id => "bar-id") { actual_html }
end
end
context "for #del method" do
should "support name of string type" do
breadcrumb.add "foo", "/foo", "Foo Link"
breadcrumb.add :bar, "/bar", "Bar Link"
breadcrumb.del "foo"
breadcrumb.del "bar"
actual_html = breadcrumbs(breadcrumb)
assert_has_no_tag(:a, :content => "Foo link", :href => "/foo") { actual_html }
assert_has_no_tag(:a, :content => "Bar link", :href => "/bar") { actual_html }
end
should "support name of symbol type" do
breadcrumb.add "foo", "/foo", "Foo Link"
breadcrumb.add :bar, "/bar", "Bar Link"
breadcrumb.del :foo
breadcrumb.del :bar
actual_html = breadcrumbs(breadcrumb)
assert_has_no_tag(:a, :content => "Foo link", :href => "/foo") { actual_html }
assert_has_no_tag(:a, :content => "Bar link", :href => "/bar") { actual_html }
end
end
context "for #set_home method" do
should "modified home item elements." do
breadcrumb.set_home("/custom", "Custom Home Page")
assert_has_tag(:a, :content => "Custom home page", :href => "/custom") { breadcrumbs(breadcrumb) }
end
should "support options" do
breadcrumb.set_home("/custom", "Custom Home Page", :id => "home-id")
actual_html = breadcrumbs(breadcrumb)
assert_has_tag(:li, :id => "home-id") { actual_html }
assert_has_tag(:a, :content => "Custom home page", :href => "/custom") { actual_html }
end
end
context "for #reset method" do
should "be #items which contains only home item." do
breadcrumb.set_home("/custom", "Custom Home Page")
breadcrumb.add "foo", "/foo", "Foo Link"
breadcrumb.add :bar, "/bar", "Bar Link"
breadcrumb.reset
actual_html = breadcrumbs(breadcrumb)
assert_has_tag(:a, :content => "Custom home page", :href => "/custom") { actual_html }
assert_has_no_tag(:a, :content => "Foo link", :href => "/foo") { actual_html }
assert_has_no_tag(:a, :content => "Bar link", :href => "/bar") { actual_html }
end
end
context "for #reset! method" do
should "be #items which contains only default home item." do
breadcrumb.add "foo", "/foo", "foo link"
breadcrumb.add :bar, "/bar", "Bar Link"
breadcrumb.reset!
actual_html = breadcrumbs(breadcrumb)
assert_has_tag(:a, :content => "Home Page", :href => "/") { actual_html }
assert_has_no_tag(:a, :content => "Foo link", :href => "/foo") { actual_html }
assert_has_no_tag(:a, :content => "Bar link", :href => "/bar") { actual_html }
end
end
end