From 1ef67e7146a4a11259900c16746d3c8db9637e52 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 30 Jul 2009 07:45:42 +0000 Subject: * insns.def (defineclass): preserve encoding of class/module names. [ruby-core:24600] * variable.c (rb_set_class_path_string): set class path with a string value. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_class.rb | 7 +++++++ test/ruby/test_module.rb | 8 ++++++++ 2 files changed, 15 insertions(+) (limited to 'test/ruby') diff --git a/test/ruby/test_class.rb b/test/ruby/test_class.rb index 93a19e86e..bc0f79a68 100644 --- a/test/ruby/test_class.rb +++ b/test/ruby/test_class.rb @@ -144,4 +144,11 @@ class TestClass < Test::Unit::TestCase assert_raise(TypeError) { Class.allocate.new } assert_raise(TypeError) { Class.allocate.superclass } end + + def test_nonascii_name + c = eval("class ::C\u{df}; self; end") + assert_equal("C\u{df}", c.name, '[ruby-core:24600]') + c = eval("class C\u{df}; self; end") + assert_equal("TestClass::C\u{df}", c.name, '[ruby-core:24600]') + end end diff --git a/test/ruby/test_module.rb b/test/ruby/test_module.rb index 066dd8601..4611abfbf 100644 --- a/test/ruby/test_module.rb +++ b/test/ruby/test_module.rb @@ -741,4 +741,12 @@ class TestModule < Test::Unit::TestCase assert_equal(:bClass2, b.__send__(:bClass2)) assert_equal(:bClass3, b.__send__(:bClass3)) end + + + def test_nonascii_name + c = eval("class ::C\u{df}; self; end") + assert_equal("C\u{df}", c.name, '[ruby-core:24600]') + c = eval("class C\u{df}; self; end") + assert_equal("TestModule::C\u{df}", c.name, '[ruby-core:24600]') + end end -- cgit