diff options
Diffstat (limited to 'test/rdoc/test_rdoc_encoding.rb')
-rw-r--r-- | test/rdoc/test_rdoc_encoding.rb | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/test/rdoc/test_rdoc_encoding.rb b/test/rdoc/test_rdoc_encoding.rb deleted file mode 100644 index 58536b035e..0000000000 --- a/test/rdoc/test_rdoc_encoding.rb +++ /dev/null @@ -1,184 +0,0 @@ -# coding: US-ASCII -# frozen_string_literal: true - -require_relative 'helper' - -class TestRDocEncoding < RDoc::TestCase - - def setup - super - - @tempfile = Tempfile.new 'test_rdoc_encoding' - end - - def teardown - @tempfile.close! - - super - end - - def test_class_read_file - @tempfile.write "hi everybody" - @tempfile.flush - - assert_equal "hi everybody", RDoc::Encoding.read_file(@tempfile.path, nil) - end - - def test_class_read_file_encoding - expected = "# coding: utf-8\nhi everybody" - - @tempfile.write expected - @tempfile.flush - - contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8 - assert_equal "# coding: utf-8\nhi everybody", contents - assert_equal Encoding::UTF_8, contents.encoding - end - - def test_class_read_file_encoding_convert - content = "" - content = RDoc::Encoding.change_encoding content, 'ISO-8859-1' - content << "# coding: ISO-8859-1\nhi \xE9verybody" - - @tempfile.write content - @tempfile.flush - - contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8 - assert_equal Encoding::UTF_8, contents.encoding - assert_equal "# coding: ISO-8859-1\nhi \u00e9verybody", contents.sub("\r", '') - end - - def test_class_read_file_encoding_fail - @tempfile.write "# coding: utf-8\n\317\200" # pi - @tempfile.flush - - contents = :junk - - _, err = verbose_capture_output do - contents = RDoc::Encoding.read_file @tempfile.path, Encoding::US_ASCII - end - - assert_nil contents - - assert_match %r%^unable to convert%, err - end - - def test_class_read_file_encoding_fancy - expected = "# -*- coding: utf-8; fill-column: 74 -*-\nhi everybody" - expected = RDoc::Encoding.change_encoding expected, Encoding::UTF_8 - - @tempfile.write expected - @tempfile.flush - - contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8 - assert_equal "# -*- coding: utf-8; fill-column: 74 -*-\nhi everybody", contents - assert_equal Encoding::UTF_8, contents.encoding - end - - def test_class_read_file_encoding_force_transcode - @tempfile.write "# coding: utf-8\n\317\200" # pi - @tempfile.flush - - contents = RDoc::Encoding.read_file @tempfile.path, Encoding::US_ASCII, true - - assert_equal "# coding: utf-8\n?", contents - assert_equal Encoding::US_ASCII, contents.encoding - end - - def test_class_read_file_encoding_guess - path = File.expand_path '../test.ja.txt', __FILE__ - content = RDoc::Encoding.read_file path, Encoding::UTF_8 - - assert_equal Encoding::UTF_8, content.encoding - end - - def test_class_read_file_encoding_invalid - @tempfile.write "# coding: ascii\nM\xE4r" - @tempfile.flush - - contents = :junk - _, err = verbose_capture_output do - contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8 - end - - assert_equal "unable to convert \"\\xE4\" on US-ASCII for #{@tempfile.path}, skipping\n", err - - assert_nil contents - end - - def test_class_read_file_encoding_with_signature - @tempfile.write "\xEF\xBB\xBFhi everybody" - @tempfile.flush - - bug3360 = '[ruby-dev:41452]' - content = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8 - assert_equal Encoding::UTF_8, content.encoding, bug3360 - assert_equal "hi everybody", content, bug3360 - end - - def test_class_read_file_encoding_iso_2022_jp - input = "# coding: ISO-2022-JP\n:\e$B%3%^%s%I\e(B:" - - @tempfile.write input - @tempfile.flush - - contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8 - - expected = "# coding: ISO-2022-JP\n:\xe3\x82\xb3\xe3\x83\x9e\xe3\x83\xb3\xe3\x83\x89:" - expected = RDoc::Encoding.change_encoding expected, Encoding::UTF_8 - - assert_equal expected, contents - assert_equal Encoding::UTF_8, contents.encoding - end - - def test_class_detect_encoding - s = "# coding: UTF-8\n" - encoding = RDoc::Encoding.detect_encoding s - - # sanity check for 1.8 - - assert_equal Encoding::UTF_8, encoding - - s = "#!/bin/ruby\n# coding: UTF-8\n" - encoding = RDoc::Encoding.detect_encoding s - - assert_equal Encoding::UTF_8, encoding - - s = "<?xml version='1.0' encoding='UTF-8'?>\n" - encoding = RDoc::Encoding.detect_encoding s - - assert_equal Encoding::UTF_8, encoding - - s = "<?xml version='1.0' encoding=\"UTF-8\"?>\n" - encoding = RDoc::Encoding.detect_encoding s - - assert_equal Encoding::UTF_8, encoding - end - - def test_class_set_encoding_bad - s = "" - encoding = RDoc::Encoding.detect_encoding s - - assert_nil encoding - - s = "# vim:set fileencoding=utf-8:\n" - encoding = RDoc::Encoding.detect_encoding s - - assert_nil encoding - - s = "# vim:set fileencoding=utf-8:\n" - encoding = RDoc::Encoding.detect_encoding s - - assert_nil encoding - - assert_raise ArgumentError do - s = RDoc::Encoding.detect_encoding "# -*- encoding: undecided -*-\n" - end - end - - def test_sanity - assert_equal Encoding::US_ASCII, ''.encoding, - 'If this file is not ASCII tests may incorrectly pass' - end - -end |