1
0
mirror of https://github.com/meineerde/redmine.git synced 2025-12-24 01:11:12 +00:00

Special character like quote breaks wiki links (#22967).

Patch by Marius BALTEANU.

git-svn-id: http://svn.redmine.org/redmine/trunk@17490 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2018-09-15 09:11:13 +00:00
parent 04c8246b23
commit e501cb3481
2 changed files with 47 additions and 0 deletions

View File

@ -780,6 +780,7 @@ module ApplicationHelper
link_project = project
esc, all, page, title = $1, $2, $3, $5
if esc.nil?
page = CGI.unescapeHTML(page)
if page =~ /^\#(.+)$/
anchor = sanitize_anchor_name($1)
url = "##{anchor}"

View File

@ -822,6 +822,25 @@ RAW
to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) }
end
def test_wiki_links_with_special_characters_should_work_in_textile
to_test = wiki_links_with_special_characters
@project = Project.find(1)
with_settings :text_formatting => 'textile' do
to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) }
end
end
def test_wiki_links_with_special_characters_should_work_in_markdown
to_test = wiki_links_with_special_characters
@project = Project.find(1)
with_settings :text_formatting => 'markdown' do
to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text).strip }
end
end
def test_wiki_links_within_local_file_generation_context
to_test = {
# link to a page
@ -1723,6 +1742,33 @@ RAW
assert_equal '<span class="hours hours-int">0</span><span class="hours hours-dec">.75</span>', html_hours('0.75')
end
private
def wiki_links_with_special_characters
return {
'[[Jack & Coke]]' =>
link_to("Jack & Coke",
"/projects/ecookbook/wiki/Jack_&_Coke",
:class => "wiki-page new"),
'[[a "quoted" name]]' =>
link_to("a \"quoted\" name",
"/projects/ecookbook/wiki/A_%22quoted%22_name",
:class => "wiki-page new"),
'[[le français, c\'est super]]' =>
link_to("le français, c\'est super",
"/projects/ecookbook/wiki/Le_fran%C3%A7ais_c'est_super",
:class => "wiki-page new"),
'[[broken < less]]' =>
link_to("broken < less",
"/projects/ecookbook/wiki/Broken_%3C_less",
:class => "wiki-page new"),
'[[broken > more]]' =>
link_to("broken > more",
"/projects/ecookbook/wiki/Broken_%3E_more",
:class => "wiki-page new"),
}
end
def test_export_csv_encoding_select_tag_should_return_nil_when_general_csv_encoding_is_UTF8
with_locale 'az' do
assert_equal l(:general_csv_encoding), 'UTF-8'