diff options
author | Daniel Friesel <derf@finalrewind.org> | 2011-03-04 09:12:13 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2011-03-04 09:12:13 +0100 |
commit | b7566742ffcf86c8a6d9fac0eace013e1ffd6d04 (patch) | |
tree | 5ee7366eb78c16aec3303a6eab39941dc595b777 | |
parent | 04d800589cc2bbb2e6a61969547179a8b20c837e (diff) |
App::Dthumb read_directories() tests
-rwxr-xr-x | lib/App/Dthumb.pm | 24 | ||||
-rwxr-xr-x | t/20-app-dthumb.t | 14 | ||||
-rw-r--r-- | t/imgdir/.thumbs/invalid.png | 0 | ||||
-rw-r--r-- | t/imgdir/one.png | bin | 0 -> 6525 bytes | |||
-rw-r--r-- | t/imgdir/two.png | bin | 0 -> 13552 bytes |
5 files changed, 32 insertions, 6 deletions
diff --git a/lib/App/Dthumb.pm b/lib/App/Dthumb.pm index b3aa1cf..f1b39b4 100755 --- a/lib/App/Dthumb.pm +++ b/lib/App/Dthumb.pm @@ -61,6 +61,18 @@ Valid hash keys are: =over +=item B<dir_images> => I<directory> + +Set base directory for image reading, data creation etc. + +Default: F<.> (current working directory) + +=item B<file_index> => I<file> + +Set name of the html index file + +Default: F<index.xhtml> + =item B<lightbox> => I<bool> Include and use javascript lightbox code @@ -115,8 +127,10 @@ sub new { $conf{title} //= (split(qr{/}, cwd()))[-1]; $conf{file_index} //= 'index.xhtml'; - $conf{dir_thumbs} //= '.thumbs'; - $conf{dir_data} //= '.dthumb'; + $conf{dir_images} //= '.'; + + $conf{dir_data} = "$conf{dir_images}/.dthumb"; + $conf{dir_thumbs} = "$conf{dir_images}/.thumbs"; # helpers to directly pass GetOptions results $conf{lightbox} //= ( $conf{'no-lightbox'} ? 0 : 1 ); @@ -148,14 +162,14 @@ F<.thumbs> which do not have a corresponding full-size image. sub read_directories { my ($self) = @_; my $thumbdir = $self->{config}->{dir_thumbs}; - my $imgdir = '.'; + my $imgdir = $self->{config}->{dir_images}; my $dh; my (@files, @old_thumbs); opendir($dh, $imgdir); for my $file (readdir($dh)) { - if (-f $file and $file =~ qr{ \. (png | jp e? g) $ }iox) { + if (-f "${imgdir}/${file}" and $file =~ qr{ \. (png | jp e? g) $ }iox) { push(@files, $file); } } @@ -164,7 +178,7 @@ sub read_directories { if (-d $thumbdir) { opendir($dh, $thumbdir); for my $file (readdir($dh)) { - if ($file =~ qr{^ [^.] }ox and not -f $file) { + if ($file =~ qr{^ [^.] }ox and not -f "${imgdir}/${file}") { push(@old_thumbs, $file); } } diff --git a/t/20-app-dthumb.t b/t/20-app-dthumb.t index b591866..bb063e3 100755 --- a/t/20-app-dthumb.t +++ b/t/20-app-dthumb.t @@ -4,7 +4,7 @@ use warnings; use 5.010; use autodie; -use Test::More tests => 13; +use Test::More tests => 19; use_ok('App::Dthumb'); @@ -14,6 +14,12 @@ isa_ok($dthumb, 'App::Dthumb'); isa_ok($dthumb->{data}, 'App::Dthumb::Data'); +is($dthumb->{config}->{dir_data}, './.dthumb', 'Data directory is .dthumb'); +is($dthumb->{config}->{dir_images}, '.', 'Image directory is .'); +is($dthumb->{config}->{dir_thumbs}, './.thumbs', + 'Thumbnail directory is dthumbs'); +is($dthumb->{config}->{file_index}, 'index.xhtml', 'index is index.xhtml'); + is($dthumb->{config}->{lightbox}, 1, 'Lightbox enabled'); is($dthumb->{config}->{names} , 1, 'Show image names'); is($dthumb->{config}->{quality} , 75, 'Default quality'); @@ -34,3 +40,9 @@ $dthumb = App::Dthumb->new(); @{$dthumb->{old_thumbnails}} = 'e.png'; is_deeply($dthumb->{files}, [$dthumb->get_files()], '$dthumb->get_files()'); + +$dthumb = App::Dthumb->new(dir_images => 't/imgdir'); +$dthumb->read_directories(); + +is_deeply($dthumb->{old_thumbnails}, ['invalid.png'], '{old_thumbnails}'); +is_deeply($dthumb->{files}, ['one.png', 'two.png'], '{files}'); diff --git a/t/imgdir/.thumbs/invalid.png b/t/imgdir/.thumbs/invalid.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/t/imgdir/.thumbs/invalid.png diff --git a/t/imgdir/one.png b/t/imgdir/one.png Binary files differnew file mode 100644 index 0000000..5903c34 --- /dev/null +++ b/t/imgdir/one.png diff --git a/t/imgdir/two.png b/t/imgdir/two.png Binary files differnew file mode 100644 index 0000000..f16d150 --- /dev/null +++ b/t/imgdir/two.png |