Fixed: wrong section edit links when a heading contains inline code (#10199).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8841 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
165327a074
commit
686430ee36
|
@ -504,11 +504,14 @@ module ApplicationHelper
|
||||||
|
|
||||||
@parsed_headings = []
|
@parsed_headings = []
|
||||||
@current_section = 0 if options[:edit_section_links]
|
@current_section = 0 if options[:edit_section_links]
|
||||||
|
|
||||||
|
parse_sections(text, project, obj, attr, only_path, options)
|
||||||
text = parse_non_pre_blocks(text) do |text|
|
text = parse_non_pre_blocks(text) do |text|
|
||||||
[:parse_sections, :parse_inline_attachments, :parse_wiki_links, :parse_redmine_links, :parse_macros, :parse_headings].each do |method_name|
|
[:parse_inline_attachments, :parse_wiki_links, :parse_redmine_links, :parse_macros].each do |method_name|
|
||||||
send method_name, text, project, obj, attr, only_path, options
|
send method_name, text, project, obj, attr, only_path, options
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
parse_headings(text, project, obj, attr, only_path, options)
|
||||||
|
|
||||||
if @parsed_headings.any?
|
if @parsed_headings.any?
|
||||||
replace_toc(text, @parsed_headings)
|
replace_toc(text, @parsed_headings)
|
||||||
|
|
|
@ -799,6 +799,8 @@ some code
|
||||||
|
|
||||||
h3. Subtitle with *some* _modifiers_
|
h3. Subtitle with *some* _modifiers_
|
||||||
|
|
||||||
|
h3. Subtitle with @inline code@
|
||||||
|
|
||||||
h1. Another title
|
h1. Another title
|
||||||
|
|
||||||
h3. An "Internet link":http://www.redmine.org/ inside subtitle
|
h3. An "Internet link":http://www.redmine.org/ inside subtitle
|
||||||
|
@ -815,6 +817,7 @@ RAW
|
||||||
'<li><a href="#Subtitle-with-red-text">Subtitle with red text</a>' +
|
'<li><a href="#Subtitle-with-red-text">Subtitle with red text</a>' +
|
||||||
'<ul>' +
|
'<ul>' +
|
||||||
'<li><a href="#Subtitle-with-some-modifiers">Subtitle with some modifiers</a></li>' +
|
'<li><a href="#Subtitle-with-some-modifiers">Subtitle with some modifiers</a></li>' +
|
||||||
|
'<li><a href="#Subtitle-with-inline-code">Subtitle with inline code</a></li>' +
|
||||||
'</ul>' +
|
'</ul>' +
|
||||||
'</li>' +
|
'</li>' +
|
||||||
'</ul>' +
|
'</ul>' +
|
||||||
|
@ -853,6 +856,48 @@ RAW
|
||||||
assert textilizable(raw).gsub("\n", "").include?(expected)
|
assert textilizable(raw).gsub("\n", "").include?(expected)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_section_edit_links
|
||||||
|
raw = <<-RAW
|
||||||
|
h1. Title
|
||||||
|
|
||||||
|
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas sed libero.
|
||||||
|
|
||||||
|
h2. Subtitle with a [[Wiki]] link
|
||||||
|
|
||||||
|
h2. Subtitle with *some* _modifiers_
|
||||||
|
|
||||||
|
h2. Subtitle with @inline code@
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
some code
|
||||||
|
|
||||||
|
h2. heading inside pre
|
||||||
|
|
||||||
|
<h2>html heading inside pre</h2>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
h2. Subtitle after pre tag
|
||||||
|
RAW
|
||||||
|
|
||||||
|
@project = Project.find(1)
|
||||||
|
set_language_if_valid 'en'
|
||||||
|
result = textilizable(raw, :edit_section_links => {:controller => 'wiki', :action => 'edit', :project_id => '1', :id => 'Test'}).gsub("\n", "")
|
||||||
|
|
||||||
|
# heading that contains inline code
|
||||||
|
assert_match Regexp.new('<div class="contextual" title="Edit this section">' +
|
||||||
|
'<a href="/projects/1/wiki/Test/edit\?section=4"><img alt="Edit" src="/images/edit.png(\?\d+)?" /></a></div>' +
|
||||||
|
'<a name="Subtitle-with-inline-code"></a>' +
|
||||||
|
'<h2 >Subtitle with <code>inline code</code><a href="#Subtitle-with-inline-code" class="wiki-anchor">¶</a></h2>'),
|
||||||
|
result
|
||||||
|
|
||||||
|
# last heading
|
||||||
|
assert_match Regexp.new('<div class="contextual" title="Edit this section">' +
|
||||||
|
'<a href="/projects/1/wiki/Test/edit\?section=5"><img alt="Edit" src="/images/edit.png(\?\d+)?" /></a></div>' +
|
||||||
|
'<a name="Subtitle-after-pre-tag"></a>' +
|
||||||
|
'<h2 >Subtitle after pre tag<a href="#Subtitle-after-pre-tag" class="wiki-anchor">¶</a></h2>'),
|
||||||
|
result
|
||||||
|
end
|
||||||
|
|
||||||
def test_default_formatter
|
def test_default_formatter
|
||||||
with_settings :text_formatting => 'unknown' do
|
with_settings :text_formatting => 'unknown' do
|
||||||
text = 'a *link*: http://www.example.net/'
|
text = 'a *link*: http://www.example.net/'
|
||||||
|
|
Loading…
Reference in New Issue