require 'test_helper'
class HasTrailingSeparatorTest < Minitest::Test
def result_pair(str)
[
Pathname.allocate.send(:has_trailing_separator?, str),
FasterPath.has_trailing_separator?(str)
]
end
def test_has_trailing_separator_against_pathname_implementation1
assert_equal(*result_pair(''))
assert_equal(*result_pair('/'))
assert_equal(*result_pair('//'))
assert_equal(*result_pair('///'))
assert_equal(*result_pair('hello'))
assert_equal(*result_pair('hello/'))
assert_equal(*result_pair('/hello/'))
assert_equal(*result_pair('/hello//'))
end
def test_has_trailing_separator_against_pathname_implementation2
assert_equal(*result_pair('.'))
assert_equal(*result_pair('./'))
assert_equal(*result_pair('.//'))
assert_equal(*result_pair("aa/a//a"))
assert_equal(*result_pair("/aaa/a//a"))
assert_equal(*result_pair("/aaa/a//a/a"))
assert_equal(*result_pair("/aaa/a//a/a"))
assert_equal(*result_pair("a//aaa/a//a/a"))
assert_equal(*result_pair("a//aaa/a//a/aaa"))
assert_equal(*result_pair("/aaa/a//a/aaa/a"))
assert_equal(*result_pair("a//aaa/a//a/aaa/a"))
assert_equal(*result_pair("a//aaa/a//a/aaa////"))
assert_equal(*result_pair("a/a//aaa/a//a/aaa/a"))
assert_equal(*result_pair("////a//aaa/a//a/aaa/a"))
assert_equal(*result_pair("////a//aaa/a//a/aaa////"))
end
def test_has_trailing_separator_against_pathname_implementation3
assert_equal(*result_pair("."))
assert_equal(*result_pair(".././"))
assert_equal(*result_pair(".///.."))
assert_equal(*result_pair("/././/"))
assert_equal(*result_pair("//../././"))
assert_equal(*result_pair(".///.../.."))
assert_equal(*result_pair("/././/.//."))
assert_equal(*result_pair("/...//../././"))
assert_equal(*result_pair("/..///.../..//"))
assert_equal(*result_pair("/./././/.//..."))
assert_equal(*result_pair("/...//.././././/."))
assert_equal(*result_pair("./../..///.../..//"))
assert_equal(*result_pair("///././././/.//..."))
assert_equal(*result_pair("./../..///.../..//././"))
assert_equal(*result_pair("///././././/.//....///"))
assert_equal(*result_pair("http://www.example.com"))
assert_equal(*result_pair("foor for thought"))
assert_equal(*result_pair("2gb63b@%TY25GHawefb3/g3qb"))
end
def test_has_trailing_separator_with_nil
refute FasterPath.has_trailing_separator?(nil)
end
end