diff --git a/lib/redmine/wiki_formatting/common_mark/helper.rb b/lib/redmine/wiki_formatting/common_mark/helper.rb index 28e2fe10a..cfd2510ed 100644 --- a/lib/redmine/wiki_formatting/common_mark/helper.rb +++ b/lib/redmine/wiki_formatting/common_mark/helper.rb @@ -23,13 +23,8 @@ module Redmine module Helper def wikitoolbar_for(field_id, preview_url = preview_text_path) heads_for_wiki_formatter - help_file = "/help/#{current_language.to_s.downcase}/wiki_syntax_common_mark.html" - # fall back to the english help page if there is none for the current - # language - unless File.readable? Rails.public_path.join(help_file) - help_file = "/help/en/wiki_syntax_common_mark.html" - end - url = "#{Redmine::Utils.relative_url_root}#{help_file}" + url = help_path(current_language) + javascript_tag( "var wikiToolbar = new jsToolBar(document.getElementById('#{field_id}')); " \ "wikiToolbar.setHelpLink('#{escape_javascript url}'); " \ @@ -38,6 +33,16 @@ module Redmine ) end + def help_path(lang) + help_file = "help/#{lang.to_s.downcase}/wiki_syntax_common_mark.html" + # fall back to the english help page if there is none for the current + # language + unless Rails.public_path.join(help_file).readable? + help_file = "help/en/wiki_syntax_common_mark.html" + end + File.join(Redmine::Utils.relative_url_root, help_file) + end + def initial_page_content(page) "# #{@page.pretty_title}" end diff --git a/test/unit/lib/redmine/wiki_formatting/common_mark/helper_test.rb b/test/unit/lib/redmine/wiki_formatting/common_mark/helper_test.rb new file mode 100644 index 000000000..e90221529 --- /dev/null +++ b/test/unit/lib/redmine/wiki_formatting/common_mark/helper_test.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +# Redmine - project management software +# Copyright (C) 2006-2023 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require_relative '../../../../../test_helper' + +class Redmine::WikiFormatting::CommonMark::HelperTest < Redmine::HelperTest + if Object.const_defined?(:CommonMarker) + + def test_help_path_should_reflect_language + assert_equal '/help/de/wiki_syntax_common_mark.html', help_path('de') + end + + def test_help_path_should_fallback_to_english + assert_equal '/help/en/wiki_syntax_common_mark.html', help_path('xx') + end + end +end