From e4995e57f3bd978f10585890c671c613f6531c2e Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Tue, 1 Mar 2011 17:37:04 +0100 Subject: App::Dthumb::Data: Exactly preserve text files, add test for it --- lib/App/Dthumb/Data.pm.PL | 10 +++++++--- t/29-app-dthumb-data.t | 28 ++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) create mode 100755 t/29-app-dthumb-data.t diff --git a/lib/App/Dthumb/Data.pm.PL b/lib/App/Dthumb/Data.pm.PL index a686c6d..ba99c82 100644 --- a/lib/App/Dthumb/Data.pm.PL +++ b/lib/App/Dthumb/Data.pm.PL @@ -67,19 +67,23 @@ sub get { die("No such data: ${name}\n"); } + $data = ${$data}; + + chomp($data); + if ($name =~ qr{ \. (png | gif) $ }ox) { - return decode_base64(${$data}); + return decode_base64($data); } while (my ($key, $value) = each %{$self->{replace}}) { - ${$data} =~ s{ + $data =~ s{ ( \<\!-- | /\* ) \s+ \$ $key \s+ ( --\> | \*/ ) }{$value}gx; } - return ${$data}; + return $data; } 1; diff --git a/t/29-app-dthumb-data.t b/t/29-app-dthumb-data.t new file mode 100755 index 0000000..42e9b41 --- /dev/null +++ b/t/29-app-dthumb-data.t @@ -0,0 +1,28 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use 5.010; +use autodie; + +use App::Dthumb::Data; +use Test::More; + +opendir(my $share, 'share'); +my @files = grep { /^[^.]/ } readdir($share); +closedir($share); + +plan( + tests => 1 + scalar @files, +); + +my $dthumb = App::Dthumb::Data->new(); + +isa_ok($dthumb, 'App::Dthumb::Data', 'App::Dthumb::Data->new()'); + +for my $file (@files) { + open(my $fh, '<', "share/${file}"); + my $data = do { local $/ = undef; <$fh> }; + close($fh); + + is($dthumb->get($file), $data, "\$dthumb->get($file)"); +} -- cgit v1.2.3