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 = []
|
||||
@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|
|
||||
[: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
|
||||
end
|
||||
end
|
||||
parse_headings(text, project, obj, attr, only_path, options)
|
||||
|
||||
if @parsed_headings.any?
|
||||
replace_toc(text, @parsed_headings)
|
||||
|
|
|
@ -799,6 +799,8 @@ some code
|
|||
|
||||
h3. Subtitle with *some* _modifiers_
|
||||
|
||||
h3. Subtitle with @inline code@
|
||||
|
||||
h1. Another title
|
||||
|
||||
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>' +
|
||||
'<ul>' +
|
||||
'<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>' +
|
||||
'</li>' +
|
||||
'</ul>' +
|
||||
|
@ -853,6 +856,48 @@ RAW
|
|||
assert textilizable(raw).gsub("\n", "").include?(expected)
|
||||
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
|
||||
with_settings :text_formatting => 'unknown' do
|
||||
text = 'a *link*: http://www.example.net/'
|
||||
|
|
Loading…
Reference in New Issue