Ensure result encoding is the same as input encoding for String#gsub. [Bug #4340].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30806 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
drbrain 2011-02-06 03:54:50 +00:00
parent b1986003bd
commit edaf78dfb6
3 changed files with 21 additions and 0 deletions

View file

@ -674,6 +674,21 @@ class TestString < Test::Unit::TestCase
assert_raise(ArgumentError) { "foo".gsub }
end
def test_gsub_encoding
a = S("hello world")
a.force_encoding Encoding::UTF_8
b = S("hi")
b.force_encoding Encoding::US_ASCII
assert_equal Encoding::UTF_8, a.gsub(/hello/, b).encoding
c = S("everybody")
c.force_encoding Encoding::US_ASCII
assert_equal Encoding::UTF_8, a.gsub(/world/, c).encoding
end
def test_gsub!
a = S("hello")
b = a.dup