]> source.dussan.org Git - redmine.git/commitdiff
Sanitize image links and handle nils in the toc formatter. #5445
authorEric Davis <edavis@littlestreamsoftware.com>
Thu, 24 Jun 2010 02:35:24 +0000 (02:35 +0000)
committerEric Davis <edavis@littlestreamsoftware.com>
Thu, 24 Jun 2010 02:35:24 +0000 (02:35 +0000)
Based on contribution by Yuki Kita.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3811 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/wiki_formatting/textile/formatter.rb
test/unit/helpers/application_helper_test.rb

index abffdbcbfec55f675628e15d838a1fab3ffc2923..a622e80398520bb53191c1de2dcf922b993b3f1e 100644 (file)
@@ -67,7 +67,9 @@ module Redmine
           toc_item = content.gsub(/(\[\[([^\]\|]*)(\|([^\]]*))?\]\])/) { $4 || $2 }
           # sanitizes titles from links
           # see redcloth3.rb, same as "#{pre}#{text}#{post}"
-          toc_item.gsub!(LINK_RE) { $2+$4+$9 }
+          toc_item.gsub!(LINK_RE) { [$2, $4, $9].join }
+          # sanitizes image links from titles
+          toc_item.gsub!(IMAGE_RE) { [$5].join }
           # removes styles
           # eg. %{color:red}Triggers% => Triggers
           toc_item.gsub! %r[%\{[^\}]*\}([^%]+)%], '\\1'
index 534135ecdc00edf4fe85d20791723fea9d892ae2..90d342898a75738523899db20408b5ee16f36e40 100644 (file)
@@ -421,6 +421,9 @@ h2. Subtitle with %{color:red}red text%
 h1. Another title
 
 h2. An "Internet link":http://www.redmine.org/ inside subtitle
+
+h2. "Project Name !/attachments/1234/logo_small.gif! !/attachments/5678/logo_2.png!":/projects/projectname/issues
+
 RAW
 
     expected = '<ul class="toc">' +
@@ -430,8 +433,9 @@ RAW
                '<li class="heading2"><a href="#Subtitle-with-red-text">Subtitle with red text</a></li>' +
                '<li class="heading1"><a href="#Another-title">Another title</a></li>' +
                '<li class="heading2"><a href="#An-Internet-link-inside-subtitle">An Internet link inside subtitle</a></li>' +
+               '<li class="heading2"><a href="#Project-Name">Project Name</a></li>' +
                '</ul>'
-               
+
     assert textilizable(raw).gsub("\n", "").include?(expected)
   end