#!/usr/bin/perl use warnings; use strict; use Test::More qw(no_plan); use File::Fu; my $root = File::Fu->dir('/'); is($root, '/'); is($root->basename, '/'); is($root->dirname, '/'); my $also = $root; $also /= 'foo'; is($also, '/foo/'); is($root, '/', 'undamaged'); my $cwd = File::Fu->dir('./'); is($cwd, './'); is($cwd->basename, './'); is($cwd->dirname, './'); my $rpath = $cwd / 'foo' / 'bar' / 'baz'; is($rpath, 'foo/bar/baz/'); is($rpath->dirname, 'foo/bar/'); is($rpath->basename, 'baz/'); my $rpath2 = $cwd / 'foo/bar/baz'; is($rpath2, 'foo/bar/baz/'); is($rpath2->dirname, 'foo/bar/'); is($rpath2->basename, 'baz/'); my $apath = $root / 'foo' / 'bar' / 'baz'; is($apath, '/foo/bar/baz/'); is($apath->dirname, '/foo/bar/'); is($apath->basename, 'baz/'); is("foo:$apath", 'foo:/foo/bar/baz/'); my $afile = $apath+'bort'; is($afile, '/foo/bar/baz/bort'); is("foo:$afile", 'foo:/foo/bar/baz/bort'); my $afile2 = File::Fu->file('/foo/bar/baz/bort'); is($afile2->dir, '/foo/bar/baz/'); is($afile2, '/foo/bar/baz/bort'); is("foo:$afile2", 'foo:/foo/bar/baz/bort'); { my $apath2 = $root / 'foo/bar/baz'; is($apath2, '/foo/bar/baz/'); is($apath2->dirname, '/foo/bar/'); is($apath2->basename, 'baz/'); my $apath3 = $root / 'foo//bar/baz////'; is($apath3, '/foo/bar/baz/'); is($apath3->dirname, '/foo/bar/'); is($apath3->basename, 'baz/'); } # vim:ts=2:sw=2:et:sta