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

ruby-changes:56056

From: Nobuyoshi <ko1@a...>
Date: Sun, 9 Jun 2019 12:30:39 +0900 (JST)
Subject: [ruby-changes:56056] Nobuyoshi Nakada: 562c0bfeda (trunk): Split test_strip_bom for each encoding

https://git.ruby-lang.org/ruby.git/commit/?id=562c0bfeda

From 562c0bfedaa96a1488cbfc0d282412743ea8cde0 Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Sun, 9 Jun 2019 11:34:58 +0900
Subject: Split test_strip_bom for each encoding


diff --git a/test/ruby/test_io_m17n.rb b/test/ruby/test_io_m17n.rb
index 4cc3d15..6fb8d8a 100644
--- a/test/ruby/test_io_m17n.rb
+++ b/test/ruby/test_io_m17n.rb
@@ -2080,26 +2080,42 @@ EOT https://github.com/ruby/ruby/blob/trunk/test/ruby/test_io_m17n.rb#L2080
     }
   end
 
-  def test_strip_bom
-    with_tmpdir {
-      text = "\uFEFFa"
-      stripped = "a"
-      %w/UTF-8 UTF-16BE UTF-16LE UTF-32BE UTF-32LE/.each do |name|
-        path = '%s-bom.txt' % name
+  %w/UTF-8 UTF-16BE UTF-16LE UTF-32BE UTF-32LE/.each do |name|
+    define_method("test_strip_bom:#{name}") do
+      path = "#{name}-bom.txt"
+      with_tmpdir {
+        text = "\uFEFFa"
+        stripped = "a"
         content = text.encode(name)
         generate_file(path, content)
         result = File.read(path, mode: 'rb:BOM|UTF-8')
         assert_equal(Encoding.find(name), result.encoding, name)
         assert_equal(content[1..-1].b, result.b, name)
-        result = File.read(path, mode: 'rb:BOM|UTF-8:UTF-8')
-        assert_equal(Encoding::UTF_8, result.encoding, name)
-        assert_equal(stripped, result, name)
-      end
+        %w[rb rt r].each do |mode|
+          message = "#{name}, mode: #{mode.dump}"
+          result = File.read(path, mode: "#{mode}:BOM|UTF-8:UTF-8")
+          assert_equal(Encoding::UTF_8, result.encoding, message)
+          assert_equal(stripped, result, message)
+        end
+      }
+    end
+  end
 
-      bug3407 = '[ruby-core:30641]'
+  def test_strip_bom_no_conv
+    with_tmpdir {
       path = 'UTF-8-bom.txt'
+      generate_file(path, "\uFEFFa")
+
+      bug3407 = '[ruby-core:30641]'
       result = File.read(path, encoding: 'BOM|UTF-8')
-      assert_equal("a", result.force_encoding("ascii-8bit"), bug3407)
+      assert_equal("a", result.b, bug3407)
+    }
+  end
+
+  def test_strip_bom_invalid
+    with_tmpdir {
+      path = 'UTF-8-bom.txt'
+      generate_file(path, "\uFEFFa")
 
       bug8323 = '[ruby-core:54563] [Bug #8323]'
       expected = "a\xff".force_encoding("utf-8")
@@ -2110,8 +2126,14 @@ EOT https://github.com/ruby/ruby/blob/trunk/test/ruby/test_io_m17n.rb#L2126
       result = File.read(path, encoding: 'BOM|UTF-8:UTF-8')
       assert_not_predicate(result, :valid_encoding?, bug8323)
       assert_equal(expected, result, bug8323)
+    }
+  end
 
+  def test_strip_bom_no_bom
+    with_tmpdir {
+      bug8323 = '[ruby-core:54563] [Bug #8323]'
       path = 'ascii.txt'
+      stripped = "a"
       generate_file(path, stripped)
       result = File.read(path, encoding: 'BOM|UTF-8')
       assert_equal(stripped, result, bug8323)
-- 
cgit v0.10.2


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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