summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authorknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-03 07:23:09 +0000
committerknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-03 07:23:09 +0000
commit05438733353edf4cc0a0d1ba169870446e4b029b (patch)
treeb97ae3a7484e9b6ae43f438399b9029d203ed8d7 /test/ruby
parentfba7f2b01bbb5401faaf3948bfd2e5d9c58996d0 (diff)
* string.c (rb_str_getbyte, rb_str_setbyte): Add String#getbyte
and String#setbyte for the forward compatibility with 1.9, where the behavior of String#[] and String#[]= have changed; based on a patch from Shinichiro Hamaji in [ruby-dev:37247]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@20461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_string.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb
index 4f2070ade0..8d37479de4 100644
--- a/test/ruby/test_string.rb
+++ b/test/ruby/test_string.rb
@@ -77,4 +77,23 @@ class TestString < Test::Unit::TestCase
assert_equal("aaaaaaaaaaaa", "zzzzzzzzzzz".succ!)
assert_equal("aaaaaaaaaaaaaaaaaaaaaaaa", "zzzzzzzzzzzzzzzzzzzzzzz".succ!)
end
+
+ def test_getbyte
+ assert_equal(0x82, "\xE3\x81\x82\xE3\x81\x84".getbyte(2))
+ assert_equal(0x82, "\xE3\x81\x82\xE3\x81\x84".getbyte(-4))
+ assert_nil("\xE3\x81\x82\xE3\x81\x84".getbyte(100))
+ end
+
+ def test_setbyte
+ s = "\xE3\x81\x82\xE3\x81\x84"
+ s.setbyte(2, 0x84)
+ assert_equal("\xE3\x81\x84\xE3\x81\x84", s)
+
+ s = "\xE3\x81\x82\xE3\x81\x84"
+ assert_raise(IndexError) { s.setbyte(100, 0) }
+
+ s = "\xE3\x81\x82\xE3\x81\x84"
+ s.setbyte(-4, 0x84)
+ assert_equal("\xE3\x81\x84\xE3\x81\x84", s)
+ end
end