=================================================================== RCS file: /cvs/todotxt/Text-Todo/t/dudelicious.t,v retrieving revision 1.4 retrieving revision 1.10 diff -u -r1.4 -r1.10 --- todotxt/Text-Todo/t/dudelicious.t 2010/04/30 02:24:06 1.4 +++ todotxt/Text-Todo/t/dudelicious.t 2010/05/05 02:32:12 1.10 @@ -1,5 +1,6 @@ #!perl -use Test::More; # tests => 3; +# $AFresh1: dudelicious.t,v 1.9 2010/05/05 01:24:20 andrew Exp $ +use Test::More tests => 75; use strict; use warnings; @@ -8,10 +9,11 @@ use File::Copy qw/ cp /; use File::Spec; +my $have_test_json = 1; + BEGIN { eval "use Test::Mojo"; plan skip_all => "Test::Mojo required for testing dudelicious" if $@; - } my $todo_dir = tempdir( 'todo-XXXXXXXXX', CLEANUP => 1, TMPDIR => 1 ); @@ -29,48 +31,44 @@ my $t = Test::Mojo->new; +my @exts = ( q{}, '.html', '.txt', '.json' ); foreach my $p ( '/', - '/l/todo1', - '/l/todo1.html', - '/l/todo1.txt', - '/l/todo1.json', - '/l/todo1/e/1', - '/l/todo1/e/1.html', - '/l/todo1/e/1.json', - '/l/todo1/t', - '/l/todo1/t.txt', - '/l/todo1/t.json', -) { - my ($volume, $directories, $file) = File::Spec->splitpath($p); + ( map { '/l/todo1' . $_ } @exts ), + ( map { '/l/todo1/e/1' . $_ } @exts ), + ( map { '/l/todo1/e/4' . $_ } @exts ), + ( map { '/l/todo1/t' . $_ } @exts ), + ( map { '/l/todo1/t/project' . $_ } @exts ), + ( map { '/l/todo1/t/context' . $_ } @exts ), + ) +{ + my ( $volume, $directories, $file ) = File::Spec->splitpath($p); + $file ||= 'index.html'; + $file .= '.html' if $file !~ /\.[^.]+$/xms; - if ($file !~ /\.[^.]+$/xms) { - $file .= '.html'; - } - - my $f = File::Spec->catfile( 't', 'dudelicious', $volume, $directories, - $file); + $file ); - SKIP: { - skip "$f does not exist", 3 if ! -e $f; - diag( "Getting [$f] from [$p]" ); - $t->get_ok($p)->status_is(200)->content_is( slurp( $f ) ); - } -} +SKIP: { + skip "$f does not exist", 3 if !-e $f; -done_testing(); + open my $fh, '<', $f or die $f . ': ' . $!; + my $content = do { local $/; <$fh> }; + close $fh; + $t->get_ok( $p, {}, undef, "Get [$f] from [$p]" ) + ->status_is(200, 'With 200 status'); -sub slurp { - my ($file) = @_; - - local $/; - open my $fh, '<', $file or die $file . ': ' . $!; - my $content = <$fh>; - close $fh; - - return $content; + if ( $f =~ /\.json$/xms ) { + $t->json_content_is( Mojo::JSON->decode($content), + 'Check JSON content' ); + } + else { + $t->content_like( qr/\Q$content\E/xms, 'Check content' ); + } + } } + +#done_testing();