From e28a41bb8f8c725a77894cd497cab3839d73b5d9 Mon Sep 17 00:00:00 2001 From: Dawa Ometto Date: Sat, 18 May 2019 14:42:42 +0200 Subject: [PATCH] Fix breadcrumbs (#1387) --- lib/gollum/views/page.rb | 6 +++--- test/test_page_view.rb | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) 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