scm: Ruby 1.9 compatibility for log.
Remove assuming UTF-8 is valid. "\xC2\x80" of latin-1(iso-8859-1) is valid sequence of UTF-8. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4925 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
4257b1d9ad
commit
9f50e63583
|
@ -245,13 +245,6 @@ class Changeset < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def self.to_utf8(str)
|
||||
if str.respond_to?(:force_encoding)
|
||||
str.force_encoding('UTF-8')
|
||||
return str if str.valid_encoding?
|
||||
else
|
||||
return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii
|
||||
end
|
||||
|
||||
encoding = Setting.commit_logs_encoding.to_s.strip
|
||||
unless encoding.blank? || encoding == 'UTF-8'
|
||||
begin
|
||||
|
|
|
@ -221,6 +221,25 @@ class ChangesetTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_comments_should_be_converted_all_latin1_to_utf8
|
||||
with_settings :commit_logs_encoding => 'ISO-8859-1' do
|
||||
c = Changeset.new
|
||||
s1 = "\xC2\x80"
|
||||
s2 = "\xc3\x82\xc2\x80"
|
||||
if s1.respond_to?(:force_encoding)
|
||||
s3 = s1
|
||||
s4 = s2
|
||||
s1.force_encoding('ASCII-8BIT')
|
||||
s2.force_encoding('ASCII-8BIT')
|
||||
s3.force_encoding('ISO-8859-1')
|
||||
s4.force_encoding('UTF-8')
|
||||
assert_equal s3.encode('UTF-8'), s4
|
||||
end
|
||||
c.comments = s1
|
||||
assert_equal s2, c.comments
|
||||
end
|
||||
end
|
||||
|
||||
def test_identifier
|
||||
c = Changeset.find_by_revision('1')
|
||||
assert_equal c.revision, c.identifier
|
||||
|
|
Loading…
Reference in New Issue