require 'test_helper'
require 'faster_path/optional/refinements'
class RefinedPathname
using FasterPath::RefinePathname
using FasterPath::RefineFile
def del_trailing_separator(pth)
Pathname.allocate.send(:del_trailing_separator, pth)
end
end
class DelTrailingSeparatorTest < Minitest::Test
def test_del_trailing_separator
assert_equal RefinedPathname.new.del_trailing_separator("/"), "/"
assert_equal RefinedPathname.new.del_trailing_separator("/a"), "/a"
assert_equal RefinedPathname.new.del_trailing_separator("/a/"), "/a"
assert_equal RefinedPathname.new.del_trailing_separator("/a//"), "/a"
assert_equal RefinedPathname.new.del_trailing_separator("."), "."
assert_equal RefinedPathname.new.del_trailing_separator("./"), "."
assert_equal RefinedPathname.new.del_trailing_separator(".//"), "."
end
def test_del_trailing_separator_in_dosish_context
if File.dirname("A:") == "A:." assert_equal RefinedPathname.new.del_trailing_separator("A:"), "A:"
assert_equal RefinedPathname.new.del_trailing_separator("A:/"), "A:/"
assert_equal RefinedPathname.new.del_trailing_separator("A://"), "A:/"
assert_equal RefinedPathname.new.del_trailing_separator("A:."), "A:."
assert_equal RefinedPathname.new.del_trailing_separator("A:./"), "A:."
assert_equal RefinedPathname.new.del_trailing_separator("A:.//"), "A:."
end
if File.dirname("//") == "//" assert_equal RefinedPathname.new.del_trailing_separator("//"), "//"
assert_equal RefinedPathname.new.del_trailing_separator("//a"), "//a"
assert_equal RefinedPathname.new.del_trailing_separator("//a/"), "//a"
assert_equal RefinedPathname.new.del_trailing_separator("//a//"), "//a"
assert_equal RefinedPathname.new.del_trailing_separator("//a/b"), "//a/b"
assert_equal RefinedPathname.new.del_trailing_separator("//a/b/"), "//a/b"
assert_equal RefinedPathname.new.del_trailing_separator("//a/b//"), "//a/b"
assert_equal RefinedPathname.new.del_trailing_separator("//a/b/c"), "//a/b/c"
assert_equal RefinedPathname.new.del_trailing_separator("//a/b/c/"), "//a/b/c"
assert_equal RefinedPathname.new.del_trailing_separator("//a/b/c//"), "//a/b/c"
else
assert_equal RefinedPathname.new.del_trailing_separator("///"), "/"
assert_equal RefinedPathname.new.del_trailing_separator("///a/"), "///a"
end
if !File::ALT_SEPARATOR.nil? assert_equal RefinedPathname.new.del_trailing_separator("a\\"), "a"
assert_equal RefinedPathname.new.del_trailing_separator("\225\\\\".dup.force_encoding("cp932")), "\225\\".dup.force_encoding("cp932")
assert_equal RefinedPathname.new.del_trailing_separator("\225\\\\".dup.force_encoding("cp437")), "\225".dup.force_encoding("cp437")
end
end
end