Merged r1542 from trunk.

git-svn-id: http://redmine.rubyforge.org/svn/branches/0.7-stable@1543 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2008-06-15 11:04:03 +00:00
parent a55317f09c
commit 1c1c9fa517
2 changed files with 31 additions and 0 deletions

View File

@ -85,6 +85,9 @@ module Redmine
@toc.each_with_index do |heading, index|
# remove wiki links from the item
toc_item = heading.last.gsub(/(\[\[|\]\])/, '')
# remove styles
# eg. %{color:red}Triggers% => Triggers
toc_item.gsub! %r[%\{[^\}]*\}([^%]+)%], '\\1'
out << "<a href=\"##{index+1}\" class=\"heading#{heading.first}\">#{toc_item}</a>"
end
out << '</div>'

View File

@ -186,6 +186,34 @@ class ApplicationHelperTest < HelperTestCase
assert_equal '<p>Dashes: ---</p>', textilizable('Dashes: ---')
end
def test_table_of_content
raw = <<-RAW
{{toc}}
h1. Title
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas sed libero.
h2. Subtitle
Nullam commodo metus accumsan nulla. Curabitur lobortis dui id dolor.
h2. Subtitle with %{color:red}red text%
h1. Another title
RAW
expected = '<div class="toc">' +
'<a href="#1" class="heading1">Title</a>' +
'<a href="#2" class="heading2">Subtitle</a>' +
'<a href="#3" class="heading2">Subtitle with red text</a>' +
'<a href="#4" class="heading1">Another title</a>' +
'</div>'
assert textilizable(raw).include?(expected)
end
def test_macro_hello_world
text = "{{hello_world}}"
assert textilizable(text).match(/Hello world!/)