1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/rubygems/test_gem_text.rb
Yusuke Endoh b957c3dbcb [rubygems/rubygems] Rename test/rubygems/test_{case,utilities}.rb to avoid "test_" prefix
This changes "test/rubygems/test_case.rb" to "test/rubygems/helper.rb",
and "test/rubygems/test_utilities.rb" to "test/rubygems/utilities.rb".

The two files are a helper for tests, not test files. However, a file
starting with "test_" prefix is handled as a test file directly loaded
by test-unit because Rakefile specifies:

```
t.test_files = FileList['test/**/test_*.rb']
```

Directly loading test/rubygems/test_utilities.rb caused "uninitialized
constant Gem::TestCase". This issue was fixed by
59c6820971, but the fix caused a
"circular require" warning because test_utilities.rb and test_case.rb
are now requiring each other.

Anyway, adding "test_" prefix to a test helper file is confusing, so
this changeset reverts the fix and solve the issue by renaming them.

https://github.com/rubygems/rubygems/commit/6460e018df
2021-06-03 12:23:22 +09:00

102 lines
3.5 KiB
Ruby

# frozen_string_literal: true
require_relative 'helper'
require "rubygems/text"
class TestGemText < Gem::TestCase
include Gem::Text
def test_format_text
assert_equal "text to\nwrap", format_text("text to wrap", 8)
end
def test_format_text_indent
assert_equal " text to\n wrap", format_text("text to wrap", 8, 2)
end
def test_format_text_none
assert_equal "text to wrap", format_text("text to wrap", 40)
end
def test_format_text_none_indent
assert_equal " text to wrap", format_text("text to wrap", 40, 2)
end
def test_format_text_no_space
assert_equal "texttowr\nap", format_text("texttowrap", 8)
end
def test_format_text_trailing # for two spaces after .
text = <<-TEXT
This line is really, really long. So long, in fact, that it is more than eighty characters long! The purpose of this line is for testing wrapping behavior because sometimes people don't wrap their text to eighty characters. Without the wrapping, the text might not look good in the RSS feed.
TEXT
expected = <<-EXPECTED
This line is really, really long. So long, in fact, that it is more than
eighty characters long! The purpose of this line is for testing wrapping
behavior because sometimes people don't wrap their text to eighty characters.
Without the wrapping, the text might not look good in the RSS feed.
EXPECTED
assert_equal expected, format_text(text, 78)
end
def test_format_removes_nonprintable_characters
assert_equal "text with weird .. stuff .", format_text("text with weird \x1b\x02 stuff \x7f", 40)
end
def test_min3
assert_equal 1, min3(1, 1, 1)
assert_equal 1, min3(1, 1, 2)
assert_equal 1, min3(1, 2, 1)
assert_equal 1, min3(2, 1, 1)
assert_equal 1, min3(1, 2, 2)
assert_equal 1, min3(2, 1, 2)
assert_equal 1, min3(2, 2, 1)
assert_equal 1, min3(1, 2, 3)
assert_equal 1, min3(1, 3, 2)
assert_equal 1, min3(2, 1, 3)
assert_equal 1, min3(2, 3, 1)
assert_equal 1, min3(3, 1, 2)
assert_equal 1, min3(3, 2, 1)
end
def test_levenshtein_distance_add
assert_equal 2, levenshtein_distance("zentest", "zntst")
assert_equal 2, levenshtein_distance("zntst", "zentest")
end
def test_levenshtein_distance_empty
assert_equal 5, levenshtein_distance("abcde", "")
assert_equal 5, levenshtein_distance("", "abcde")
end
def test_levenshtein_distance_remove
assert_equal 3, levenshtein_distance("zentest", "zentestxxx")
assert_equal 3, levenshtein_distance("zentestxxx", "zentest")
assert_equal 13, levenshtein_distance("cat", "thundercatsarego")
assert_equal 13, levenshtein_distance("thundercatsarego", "cat")
end
def test_levenshtein_distance_replace
assert_equal 2, levenshtein_distance("zentest", "ZenTest")
assert_equal 7, levenshtein_distance("xxxxxxx", "ZenTest")
assert_equal 7, levenshtein_distance("zentest", "xxxxxxx")
end
def test_levenshtein_distance_all
assert_equal 6, levenshtein_distance("algorithm", "altruistic")
assert_equal 3, levenshtein_distance("saturday", "sunday")
assert_equal 3, levenshtein_distance("kitten", "sitting")
end
def test_truncate_text
assert_equal "abc", truncate_text("abc", "desc")
assert_equal "Truncating desc to 2 characters:\nab", truncate_text("abc", "desc", 2)
s = "ab" * 500_001
assert_equal "Truncating desc to 1,000,000 characters:\n#{s[0, 1_000_000]}", truncate_text(s, "desc", 1_000_000)
end
def test_clean_text
assert_equal ".]2;nyan.", clean_text("\e]2;nyan\a")
end
end