Defect #27968 » 0001-do-not-recognize-hires-images-as-email-addresses.patch
| lib/redmine/wiki_formatting.rb | ||
|---|---|---|
| 184 | 184 |         html.gsub!(%r{\battachment:<a(\sclass="email")? href="mailto:(.*?)">(.*?)</a>}) do | 
| 185 | 185 |           "attachment:#{$2}" | 
| 186 | 186 | end | 
| 187 | # restore hires images which are misrecognized as email address eg. [printscreen@2x.png] | |
| 188 |         html.gsub!(%r{<a(\sclass="email")? href="mailto:[^"]+@\dx\.(bmp|gif|jpg|jpe|jpeg|png)">(.*?)</a>}) do | |
| 189 |           "#{$3}" | |
| 190 | end | |
| 187 | 191 | html | 
| 188 | 192 | end | 
| 189 | 193 | end | 
| test/helpers/application_helper_test.rb | ||
|---|---|---|
| 697 | 697 | |
| 698 | 698 | with_settings :text_formatting => 'textile' do | 
| 699 | 699 | raw = "attachment:image@2x.png should not be parsed in image@2x.png" | 
| 700 |       assert_match %r{<p><a class="attachment" href="/attachments/#{attachment.id}/image@2x.png">image@2x.png</a> should not be parsed in <a class="email" href="mailto:image@2x.png">image@2x.png</a></p>}, | |
| 700 |       assert_match %r{<p><a class="attachment" href="/attachments/#{attachment.id}/image@2x.png">image@2x.png</a> should not be parsed in image@2x.png</p>}, | |
| 701 | 701 | textilizable(raw, :attachments => [attachment]) | 
| 702 | 702 | end | 
| 703 | 703 | |
| 704 | 704 | with_settings :text_formatting => 'markdown' do | 
| 705 | 705 | raw = "attachment:image@2x.png should not be parsed in image@2x.png" | 
| 706 |       assert_match %r{<p><a class="attachment" href="/attachments/#{attachment.id}/image@2x.png">image@2x.png</a> should not be parsed in <a href="mailto:image@2x.png">image@2x.png</a></p>} , | |
| 706 |       assert_match %r{<p><a class="attachment" href="/attachments/#{attachment.id}/image@2x.png">image@2x.png</a> should not be parsed in image@2x.png</p>} , | |
| 707 | 707 | textilizable(raw, :attachments => [attachment]) | 
| 708 | 708 | end | 
| 709 | 709 | end | 
| test/unit/lib/redmine/wiki_formatting_test.rb | ||
|---|---|---|
| 77 | 77 | end | 
| 78 | 78 | end | 
| 79 | 79 | |
| 80 | def test_hires_images_should_not_be_recognized_as_email_addresses | |
| 81 | raw = <<-DIFF | |
| 82 | Image: logo@2x.png | |
| 83 | DIFF | |
| 84 | ||
| 85 | expected = <<-EXPECTED | |
| 86 | <p>Image: logo@2x.png</p> | |
| 87 | EXPECTED | |
| 88 | ||
| 89 |     assert_equal expected.gsub(%r{[\r\n\t]}, ''), Redmine::WikiFormatting::NullFormatter::Formatter.new(raw).to_html.gsub(%r{[\r\n\t]}, '') | |
| 90 | end | |
| 91 | ||
| 80 | 92 | def test_cache_key_for_saved_object_should_no_be_nil | 
| 81 | 93 |     assert_not_nil Redmine::WikiFormatting.cache_key_for('textile', 'Text', Issue.find(1), :description) | 
| 82 | 94 | end |