aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/paths.tm55
1 files changed, 24 insertions, 31 deletions
diff --git a/test/paths.tm b/test/paths.tm
index 1a8da4cf..1302f7a5 100644
--- a/test/paths.tm
+++ b/test/paths.tm
@@ -6,14 +6,14 @@ func main():
= yes
>> (~/Downloads/file(1).txt)
- = (~/Downloads/file(1).txt)
+ = ~/Downloads/file(1).txt
>> (/half\)paren)
- = (/half\)paren)
+ = /half)paren
>> filename := "example.txt"
- >> (~/$filename)
- = (~/example.txt)
+ >> (~):child(filename)
+ = ~/example.txt
>> tmpdir := (/tmp/tomo-test-path-XXXXXX):unique_directory()
>> (/tmp):subdirectories():has(tmpdir)
@@ -55,7 +55,7 @@ func main():
>> p:base_name()
= "qux.tar.gz"
>> p:parent()
- = (/foo/baz.x/)
+ = /foo/baz.x
>> p:extension()
= "tar.gz"
>> p:extension(full=no)
@@ -69,69 +69,62 @@ func main():
= "baz.qux"
>> (/):parent()
- = (/)
+ = /
>> (~/x/.):parent()
- = (~/)
+ = ~
>> (~/x):parent()
- = (~/)
- >> (./):parent()
- = (../)
- >> (../):parent()
- = (../../)
+ = ~
+ >> (.):parent()
+ = ..
+ >> (..):parent()
+ = ../..
>> (../foo):parent()
- = (../)
-
- >> (./foo.txt):ends_with(".txt")
- = yes
- >> (./foo.txt):matches($|{..}/foo{..}|)
- = [".", ".txt"] : [Text]?
- >> (./foo.txt):replace($/.txt/, ".md")
- = (./foo.md)
+ = ..
# Concatenation tests:
!! Basic relative path concatenation:
>> (/foo) ++ (./baz)
- = (/foo/baz)
+ = /foo/baz
!! Concatenation with a current directory (`.`):
>> (/foo/bar) ++ (./.)
- = (/foo/bar)
+ = /foo/bar
!! Trailing slash in the first path:
>> (/foo/) ++ (./baz)
- = (/foo/baz)
+ = /foo/baz
!! Trailing slash in the second path:
>> (/foo/bar) ++ (./baz/)
- = (/foo/bar/baz/)
+ = /foo/bar/baz
!! Removing redundant current directory (`.`):
>> (/foo/bar) ++ (./baz/./qux)
- = (/foo/bar/baz/qux)
+ = /foo/bar/baz/qux
!! Removing redundant parent directory (`..`):
>> (/foo/bar) ++ (./baz/qux/../quux)
- = (/foo/bar/baz/quux)
+ = /foo/bar/baz/quux
!! Collapsing `..` to navigate up:
>> (/foo/bar/baz) ++ (../qux)
- = (/foo/bar/qux)
+ = /foo/bar/qux
!! Current directory and parent directory mixed:
>> (/foo/bar) ++ (././../baz)
- = (/foo/baz)
+ = /foo/baz
!! Path begins with a `.`:
>> (/foo) ++ (./baz/../qux)
- = (/foo/qux)
+ = /foo/qux
!! Multiple slashes:
>> (/foo) ++ (./baz//qux)
- = (/foo/baz/qux)
+ = /foo/baz/qux
!! Complex path with multiple `.` and `..`:
>> (/foo/bar/baz) ++ (./.././qux/./../quux)
- = (/foo/bar/quux)
+ = /foo/bar/quux
!! Globbing:
>> (./*.tm):glob()