File: dirlinks.t

package info (click to toggle)
libfile-fu-perl 0.0.7-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze, wheezy
  • size: 244 kB
  • ctags: 165
  • sloc: perl: 1,421; makefile: 2
file content (89 lines) | stat: -rwxr-xr-x 1,711 bytes parent folder | download | duplicates (4)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/usr/bin/perl

use warnings;
use strict;

use Test::More no_plan =>;

use File::Fu;

my $tempdir = File::Fu->temp_dir; $tempdir->chdir;

my $this = File::Fu->dir('this')->mkdir;

# simply creating a link
{
  my $link = $this->symlink('foo');
  ok($link);
  ok($link->l);
  ok($link->e);
  $link->unlink;
  ok(! $link->e, 'gone');
  ok($this->e);
}

# links don't have to point to existing directories
{
  my $none = File::Fu->dir('bah');
  my $link = $none->symlink('deal');
  isa_ok($link, 'File::Fu::Dir');
  ok($link->l);
  ok(! $link->e, 'nothing there');
  $link->unlink;
  ok(! $link->l);
}

# make sure we can pass inputs a few ways
{
  my $dir = File::Fu->dir("dir")->mkdir;
  my $link = File::Fu->dir("what")->symlink($dir / 'link');
  ok(! $link->e);
  ok($link->l, 'is a link');
  $link->unlink;

  $link = File::Fu->dir("what")->symlink('dir/link');
  ok($link->l, 'is a link');
  $link->unlink;

  $link = File::Fu->dir("what")->symlink('dir/link/');
  ok($link->l, 'is a link');
  $link->unlink;
  $dir->rmdir;
}

# relative
{
  my $dir = File::Fu->dir("dir")->mkdir;
  my $link = $this->relative_symlink($dir / 'whee');
  ok($link->l);
  ok($link->e);
  ok($link->d);
  my $lfile = $link + 'file';
  $lfile->touch;
  my $file = $this + 'file';
  ok($file->e, 'exists');
  $file->unlink;
  ok(! $lfile->e, 'gone');
  $link->unlink;
  $dir->rmdir;
}

# relative where there is no depth involved
{
  my $link = $this->relative_symlink('whee');
  ok($link->e);
  ok($link->l);
  ok($link->d);
  my $lfile = $link + 'file';
  $lfile->touch;
  my $file = $this + 'file';
  ok($file->e, 'exists');
  $file->unlink;
  ok(! $lfile->e, 'gone');
  $link->unlink;
}
$this->rmdir;



# vim:ts=2:sw=2:et:sta