[前][次][番号順一覧][スレッド一覧]

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

[前][次][番号順一覧][スレッド一覧]