version 1.2, 2010/04/28 01:33:05 |
version 1.4, 2010/04/30 02:24:06 |
|
|
use Test::More tests => 3; |
#!perl |
|
use Test::More; # tests => 3; |
|
|
|
use strict; |
|
use warnings; |
|
|
|
use File::Temp qw/ tempdir /; |
|
use File::Copy qw/ cp /; |
|
use File::Spec; |
|
|
BEGIN { |
BEGIN { |
eval "use Test::Mojo"; |
eval "use Test::Mojo"; |
plan skip_all => "Test::Mojo required for testing dudelicious" if $@; |
plan skip_all => "Test::Mojo required for testing dudelicious" if $@; |
|
|
use lib 'bin'; |
|
require 'dudelicious.pl'; |
|
Dudelicious->import; |
|
} |
} |
|
|
my $app = Dudelicious::app; |
my $todo_dir = tempdir( 'todo-XXXXXXXXX', CLEANUP => 1, TMPDIR => 1 ); |
$app->log->level('error'); |
$ENV{DUDELICIOUS_HOME} = $todo_dir; |
|
|
|
foreach my $file qw( todo1.txt todo.list.txt dudelicious.conf ) { |
|
cp( File::Spec->catfile( 't', $file ), |
|
File::Spec->catfile( $todo_dir, $file ), |
|
) || die "Couldn't cp [$todo_dir]/[$file]: $!"; |
|
} |
|
|
|
require File::Spec->catfile( 'bin', 'dudelicious.pl' ); |
|
Dudelicious->import; |
|
Dudelicious->app->log->level('error'); |
|
|
my $t = Test::Mojo->new; |
my $t = Test::Mojo->new; |
|
|
# Index page |
|
$t->get_ok('/')->status_is(200)->content_like(qr/Funky/); |
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); |
|
$file ||= 'index.html'; |
|
|
|
if ($file !~ /\.[^.]+$/xms) { |
|
$file .= '.html'; |
|
} |
|
|
|
|
|
my $f = File::Spec->catfile( 't', 'dudelicious', $volume, $directories, |
|
$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 ) ); |
|
} |
|
} |
|
|
|
done_testing(); |
|
|
|
|
|
sub slurp { |
|
my ($file) = @_; |
|
|
|
local $/; |
|
open my $fh, '<', $file or die $file . ': ' . $!; |
|
my $content = <$fh>; |
|
close $fh; |
|
|
|
return $content; |
|
} |