Project

General

Profile

Patch #12077 » text-formatting-with-non-english-letters.diff

Danil Tashkinov, 2012-11-19 10:58

View differences:

test/unit/helpers/application_helper_test.rb (working copy)
1
# encoding: utf-8
2
#
1 3
# Redmine - project management software
2 4
# Copyright (C) 2006-2011  Jean-Philippe Lang
3 5
#
......
81 83
      # escaping
82 84
      'http://foo"bar' => '<a class="external" href="http://foo&quot;bar">http://foo"bar</a>',
83 85
      # wrap in angle brackets
84
      '<http://foo.bar>' => '&lt;<a class="external" href="http://foo.bar">http://foo.bar</a>&gt;'
86
      '<http://foo.bar>' => '&lt;<a class="external" href="http://foo.bar">http://foo.bar</a>&gt;',
87
      # Links ending with curly brackets
88
      "http://foo.bar/foo.bar?foo={bar}" => '<a class="external" href="http://foo.bar/foo.bar?foo={bar}">http://foo.bar/foo.bar?foo={bar}</a>',
89
      # links with russian letters
90
      'http://фу.тыква' => '<a class="external" href="http://фу.тыква">http://фу.тыква</a>',
91
      'http://фу.тыква/~тыква' => '<a class="external" href="http://фу.тыква/~тыква">http://фу.тыква/~тыква</a>',
92
      'http://фу.тыква.' => '<a class="external" href="http://фу.тыква">http://фу.тыква</a>.',
93
      'https://фу.тыква.' => '<a class="external" href="https://фу.тыква">https://фу.тыква</a>.',
94
      'This is a link: http://фу.тыква.' => 'This is a link: <a class="external" href="http://фу.тыква">http://фу.тыква</a>.',
95
      'A link (eg. http://фу.тыква).' => 'A link (eg. <a class="external" href="http://фу.тыква">http://фу.тыква</a>).',
96
      'http://фу.тыква/фу.тыква#тыква.дыня.' => '<a class="external" href="http://фу.тыква/фу.тыква#тыква.дыня">http://фу.тыква/фу.тыква#тыква.дыня</a>.',
97
      'http://www.фу.тыква/Тыква_(дыня)' => '<a class="external" href="http://www.фу.тыква/Тыква_(дыня)">http://www.фу.тыква/Тыква_(дыня)</a>',
98
      '(see инлайн линк : http://www.фу.тыква/Тыква_(дыня))' => '(see инлайн линк : <a class="external" href="http://www.фу.тыква/Тыква_(дыня)">http://www.фу.тыква/Тыква_(дыня)</a>)',
99
      '(see инлайн линк : http://www.фу.тыква/Тыква)' => '(see инлайн линк : <a class="external" href="http://www.фу.тыква/Тыква">http://www.фу.тыква/Тыква</a>)',
100
      '(see инлайн линк : http://www.фу.тыква/Тыква).' => '(see инлайн линк : <a class="external" href="http://www.фу.тыква/Тыква">http://www.фу.тыква/Тыква</a>).',
101
      '(see "инлайн линк":http://www.фу.тыква/Тыква_(дыня))' => '(see <a href="http://www.фу.тыква/Тыква_(дыня)" class="external">инлайн линк</a>)',
102
      '(see "инлайн линк":http://www.фу.тыква/Тыква)' => '(see <a href="http://www.фу.тыква/Тыква" class="external">инлайн линк</a>)',
103
      '(see "инлайн линк":http://www.фу.тыква/Тыква).' => '(see <a href="http://www.фу.тыква/Тыква" class="external">инлайн линк</a>).',
104
      'www.фу.тыква' => '<a class="external" href="http://www.фу.тыква">www.фу.тыква</a>',
105
      'http://фу.тыква/page?p=1&t=z&s=' => '<a class="external" href="http://фу.тыква/page?p=1&#38;t=z&#38;s=">http://фу.тыква/page?p=1&#38;t=z&#38;s=</a>',
106
      'http://фу.тыква/page#125' => '<a class="external" href="http://фу.тыква/page#125">http://фу.тыква/page#125</a>',
107
      'http://foo@www.фу.тыква' => '<a class="external" href="http://foo@www.фу.тыква">http://foo@www.фу.тыква</a>',
108
      'http://foo:bar@www.фу.тыква' => '<a class="external" href="http://foo:bar@www.фу.тыква">http://foo:bar@www.фу.тыква</a>',
109
      'ftp://фу.тыква' => '<a class="external" href="ftp://фу.тыква">ftp://фу.тыква</a>',
110
      'ftps://фу.тыква' => '<a class="external" href="ftps://фу.тыква">ftps://фу.тыква</a>',
111
      'sftp://фу.тыква' => '<a class="external" href="sftp://фу.тыква">sftp://фу.тыква</a>',
112
      # two exclamation marks
113
      'http://фу.тыква/тыква!602815048C7B5C20!302.html' => '<a class="external" href="http://фу.тыква/тыква!602815048C7B5C20!302.html">http://фу.тыква/тыква!602815048C7B5C20!302.html</a>',
114
      # escaping
115
      'http://фу"тыква' => '<a class="external" href="http://фу&quot;тыква">http://фу"тыква</a>',
116
      # wrap in angle brackets
117
      '<http://фу.тыква>' => '&lt;<a class="external" href="http://фу.тыква">http://фу.тыква</a>&gt;',
118
      'http://фу.тыква.' => '<a class="external" href="http://фу.тыква">http://фу.тыква</a>.',
119
      'http://фу.тыква...' => '<a class="external" href="http://фу.тыква">http://фу.тыква</a>...',
120
      'http://фу.тыква;' => '<a class="external" href="http://фу.тыква">http://фу.тыква</a>;',
121
      'http://фу.тыква,' => '<a class="external" href="http://фу.тыква">http://фу.тыква</a>,'
85 122
    }
86 123
    to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) }
87 124
  end
lib/redmine/wiki_formatting.rb (working copy)
96 96
                        (\S+?)                   # url
97 97
                        (\/)?                    # slash
98 98
                      )
99
                      ((?:&gt;)?|[^\w\=\/;\(\)]*?)               # post
99
                      ((?:&gt;)?|[^\S\=\/\(\)]*?|[;\.\,]*?)  # post
100 100
                      (?=<|\s|$)
101 101
                     }x unless const_defined?(:AUTO_LINK_RE)
102 102

  
    (1-1/1)