summaryrefslogtreecommitdiff
path: root/test/ruby/test_path.rb
blob: 9faee72add8171f3b4c9a4999f0619577ca31049 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
require 'test/unit'

$KCODE = 'none'

class TestPath < Test::Unit::TestCase
  def test_path
    assert_equal(File.basename("a"), "a")
    assert_equal(File.basename("a/b"), "b")
    assert_equal(File.basename("a/b/"), "b")
    assert_equal(File.basename("/"), "/")
    assert_equal(File.basename("//"), "/")
    assert_equal(File.basename("///"), "/")
    assert_equal(File.basename("a/b////"), "b")
    assert_equal(File.basename("a.rb", ".rb"), "a")
    assert_equal(File.basename("a.rb///", ".rb"), "a")
    assert_equal(File.basename("a.rb///", ".*"), "a")
    assert_equal(File.basename("a.rb///", ".c"), "a.rb")
    assert_equal(File.dirname("a"), ".")
    assert_equal(File.dirname("/"), "/")
    assert_equal(File.dirname("/a"), "/")
    assert_equal(File.dirname("a/b"), "a")
    assert_equal(File.dirname("a/b/c"), "a/b")
    assert_equal(File.dirname("/a/b/c"), "/a/b")
    assert_equal(File.dirname("/a/b/"), "/a")
    assert_equal(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_equal(File.expand_path(".", "/"), "/")
      assert_equal(File.expand_path("sub", "/"), "/sub")
    end
    if dosish
      assert_equal(File.expand_path("/", "//machine/share/sub"), "//machine/share")
      assert_equal(File.expand_path("/dir", "//machine/share/sub"), "//machine/share/dir")
      assert_equal(File.expand_path("/", "z:/sub"), "z:/")
      assert_equal(File.expand_path("/dir", "z:/sub"), "z:/dir")
    end
    assert_equal(File.expand_path(".", "//"), "//")
    assert_equal(File.expand_path("sub", "//"), "//sub")
  end
end