diff --git a/lib/gollum/views/page.rb b/lib/gollum/views/page.rb
index 78262084..9875fdf3 100644
--- a/lib/gollum/views/page.rb
+++ b/lib/gollum/views/page.rb
@@ -26,14 +26,14 @@ module Precious
end
def breadcrumb
- path = Pathname.new(@page.url_path_title)
+ path = Pathname.new(@page.url_path).parent
+ return '' if path.to_s == '.'
breadcrumb = []
path.descend do |crumb|
element = "#{crumb.basename}"
- next if element == @page.title
breadcrumb << %{#{element}}
end
- breadcrumb.empty? ? "" : breadcrumb.join(" / ") << " /"
+ breadcrumb.join(' / ') << ' /'
end
def content
diff --git a/test/test_page_view.rb b/test/test_page_view.rb
index dee46a38..d7f689e6 100644
--- a/test/test_page_view.rb
+++ b/test/test_page_view.rb
@@ -2,6 +2,7 @@
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
require File.expand_path '../../lib/gollum/views/page', __FILE__
+
context "Precious::Views::Page" do
setup do
examples = testpath "examples"
@@ -108,4 +109,23 @@ EOS
actual = @view.title
assert_equal title, actual
end
+
+ test "breadcrumbs" do
+ @wiki.write_page('subdir/BC Test 1', :markdown, 'Test', commit_details)
+ page = @wiki.page('subdir/BC Test 1')
+
+ @view = Precious::Views::Page.new
+ @view.instance_variable_set :@page, page
+ @view.instance_variable_set :@content, page.formatted_data
+ assert_equal @view.breadcrumb, 'subdir /'
+
+ # No breadcrumb on unnested page
+ @wiki.write_page('BC Test 2', :markdown, 'Test', commit_details)
+ page = @wiki.page('BC Test 2')
+
+ @view = Precious::Views::Page.new
+ @view.instance_variable_set :@page, page
+ @view.instance_variable_set :@content, page.formatted_data
+ assert_equal @view.breadcrumb, ''
+ end
end