1MODULE LibOsPath;
2
3IMPORT OS:Path;
4
5PROCEDURE Test*;
6  VAR
7    s, root, ext: STRING;
8  BEGIN
9    (* dirname
10       --------------------------------------------------------------------- *)
11    s := Path.DirName("");
12    ASSERT (s.Equals(""));
13
14    s := Path.DirName("/");
15    ASSERT (s.Equals("/"));
16
17    s := Path.DirName("//");
18    ASSERT (s.Equals("//"));
19
20    s := Path.DirName("abc");
21    ASSERT (s.Equals(""));
22
23    s := Path.DirName("/abc");
24    ASSERT (s.Equals("/"));
25
26    s := Path.DirName("~");
27    ASSERT (s.Equals(""));
28
29    s := Path.DirName("~/");
30    ASSERT (s.Equals("~"));
31
32    s := Path.DirName("~foo/");
33    ASSERT (s.Equals("~foo"));
34
35    s := Path.DirName("abc/");
36    ASSERT (s.Equals("abc"));
37
38    s := Path.DirName("abc///");
39    ASSERT (s.Equals("abc"));
40
41
42    (* Path.basename
43       --------------------------------------------------------------------- *)
44    s := Path.BaseName("");
45    ASSERT (s.Equals(""));
46
47    s := Path.BaseName("/");
48    ASSERT (s.Equals(""));
49
50    s := Path.BaseName("abc/");
51    ASSERT (s.Equals(""));
52
53    s := Path.BaseName("abc");
54    ASSERT (s.Equals("abc"));
55
56    s := Path.BaseName("abc/x");
57    ASSERT (s.Equals("x"));
58
59
60    (* Path.splitext
61       --------------------------------------------------------------------- *)
62    Path.SplitExt("", root, ext);
63    ASSERT (root.Equals("")); ASSERT (ext.Equals(""));
64
65    Path.SplitExt("/", root, ext);
66    ASSERT (root.Equals("/")); ASSERT (ext.Equals(""));
67
68    Path.SplitExt(".", root, ext);
69    ASSERT (root.Equals("")); ASSERT (ext.Equals("."));
70
71    Path.SplitExt("/.", root, ext);
72    ASSERT (root.Equals("/")); ASSERT (ext.Equals("."));
73
74    Path.SplitExt("./", root, ext);
75    ASSERT (root.Equals("./")); ASSERT (ext.Equals(""));
76
77    Path.SplitExt("a.", root, ext);
78    ASSERT (root.Equals("a")); ASSERT (ext.Equals("."));
79
80    Path.SplitExt("a.b", root, ext);
81    ASSERT (root.Equals("a")); ASSERT (ext.Equals(".b"));
82
83    Path.SplitExt("a.b.c", root, ext);
84    ASSERT (root.Equals("a.b")); ASSERT (ext.Equals(".c"));
85
86  END Test;
87
88END LibOsPath.
89