mirror of
https://github.com/ruby/ruby.git
synced 2025-08-23 21:14:23 +02:00
Sync RDoc 6.14.0
This commit is contained in:
parent
ca1ea95784
commit
03eb777c69
185 changed files with 2008 additions and 1655 deletions
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue