require 'test_helper'
require 'faster_path/optional/refinements'
class RefinedPathname
using FasterPath::RefinePathname
using FasterPath::RefineFile
def cleanpath_conservative(pth)
Pathname.new(pth).send(:cleanpath_conservative).to_s
end
end
class CleanpathConservativeTest < Minitest::Test
def test_clean_conservative_defaults1
assert_equal RefinedPathname.new.cleanpath_conservative('/'), '/'
assert_equal RefinedPathname.new.cleanpath_conservative(''), '.'
assert_equal RefinedPathname.new.cleanpath_conservative('.'), '.'
assert_equal RefinedPathname.new.cleanpath_conservative('..'), '..'
assert_equal RefinedPathname.new.cleanpath_conservative('a'), 'a'
assert_equal RefinedPathname.new.cleanpath_conservative('/.'), '/'
assert_equal RefinedPathname.new.cleanpath_conservative('/..'), '/'
assert_equal RefinedPathname.new.cleanpath_conservative('/a'), '/a'
assert_equal RefinedPathname.new.cleanpath_conservative('./'), '.'
assert_equal RefinedPathname.new.cleanpath_conservative('../'), '..'
assert_equal RefinedPathname.new.cleanpath_conservative('a/'), 'a/'
assert_equal RefinedPathname.new.cleanpath_conservative('a//b'), 'a/b'
end
def test_clean_conservative_defaults2
assert_equal RefinedPathname.new.cleanpath_conservative('a/.'), 'a/.'
assert_equal RefinedPathname.new.cleanpath_conservative('a/./'), 'a/.'
assert_equal RefinedPathname.new.cleanpath_conservative('a/../'), 'a/..'
assert_equal RefinedPathname.new.cleanpath_conservative('/a/.'), '/a/.'
assert_equal RefinedPathname.new.cleanpath_conservative('./..'), '..'
assert_equal RefinedPathname.new.cleanpath_conservative('../.'), '..'
assert_equal RefinedPathname.new.cleanpath_conservative('./../'), '..'
assert_equal RefinedPathname.new.cleanpath_conservative('.././'), '..'
assert_equal RefinedPathname.new.cleanpath_conservative('/./..'), '/'
assert_equal RefinedPathname.new.cleanpath_conservative('/../.'), '/'
end
def test_clean_conservative_defaults3
assert_equal RefinedPathname.new.cleanpath_conservative('/./../'), '/'
assert_equal RefinedPathname.new.cleanpath_conservative('/.././'), '/'
assert_equal RefinedPathname.new.cleanpath_conservative('a/b/c'), 'a/b/c'
assert_equal RefinedPathname.new.cleanpath_conservative('./b/c'), 'b/c'
assert_equal RefinedPathname.new.cleanpath_conservative('a/./c'), 'a/c'
assert_equal RefinedPathname.new.cleanpath_conservative('a/b/.'), 'a/b/.'
assert_equal RefinedPathname.new.cleanpath_conservative('a/../.'), 'a/..'
assert_equal RefinedPathname.new.cleanpath_conservative('/../.././../a'), '/a'
assert_equal RefinedPathname.new.cleanpath_conservative('a/b/../../../../c/../d'), 'a/b/../../../../c/../d'
end
def test_clean_conservative_dosish_stuff
if !File::ALT_SEPARATOR.nil?
assert_equal RefinedPathname.new.cleanpath_conservative('c:\\foo\\bar'), 'c:/foo/bar'
end
if File.dirname("//") == "//"
assert_equal RefinedPathname.new.cleanpath_conservative('//'), '//'
else
assert_equal RefinedPathname.new.cleanpath_conservative('//'), '/'
end
end
end