ruby--ruby/test/ruby/test_path.rb

49 lines
1.7 KiB
Ruby

require 'test/unit'
$KCODE = 'none'
class TestPath < Test::Unit::TestCase
def test_path
assert(File.basename("a") == "a")
assert(File.basename("a/b") == "b")
assert(File.basename("a/b/") == "b")
assert(File.basename("/") == "/")
assert(File.basename("//") == "/")
assert(File.basename("///") == "/")
assert(File.basename("a/b////") == "b")
assert(File.basename("a.rb", ".rb") == "a")
assert(File.basename("a.rb///", ".rb") == "a")
assert(File.basename("a.rb///", ".*") == "a")
assert(File.basename("a.rb///", ".c") == "a.rb")
assert(File.dirname("a") == ".")
assert(File.dirname("/") == "/")
assert(File.dirname("/a") == "/")
assert(File.dirname("a/b") == "a")
assert(File.dirname("a/b/c") == "a/b")
assert(File.dirname("/a/b/c") == "/a/b")
assert(File.dirname("/a/b/") == "/a")
assert(File.dirname("/a/b///") == "/a")
case Dir.pwd
when %r'\A\w:'
assert(/\A\w:\/\z/ =~ File.expand_path(".", "/"))
assert(/\A\w:\/a\z/ =~ File.expand_path("a", "/"))
dosish = true
when %r'\A//'
assert(%r'\A//[^/]+/[^/]+\z' =~ File.expand_path(".", "/"))
assert(%r'\A//[^/]+/[^/]+/a\z' =~ File.expand_path(".", "/"))
dosish = true
else
assert(File.expand_path(".", "/") == "/")
assert(File.expand_path("sub", "/") == "/sub")
end
if dosish
assert(File.expand_path("/", "//machine/share/sub") == "//machine/share")
assert(File.expand_path("/dir", "//machine/share/sub") == "//machine/share/dir")
assert(File.expand_path("/", "z:/sub") == "z:/")
assert(File.expand_path("/dir", "z:/sub") == "z:/dir")
end
assert(File.expand_path(".", "//") == "//")
assert(File.expand_path("sub", "//") == "//sub")
end
end