Bug #1685 [ruby-core:24010]
Some windows unicode path issues remain
| Status : | Assigned | Start : | 06/24/2009 | |
| Priority : | High | Due date : | ||
| Assigned to : | Usaku NAKAMURA | % Done : | 0% |
|
| Category : | core | |||
| Target version : | 1.9.2 | |||
| ruby -v : | ruby 1.9.2dev (2009-06-24) [i386-mswin32_71] |
Description
Hi,
I see some nice progress has been made in unicode path
handling on windows.
The following tests are not exhaustive, but do reveal some
remaining issues.
Everything below "NOT WORKING" fails in one way or another.
Regards,
Bill
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# encoding: UTF-8
# Test unicode path/dir handling on windows
require 'test/unit'
class TestUnicodeFilenamesAndPaths < Test::Unit::TestCase
def setup
tmpdir = ENV['TEMP'] || "C:/TEMP"
Dir.chdir tmpdir
puts Dir.pwd
testdir = "ruby_unicode_test"
Dir.mkdir testdir unless test ?d, testdir
Dir.chdir testdir
puts Dir.pwd
end
def test_unicode_paths
fname_resume = "R\xC3\xA9sum\xC3\xA9".force_encoding("UTF-8")
fname_chinese = "\u52ec\u52ee\u52f1\u52f2.txt"
dname_chinese = "\u52ec\u52ee\u52f1\u52f2"
assert_equal( "UTF-8", fname_resume.encoding.name )
File.open(fname_resume, "w") {|io| io.puts "Hello, World"}
assert_equal( "UTF-8", fname_chinese.encoding.name )
File.open(fname_chinese, "w") {|io| io.puts "Hello, World"}
dat = File.read(fname_chinese)
assert_equal( "Hello, World\n", dat )
files = Dir["*"]
assert( files.include? fname_resume )
assert( files.include? fname_chinese )
# NOT WORKING:
Dir.rmdir dname_chinese rescue nil
Dir.mkdir dname_chinese
test ?d, dname_chinese
Dir.chdir dname_chinese
cwd = Dir.pwd
assert( cwd[(-dname_chinese.length)..-1] == dname_chinese )
Dir.chdir ".."
x = File.stat(fname_resume)
x = File.stat(fname_chinese)
x = File.stat(dname_chinese)
assert( File.exist? fname_resume )
assert( File.exist? fname_chinese )
assert( test(?f, fname_resume) )
assert( test(?f, fname_chinese) )
files = Dir[fname_resume]
assert_equal( fname_resume, files.first )
files = Dir[fname_chinese]
assert_equal( fname_chinese, files.first )
files = Dir[dname_chinese]
assert_equal( dname_chinese, files.first )
end
end
Related issues
| related to Bug #1771 | system()/popen()/popen3() & windows & unicode is not working | Assigned | 07/13/2009 | ||
| related to Feature #2255 | unicode parameters cannot be passed to ruby | Open | 10/22/2009 | ||
| related to Bug #2332 | Ruby doesn't run properly from unicode folder on windows | Closed | 11/04/2009 | ||
| duplicates Bug #2137 | Dir.glob does not support unicode on Windows | Assigned | 09/23/2009 |