ruby-changes:3044
From: ko1@a...
Date: 24 Dec 2007 01:35:52 +0900
Subject: [ruby-changes:3044] akr - Ruby:r14536 (trunk): add tests.
akr 2007-12-24 01:35:43 +0900 (Mon, 24 Dec 2007) New Revision: 14536 Modified files: trunk/test/ruby/test_io_m17n.rb Log: add tests. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/ruby/test_io_m17n.rb?r1=14536&r2=14535 Index: test/ruby/test_io_m17n.rb =================================================================== --- test/ruby/test_io_m17n.rb (revision 14535) +++ test/ruby/test_io_m17n.rb (revision 14536) @@ -62,14 +62,15 @@ Encoding::Shift_JIS, Encoding::UTF_8 ].each {|enc| + content = src.dup.force_encoding(enc) s = open('tmp', "r:#{enc}") {|f| f.gets } assert_equal(enc, s.encoding) - assert_str_equal(src.dup.force_encoding(enc), s) + assert_str_equal(content, s) } } end - def test_bytes + def test_read_encoding with_tmpdir { src = "\xc2\xa1\n".force_encoding("ASCII-8BIT") generate_file('tmp', "\xc2\xa1\n") @@ -79,43 +80,44 @@ Encoding::Shift_JIS, Encoding::UTF_8 ].each {|enc| + content = src.dup.force_encoding(enc) open('tmp', "r:#{enc}") {|f| s = f.getc assert_equal(enc, s.encoding) - assert_str_equal(src.dup.force_encoding(enc)[0], s) + assert_str_equal(content[0], s) } open('tmp', "r:#{enc}") {|f| s = f.readchar assert_equal(enc, s.encoding) - assert_str_equal(src.dup.force_encoding(enc)[0], s) + assert_str_equal(content[0], s) } open('tmp', "r:#{enc}") {|f| s = f.gets assert_equal(enc, s.encoding) - assert_str_equal(src.dup.force_encoding(enc), s) + assert_str_equal(content, s) } open('tmp', "r:#{enc}") {|f| s = f.readline assert_equal(enc, s.encoding) - assert_str_equal(src.dup.force_encoding(enc), s) + assert_str_equal(content, s) } open('tmp', "r:#{enc}") {|f| lines = f.readlines assert_equal(1, lines.length) s = lines[0] assert_equal(enc, s.encoding) - assert_str_equal(src.dup.force_encoding(enc), s) + assert_str_equal(content, s) } open('tmp', "r:#{enc}") {|f| f.each_line {|s| assert_equal(enc, s.encoding) - assert_str_equal(src.dup.force_encoding(enc), s) + assert_str_equal(content, s) } } open('tmp', "r:#{enc}") {|f| s = f.read assert_equal(enc, s.encoding) - assert_str_equal(src.dup.force_encoding(enc), s) + assert_str_equal(content, s) } open('tmp', "r:#{enc}") {|f| s = f.read(1) @@ -136,5 +138,41 @@ } end + def test_write_noenc + src = "\xc2\xa1\n" + encs = [ + Encoding::ASCII_8BIT, + Encoding::EUC_JP, + Encoding::Shift_JIS, + Encoding::UTF_8 + ] + with_tmpdir { + open('tmp', "w") {|f| + encs.each {|enc| + f.write src.dup.force_encoding(enc) + } + } + open('tmp', 'rb') {|f| + assert_equal(src*encs.length, f.read) + } + } + end + + def test_write_enc + utf8 = "\u6666" + eucjp = "\xb3\xa2".force_encoding("EUC-JP") + with_tmpdir { + open('tmp', "w:EUC-JP") {|f| + f.print utf8 + } + assert_equal(eucjp, File.read('tmp').force_encoding("EUC-JP")) + open('tmp', 'r:UTF-8:EUC-JP') {|f| + assert_equal(Encoding::EUC_JP, f.external_encoding) + assert_equal(Encoding::UTF_8, f.internal_encoding) + assert_equal(utf8, f.read) + } + } + end + end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml