* string.c (rb_str_start_with, rb_str_end_with): raise an error if

an argument is not convertible to a String.
  [ruby-core:40623][Bug #5536]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2012-04-02 01:34:11 +00:00
parent 8630041945
commit 38b8afcf5a
3 changed files with 28 additions and 8 deletions

View file

@ -659,6 +659,15 @@ class TestString < Test::Unit::TestCase
assert(!S("not").empty?)
end
def test_end_with?
assert_send([S("hello"), :end_with?, S("llo")])
assert_not_send([S("hello"), :end_with?, S("ll")])
assert_send([S("hello"), :end_with?, S("el"), S("lo")])
bug5536 = '[ruby-core:40623]'
assert_raise(TypeError, bug5536) {S("str").end_with? :not_convertible_to_string}
end
def test_eql?
a = S("hello")
assert(a.eql?(S("hello")))
@ -1207,6 +1216,15 @@ class TestString < Test::Unit::TestCase
assert_nil(a.squeeze!)
end
def test_start_with?
assert_send([S("hello"), :start_with?, S("hel")])
assert_not_send([S("hello"), :start_with?, S("el")])
assert_send([S("hello"), :start_with?, S("el"), S("he")])
bug5536 = '[ruby-core:40623]'
assert_raise(TypeError, bug5536) {S("str").start_with? :not_convertible_to_string}
end
def test_strip
assert_equal(S("x"), S(" x ").strip)
assert_equal(S("x"), S(" \n\r\t x \t\r\n\n ").strip)
@ -1774,10 +1792,6 @@ class TestString < Test::Unit::TestCase
assert_nil(l.slice!(/\A.*\n/), "[ruby-dev:31665]")
end
def test_end_with?
assert("abc".end_with?("c"))
end
def test_times2
s1 = ''
100.times {|n|