diff options
-rw-r--r-- | app/helpers/application_helper.rb | 2 | ||||
-rw-r--r-- | test/unit/helpers/application_helper_test.rb | 20 |
2 files changed, 21 insertions, 1 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index dce6913a3..4f3316224 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -576,7 +576,7 @@ module ApplicationHelper "##{anchor}" else case options[:wiki_links] - when :local; "#{title}.html" + when :local; "#{page.present? ? Wiki.titleize(page) : ''}.html" + (anchor.present? ? "##{anchor}" : '') when :anchor; "##{title}" # used for single-file wiki export else wiki_page_id = page.present? ? Wiki.titleize(page) : nil diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb index e3e788da2..366a167ea 100644 --- a/test/unit/helpers/application_helper_test.rb +++ b/test/unit/helpers/application_helper_test.rb @@ -375,6 +375,26 @@ RAW to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) } end + def test_wiki_links_within_local_file_generation_context + + to_test = { + # link to a page + '[[CookBook documentation]]' => '<a href="CookBook_documentation.html" class="wiki-page">CookBook documentation</a>', + '[[CookBook documentation|documentation]]' => '<a href="CookBook_documentation.html" class="wiki-page">documentation</a>', + '[[CookBook documentation#One-section]]' => '<a href="CookBook_documentation.html#One-section" class="wiki-page">CookBook documentation</a>', + '[[CookBook documentation#One-section|documentation]]' => '<a href="CookBook_documentation.html#One-section" class="wiki-page">documentation</a>', + # page that doesn't exist + '[[Unknown page]]' => '<a href="Unknown_page.html" class="wiki-page new">Unknown page</a>', + '[[Unknown page|404]]' => '<a href="Unknown_page.html" class="wiki-page new">404</a>', + '[[Unknown page#anchor]]' => '<a href="Unknown_page.html#anchor" class="wiki-page new">Unknown page</a>', + '[[Unknown page#anchor|404]]' => '<a href="Unknown_page.html#anchor" class="wiki-page new">404</a>', + } + + @project = Project.find(1) + + to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text, :wiki_links => :local) } + end + def test_html_tags to_test = { "<div>content</div>" => "<p><div>content</div></p>", |