Index: test/unit/helpers/application_helper_test.rb
===================================================================
--- test/unit/helpers/application_helper_test.rb (revision 10851)
+++ test/unit/helpers/application_helper_test.rb (working copy)
@@ -1,3 +1,5 @@
+# encoding: utf-8
+#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
#
@@ -81,7 +83,42 @@
# escaping
'http://foo"bar' => 'http://foo"bar',
# wrap in angle brackets
- '' => '<http://foo.bar>'
+ '' => '<http://foo.bar>',
+ # Links ending with curly brackets
+ "http://foo.bar/foo.bar?foo={bar}" => 'http://foo.bar/foo.bar?foo={bar}',
+ # links with russian letters
+ 'http://фу.тыква' => 'http://фу.тыква',
+ 'http://фу.тыква/~тыква' => 'http://фу.тыква/~тыква',
+ 'http://фу.тыква.' => 'http://фу.тыква.',
+ 'https://фу.тыква.' => 'https://фу.тыква.',
+ 'This is a link: http://фу.тыква.' => 'This is a link: http://фу.тыква.',
+ 'A link (eg. http://фу.тыква).' => 'A link (eg. http://фу.тыква).',
+ 'http://фу.тыква/фу.тыква#тыква.дыня.' => 'http://фу.тыква/фу.тыква#тыква.дыня.',
+ 'http://www.фу.тыква/Тыква_(дыня)' => 'http://www.фу.тыква/Тыква_(дыня)',
+ '(see инлайн линк : http://www.фу.тыква/Тыква_(дыня))' => '(see инлайн линк : http://www.фу.тыква/Тыква_(дыня))',
+ '(see инлайн линк : http://www.фу.тыква/Тыква)' => '(see инлайн линк : http://www.фу.тыква/Тыква)',
+ '(see инлайн линк : http://www.фу.тыква/Тыква).' => '(see инлайн линк : http://www.фу.тыква/Тыква).',
+ '(see "инлайн линк":http://www.фу.тыква/Тыква_(дыня))' => '(see инлайн линк)',
+ '(see "инлайн линк":http://www.фу.тыква/Тыква)' => '(see инлайн линк)',
+ '(see "инлайн линк":http://www.фу.тыква/Тыква).' => '(see инлайн линк).',
+ 'www.фу.тыква' => 'www.фу.тыква',
+ 'http://фу.тыква/page?p=1&t=z&s=' => 'http://фу.тыква/page?p=1&t=z&s=',
+ 'http://фу.тыква/page#125' => 'http://фу.тыква/page#125',
+ 'http://foo@www.фу.тыква' => 'http://foo@www.фу.тыква',
+ 'http://foo:bar@www.фу.тыква' => 'http://foo:bar@www.фу.тыква',
+ 'ftp://фу.тыква' => 'ftp://фу.тыква',
+ 'ftps://фу.тыква' => 'ftps://фу.тыква',
+ 'sftp://фу.тыква' => 'sftp://фу.тыква',
+ # two exclamation marks
+ 'http://фу.тыква/тыква!602815048C7B5C20!302.html' => 'http://фу.тыква/тыква!602815048C7B5C20!302.html',
+ # escaping
+ 'http://фу"тыква' => 'http://фу"тыква',
+ # wrap in angle brackets
+ '' => '<http://фу.тыква>',
+ 'http://фу.тыква.' => 'http://фу.тыква.',
+ 'http://фу.тыква...' => 'http://фу.тыква...',
+ 'http://фу.тыква;' => 'http://фу.тыква;',
+ 'http://фу.тыква,' => 'http://фу.тыква,'
}
to_test.each { |text, result| assert_equal "#{result}
", textilizable(text) }
end
Index: lib/redmine/wiki_formatting.rb
===================================================================
--- lib/redmine/wiki_formatting.rb (revision 10851)
+++ lib/redmine/wiki_formatting.rb (working copy)
@@ -96,7 +96,7 @@
(\S+?) # url
(\/)? # slash
)
- ((?:>)?|[^\w\=\/;\(\)]*?) # post
+ ((?:>)?|[^\S\=\/\(\)]*?|[;\.\,]*?) # post
(?=<|\s|$)
}x unless const_defined?(:AUTO_LINK_RE)